From 7d300d92b8e1b8f64d9675b256721c6690cd30e7 Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2026 14:26:50 +0000 Subject: [PATCH 1/2] [fern-generated] Update SDK Generated by Fern CLI Version: unknown Generators: - fernapi/fern-python-sdk: 4.29.1 --- .fern/metadata.json | 16 - README.md | 30 +- poetry.lock | 434 +- pyproject.toml | 17 +- reference.md | 11635 ++++++++-------- src/merge/__init__.py | 6 +- src/merge/client.py | 11 - src/merge/core/__init__.py | 28 +- src/merge/core/client_wrapper.py | 39 +- src/merge/core/datetime_utils.py | 42 - src/merge/core/enum.py | 20 - src/merge/core/http_client.py | 489 +- src/merge/core/http_response.py | 6 +- src/merge/core/http_sse/__init__.py | 42 - src/merge/core/http_sse/_api.py | 112 - src/merge/core/http_sse/_decoders.py | 61 - src/merge/core/http_sse/_exceptions.py | 7 - src/merge/core/http_sse/_models.py | 17 - src/merge/core/jsonable_encoder.py | 8 - src/merge/core/logging.py | 107 - src/merge/core/parse_error.py | 36 - src/merge/core/pydantic_utilities.py | 331 +- src/merge/core/unchecked_base_model.py | 174 +- src/merge/resources/__init__.py | 26 +- src/merge/resources/accounting/__init__.py | 12 +- .../accounting/resources/__init__.py | 104 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../accounting_periods/raw_client.py | 18 - .../accounting/resources/accounts/__init__.py | 6 +- .../resources/accounts/raw_client.py | 34 - .../resources/accounts/types/__init__.py | 6 +- .../accounts_list_request_classification.py | 5 +- .../accounts_list_request_remote_fields.py | 5 +- ...accounts_list_request_show_enum_origins.py | 5 +- .../types/accounts_list_request_status.py | 5 +- ...accounts_retrieve_request_remote_fields.py | 5 +- ...unts_retrieve_request_show_enum_origins.py | 5 +- .../resources/addresses/raw_client.py | 10 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../resources/async_tasks/raw_client.py | 10 - .../resources/attachments/raw_client.py | 34 - .../resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../resources/balance_sheets/raw_client.py | 18 - .../bank_feed_accounts/raw_client.py | 34 - .../bank_feed_transactions/raw_client.py | 34 - .../cash_flow_statements/raw_client.py | 18 - .../resources/company_info/__init__.py | 6 +- .../resources/company_info/raw_client.py | 18 - .../resources/company_info/types/__init__.py | 6 +- .../company_info_list_request_expand_item.py | 5 +- ...mpany_info_retrieve_request_expand_item.py | 5 +- .../accounting/resources/contacts/__init__.py | 6 +- .../resources/contacts/raw_client.py | 58 - .../resources/contacts/types/__init__.py | 6 +- .../contacts_list_request_expand_item.py | 5 +- .../types/contacts_list_request_status.py | 5 +- .../contacts_retrieve_request_expand_item.py | 5 +- .../resources/credit_notes/__init__.py | 6 +- .../resources/credit_notes/raw_client.py | 58 - .../resources/credit_notes/types/__init__.py | 6 +- .../credit_notes_list_request_expand_item.py | 5 +- ...credit_notes_list_request_remote_fields.py | 5 +- ...it_notes_list_request_show_enum_origins.py | 5 +- ...edit_notes_retrieve_request_expand_item.py | 5 +- ...it_notes_retrieve_request_remote_fields.py | 5 +- ...otes_retrieve_request_show_enum_origins.py | 5 +- .../resources/delete_account/raw_client.py | 10 - .../resources/employees/raw_client.py | 18 - .../resources/expense_reports/__init__.py | 6 +- .../resources/expense_reports/raw_client.py | 58 - .../expense_reports/types/__init__.py | 6 +- ..._reports_lines_list_request_expand_item.py | 5 +- ...xpense_reports_list_request_expand_item.py | 5 +- ...se_reports_retrieve_request_expand_item.py | 5 +- .../accounting/resources/expenses/__init__.py | 6 +- .../resources/expenses/raw_client.py | 66 - .../resources/expenses/types/__init__.py | 6 +- .../expenses_list_request_expand_item.py | 5 +- .../expenses_retrieve_request_expand_item.py | 5 +- .../resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 66 +- .../resources/force_resync/raw_client.py | 10 - .../general_ledger_transactions/__init__.py | 6 +- .../general_ledger_transactions/raw_client.py | 18 - .../types/__init__.py | 6 +- ...r_transactions_list_request_expand_item.py | 5 +- ...ansactions_retrieve_request_expand_item.py | 5 +- .../resources/generate_key/raw_client.py | 10 - .../resources/income_statements/raw_client.py | 18 - .../accounting/resources/invoices/__init__.py | 6 +- .../resources/invoices/raw_client.py | 82 - .../resources/invoices/types/__init__.py | 6 +- .../invoices_list_request_expand_item.py | 5 +- .../types/invoices_list_request_status.py | 5 +- .../types/invoices_list_request_type.py | 5 +- .../invoices_retrieve_request_expand_item.py | 5 +- .../accounting/resources/issues/__init__.py | 6 +- .../accounting/resources/issues/raw_client.py | 18 - .../resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../resources/item_fulfillments/__init__.py | 6 +- .../resources/item_fulfillments/raw_client.py | 66 - .../item_fulfillments/types/__init__.py | 6 +- ...m_fulfillments_list_request_expand_item.py | 5 +- ...lfillments_retrieve_request_expand_item.py | 5 +- .../accounting/resources/items/__init__.py | 6 +- .../accounting/resources/items/raw_client.py | 50 - .../resources/items/types/__init__.py | 6 +- .../types/items_list_request_expand_item.py | 5 +- .../items_retrieve_request_expand_item.py | 5 +- .../resources/journal_entries/__init__.py | 6 +- .../resources/journal_entries/raw_client.py | 50 - .../journal_entries/types/__init__.py | 6 +- ...ournal_entries_list_request_expand_item.py | 5 +- ...al_entries_retrieve_request_expand_item.py | 5 +- .../resources/link_token/__init__.py | 6 +- .../accounting/resources/link_token/client.py | 8 +- .../resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/passthrough/raw_client.py | 10 - .../resources/payment_methods/raw_client.py | 18 - .../resources/payment_terms/raw_client.py | 18 - .../accounting/resources/payments/__init__.py | 6 +- .../resources/payments/raw_client.py | 66 - .../resources/payments/types/__init__.py | 6 +- .../payments_list_request_expand_item.py | 5 +- .../payments_retrieve_request_expand_item.py | 5 +- .../resources/phone_numbers/raw_client.py | 10 - .../accounting/resources/projects/__init__.py | 6 +- .../resources/projects/raw_client.py | 18 - .../resources/projects/types/__init__.py | 6 +- .../projects_list_request_expand_item.py | 5 +- .../projects_retrieve_request_expand_item.py | 5 +- .../resources/purchase_orders/__init__.py | 6 +- .../resources/purchase_orders/raw_client.py | 50 - .../purchase_orders/types/__init__.py | 6 +- ...urchase_orders_list_request_expand_item.py | 5 +- ...ase_orders_retrieve_request_expand_item.py | 5 +- .../resources/regenerate_key/raw_client.py | 10 - .../resources/sales_orders/__init__.py | 6 +- .../resources/sales_orders/raw_client.py | 66 - .../resources/sales_orders/types/__init__.py | 6 +- .../sales_orders_list_request_expand_item.py | 5 +- ...les_orders_retrieve_request_expand_item.py | 5 +- .../accounting/resources/scopes/raw_client.py | 26 - .../resources/sync_status/raw_client.py | 10 - .../resources/tax_rates/raw_client.py | 18 - .../resources/tracking_categories/__init__.py | 6 +- .../tracking_categories/raw_client.py | 18 - .../tracking_categories/types/__init__.py | 6 +- ...g_categories_list_request_category_type.py | 5 +- ...tracking_categories_list_request_status.py | 5 +- .../resources/transactions/__init__.py | 6 +- .../resources/transactions/raw_client.py | 18 - .../resources/transactions/types/__init__.py | 6 +- .../transactions_list_request_expand_item.py | 5 +- ...ansactions_retrieve_request_expand_item.py | 5 +- .../resources/vendor_credits/__init__.py | 6 +- .../resources/vendor_credits/raw_client.py | 58 - .../vendor_credits/types/__init__.py | 6 +- ...vendor_credits_list_request_expand_item.py | 5 +- ...or_credits_retrieve_request_expand_item.py | 5 +- .../resources/webhook_receivers/raw_client.py | 18 - .../resources/accounting/types/__init__.py | 12 +- .../resources/accounting/types/account.py | 2 +- .../types/account_account_type_enum.py | 5 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../accounting/types/account_integration.py | 6 +- .../accounting/types/account_request.py | 4 +- .../accounting/types/account_status_enum.py | 5 +- .../accounting/types/accounting_attachment.py | 2 +- .../types/accounting_attachment_request.py | 4 +- .../accounting/types/accounting_period.py | 2 +- .../types/accounting_phone_number_request.py | 4 +- .../resources/accounting/types/address.py | 2 +- .../accounting/types/address_request.py | 4 +- .../accounting/types/address_type_enum.py | 5 +- .../accounting/types/advanced_metadata.py | 2 +- .../types/async_post_task_result.py | 2 +- .../types/async_post_task_status_enum.py | 5 +- .../accounting/types/balance_sheet.py | 2 +- .../accounting/types/bank_feed_account.py | 2 +- .../bank_feed_account_account_type_enum.py | 5 +- .../types/bank_feed_account_request.py | 4 +- .../bank_feed_transaction_request_request.py | 4 +- .../types/batch_object_status_enum.py | 5 +- .../batch_objects_response_status_enum.py | 5 +- .../accounting/types/cash_flow_statement.py | 2 +- .../accounting/types/categories_enum.py | 5 +- .../accounting/types/category_enum.py | 5 +- .../accounting/types/category_type_enum.py | 5 +- .../accounting/types/classification_enum.py | 5 +- .../accounting/types/company_info.py | 2 +- .../completed_account_initial_screen_enum.py | 3 - .../accounting/types/component_type_enum.py | 5 +- .../resources/accounting/types/contact.py | 2 +- .../accounting/types/contact_request.py | 4 +- .../accounting/types/country_enum.py | 5 +- .../resources/accounting/types/credit_note.py | 38 +- .../credit_note_apply_line_for_credit_note.py | 37 +- ...note_apply_line_for_credit_note_request.py | 12 +- .../credit_note_apply_line_for_invoice.py | 37 +- .../types/credit_note_line_item_request.py | 4 +- .../accounting/types/credit_note_request.py | 12 +- .../accounting/types/credit_note_response.py | 39 +- .../types/credit_note_status_enum.py | 5 +- .../accounting/types/credit_or_debit_enum.py | 5 +- .../types/data_passthrough_request.py | 2 +- .../resources/accounting/types/employee.py | 2 +- .../accounting/types/enabled_actions_enum.py | 5 +- .../accounting/types/encoding_enum.py | 5 +- .../accounting/types/event_type_enum.py | 5 +- .../resources/accounting/types/expense.py | 2 +- .../accounting/types/expense_line_request.py | 4 +- .../accounting/types/expense_report.py | 2 +- .../types/expense_report_line_request.py | 4 +- .../types/expense_report_request.py | 4 +- .../types/expense_report_status_enum.py | 5 +- .../accounting/types/expense_request.py | 4 +- .../external_target_field_api_response.py | 202 +- .../accounting/types/feed_status_enum.py | 5 +- .../accounting/types/field_format_enum.py | 5 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 206 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../accounting/types/field_type_enum.py | 5 +- .../types/general_ledger_transaction.py | 2 +- .../types/general_ledger_transaction_line.py | 2 +- .../accounting/types/income_statement.py | 2 +- .../resources/accounting/types/invoice.py | 40 +- .../accounting/types/invoice_line_item.py | 2 +- .../types/invoice_line_item_request.py | 4 +- .../accounting/types/invoice_request.py | 4 +- .../accounting/types/invoice_response.py | 39 +- .../accounting/types/invoice_status_enum.py | 5 +- .../accounting/types/invoice_type_enum.py | 5 +- src/merge/resources/accounting/types/issue.py | 2 +- .../accounting/types/issue_status_enum.py | 5 +- src/merge/resources/accounting/types/item.py | 2 +- .../accounting/types/item_format_enum.py | 5 +- .../accounting/types/item_fulfillment.py | 2 +- .../types/item_fulfillment_line_request.py | 4 +- .../types/item_fulfillment_request_request.py | 4 +- .../types/item_fulfillment_status_enum.py | 5 +- .../accounting/types/item_request_request.py | 4 +- .../accounting/types/item_type_enum.py | 5 +- .../accounting/types/journal_entry.py | 2 +- .../accounting/types/journal_entry_request.py | 4 +- .../accounting/types/journal_line_request.py | 4 +- .../accounting/types/language_enum.py | 5 +- .../accounting/types/last_sync_result_enum.py | 5 +- .../accounting/types/meta_response.py | 2 +- .../resources/accounting/types/method_enum.py | 5 +- .../accounting/types/method_type_enum.py | 5 +- .../types/paginated_credit_note_list.py | 39 +- .../types/paginated_invoice_list.py | 39 +- .../types/paginated_vendor_credit_list.py | 39 +- .../types/patched_contact_request.py | 4 +- .../types/patched_item_request_request.py | 4 +- .../types/patched_payment_request.py | 4 +- .../types/patched_vendor_credit_request.py | 4 +- .../resources/accounting/types/payment.py | 2 +- .../types/payment_line_item_request.py | 4 +- .../accounting/types/payment_method.py | 2 +- .../accounting/types/payment_request.py | 4 +- .../accounting/types/payment_term.py | 2 +- .../accounting/types/payment_type_enum.py | 5 +- .../accounting/types/posting_status_enum.py | 5 +- .../resources/accounting/types/project.py | 2 +- .../accounting/types/purchase_order.py | 2 +- .../types/purchase_order_line_item_request.py | 4 +- .../types/purchase_order_request.py | 4 +- .../types/purchase_order_status_enum.py | 5 +- .../resources/accounting/types/remote_data.py | 2 +- .../accounting/types/remote_endpoint_info.py | 2 +- .../accounting/types/remote_field.py | 2 +- .../accounting/types/remote_field_api.py | 8 +- .../types/remote_field_api_response.py | 168 +- .../accounting/types/remote_field_request.py | 2 +- .../accounting/types/remote_response.py | 6 +- .../resources/accounting/types/report_item.py | 2 +- .../accounting/types/request_format_enum.py | 5 +- .../accounting/types/response_type_enum.py | 5 +- .../resources/accounting/types/role_enum.py | 5 +- .../resources/accounting/types/sales_order.py | 2 +- .../types/sales_order_line_request.py | 4 +- .../types/sales_order_request_request.py | 4 +- .../types/sales_order_status_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../accounting/types/status_7_d_1_enum.py | 5 +- .../accounting/types/status_895_enum.py | 5 +- .../accounting/types/status_fd_5_enum.py | 5 +- .../resources/accounting/types/sync_status.py | 7 + .../types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + .../resources/accounting/types/tax_rate.py | 2 +- .../accounting/types/tracking_category.py | 2 +- .../resources/accounting/types/transaction.py | 2 +- .../types/transaction_currency_enum.py | 5 +- .../accounting/types/type_2_bb_enum.py | 5 +- .../types/underlying_transaction_type_enum.py | 5 +- .../accounting/types/vendor_credit.py | 36 +- .../vendor_credit_apply_line_for_invoice.py | 37 +- ...dor_credit_apply_line_for_vendor_credit.py | 37 +- ...it_apply_line_for_vendor_credit_request.py | 12 +- .../types/vendor_credit_line_request.py | 4 +- .../accounting/types/vendor_credit_request.py | 12 +- .../types/vendor_credit_response.py | 39 +- src/merge/resources/ats/__init__.py | 12 +- src/merge/resources/ats/resources/__init__.py | 72 +- .../resources/account_details/raw_client.py | 10 - .../ats/resources/account_token/raw_client.py | 18 - .../ats/resources/activities/__init__.py | 6 +- .../ats/resources/activities/raw_client.py | 34 - .../resources/activities/types/__init__.py | 6 +- .../activities_list_request_remote_fields.py | 5 +- ...tivities_list_request_show_enum_origins.py | 5 +- ...tivities_retrieve_request_remote_fields.py | 5 +- ...ties_retrieve_request_show_enum_origins.py | 5 +- .../ats/resources/applications/__init__.py | 6 +- .../ats/resources/applications/raw_client.py | 42 - .../resources/applications/types/__init__.py | 6 +- .../applications_list_request_expand_item.py | 5 +- ...plications_retrieve_request_expand_item.py | 5 +- .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../ats/resources/attachments/raw_client.py | 34 - .../ats/resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../ats/resources/candidates/__init__.py | 6 +- .../ats/resources/candidates/raw_client.py | 58 - .../resources/candidates/types/__init__.py | 6 +- .../candidates_list_request_expand_item.py | 5 +- ...candidates_retrieve_request_expand_item.py | 5 +- .../resources/delete_account/raw_client.py | 10 - .../ats/resources/departments/raw_client.py | 18 - .../resources/ats/resources/eeocs/__init__.py | 6 +- .../ats/resources/eeocs/raw_client.py | 18 - .../ats/resources/eeocs/types/__init__.py | 6 +- .../types/eeocs_list_request_remote_fields.py | 5 +- .../eeocs_list_request_show_enum_origins.py | 5 +- .../eeocs_retrieve_request_remote_fields.py | 5 +- ...eocs_retrieve_request_show_enum_origins.py | 5 +- .../ats/resources/field_mapping/client.py | 16 +- .../ats/resources/field_mapping/raw_client.py | 66 +- .../ats/resources/force_resync/raw_client.py | 10 - .../ats/resources/generate_key/raw_client.py | 10 - .../ats/resources/interviews/__init__.py | 6 +- .../ats/resources/interviews/raw_client.py | 34 - .../resources/interviews/types/__init__.py | 6 +- .../interviews_list_request_expand_item.py | 5 +- ...interviews_retrieve_request_expand_item.py | 5 +- .../ats/resources/issues/__init__.py | 6 +- .../ats/resources/issues/raw_client.py | 18 - .../ats/resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../job_interview_stages/raw_client.py | 18 - .../ats/resources/job_postings/__init__.py | 6 +- .../ats/resources/job_postings/raw_client.py | 18 - .../resources/job_postings/types/__init__.py | 6 +- .../types/job_postings_list_request_status.py | 5 +- .../resources/ats/resources/jobs/__init__.py | 6 +- .../ats/resources/jobs/raw_client.py | 26 - .../ats/resources/jobs/types/__init__.py | 6 +- .../types/jobs_list_request_expand_item.py | 5 +- .../jobs/types/jobs_list_request_status.py | 5 +- .../jobs_retrieve_request_expand_item.py | 5 +- ...ning_questions_list_request_expand_item.py | 5 +- .../ats/resources/link_token/__init__.py | 6 +- .../ats/resources/link_token/client.py | 8 +- .../ats/resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../ats/resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../ats/resources/offers/__init__.py | 6 +- .../ats/resources/offers/raw_client.py | 18 - .../ats/resources/offers/types/__init__.py | 6 +- .../types/offers_list_request_expand_item.py | 5 +- .../types/offers_list_request_status.py | 5 +- .../offers_retrieve_request_expand_item.py | 5 +- .../ats/resources/offices/raw_client.py | 18 - .../ats/resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../resources/reject_reasons/raw_client.py | 18 - .../ats/resources/scopes/raw_client.py | 26 - .../ats/resources/scorecards/__init__.py | 6 +- .../ats/resources/scorecards/raw_client.py | 18 - .../resources/scorecards/types/__init__.py | 6 +- .../scorecards_list_request_expand_item.py | 5 +- ...scorecards_retrieve_request_expand_item.py | 5 +- .../ats/resources/sync_status/raw_client.py | 10 - .../ats/resources/tags/raw_client.py | 10 - .../ats/resources/users/raw_client.py | 18 - .../resources/webhook_receivers/raw_client.py | 18 - src/merge/resources/ats/types/__init__.py | 12 +- .../resources/ats/types/access_role_enum.py | 5 +- .../ats/types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../ats/types/account_integration.py | 6 +- src/merge/resources/ats/types/activity.py | 2 +- .../resources/ats/types/activity_request.py | 4 +- .../resources/ats/types/activity_type_enum.py | 5 +- .../resources/ats/types/advanced_metadata.py | 2 +- src/merge/resources/ats/types/application.py | 26 +- .../ats/types/application_request.py | 10 +- .../ats/types/application_response.py | 25 +- src/merge/resources/ats/types/attachment.py | 2 +- .../resources/ats/types/attachment_request.py | 4 +- .../ats/types/attachment_type_enum.py | 5 +- src/merge/resources/ats/types/candidate.py | 25 +- .../resources/ats/types/candidate_request.py | 10 +- .../resources/ats/types/candidate_response.py | 25 +- .../resources/ats/types/categories_enum.py | 5 +- .../resources/ats/types/category_enum.py | 5 +- .../ats/types/data_passthrough_request.py | 2 +- src/merge/resources/ats/types/department.py | 2 +- .../ats/types/disability_status_enum.py | 5 +- src/merge/resources/ats/types/eeoc.py | 8 +- .../ats/types/email_address_request.py | 4 +- .../ats/types/email_address_type_enum.py | 5 +- .../ats/types/enabled_actions_enum.py | 5 +- .../resources/ats/types/encoding_enum.py | 5 +- .../resources/ats/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 100 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 104 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- src/merge/resources/ats/types/gender_enum.py | 5 +- src/merge/resources/ats/types/issue.py | 2 +- .../resources/ats/types/issue_status_enum.py | 5 +- src/merge/resources/ats/types/job.py | 9 +- .../ats/types/job_interview_stage.py | 5 +- src/merge/resources/ats/types/job_posting.py | 9 +- .../ats/types/job_posting_status_enum.py | 5 +- .../resources/ats/types/job_status_enum.py | 5 +- .../resources/ats/types/job_type_enum.py | 5 +- .../resources/ats/types/language_enum.py | 5 +- .../ats/types/last_sync_result_enum.py | 5 +- .../resources/ats/types/meta_response.py | 4 +- src/merge/resources/ats/types/method_enum.py | 5 +- src/merge/resources/ats/types/offer.py | 25 +- .../resources/ats/types/offer_status_enum.py | 5 +- src/merge/resources/ats/types/office.py | 2 +- .../ats/types/overall_recommendation_enum.py | 5 +- .../ats/types/paginated_application_list.py | 25 +- .../ats/types/paginated_candidate_list.py | 25 +- .../ats/types/paginated_eeoc_list.py | 6 + .../paginated_job_interview_stage_list.py | 3 + .../resources/ats/types/paginated_job_list.py | 12 +- .../ats/types/paginated_job_posting_list.py | 16 +- .../ats/types/paginated_offer_list.py | 25 +- .../paginated_scheduled_interview_list.py | 6 + .../ats/types/paginated_scorecard_list.py | 6 + .../paginated_screening_question_list.py | 3 + .../ats/types/patched_candidate_request.py | 10 +- .../ats/types/phone_number_request.py | 4 +- .../ats/types/phone_number_type_enum.py | 5 +- src/merge/resources/ats/types/race_enum.py | 5 +- src/merge/resources/ats/types/reason_enum.py | 5 +- .../resources/ats/types/reject_reason.py | 2 +- src/merge/resources/ats/types/remote_data.py | 2 +- .../ats/types/remote_endpoint_info.py | 2 +- .../resources/ats/types/remote_field_api.py | 8 +- .../ats/types/remote_field_api_response.py | 90 +- .../resources/ats/types/remote_response.py | 6 +- src/merge/resources/ats/types/remote_user.py | 2 +- .../ats/types/request_format_enum.py | 5 +- .../resources/ats/types/response_type_enum.py | 5 +- src/merge/resources/ats/types/role_enum.py | 5 +- .../ats/types/scheduled_interview.py | 8 +- .../ats/types/scheduled_interview_request.py | 10 +- .../ats/types/scheduled_interview_response.py | 6 + .../types/scheduled_interview_status_enum.py | 5 +- src/merge/resources/ats/types/scorecard.py | 8 +- .../resources/ats/types/screening_question.py | 3 + .../ats/types/screening_question_answer.py | 3 + .../screening_question_answer_request.py | 7 +- .../ats/types/screening_question_type_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../resources/ats/types/status_fd_5_enum.py | 5 +- src/merge/resources/ats/types/sync_status.py | 7 + .../ats/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + src/merge/resources/ats/types/tag.py | 4 +- src/merge/resources/ats/types/url_request.py | 4 +- .../resources/ats/types/url_type_enum.py | 5 +- .../ats/types/veteran_status_enum.py | 5 +- .../resources/ats/types/visibility_enum.py | 5 +- src/merge/resources/calendar/__init__.py | 12 +- .../resources/calendar/resources/__init__.py | 50 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../calendar/resources/calendars/__init__.py | 6 +- .../resources/calendars/raw_client.py | 18 - .../resources/calendars/types/__init__.py | 6 +- .../types/calendars_list_request_type.py | 5 +- .../resources/delete_account/raw_client.py | 10 - .../calendar/resources/events/__init__.py | 6 +- .../calendar/resources/events/raw_client.py | 34 - .../resources/events/types/__init__.py | 6 +- ...vents_invitees_list_request_expand_item.py | 5 +- .../types/events_list_request_expand_item.py | 5 +- .../events_retrieve_request_expand_item.py | 5 +- .../resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 74 +- .../resources/force_resync/raw_client.py | 10 - .../resources/generate_key/raw_client.py | 10 - .../calendar/resources/groups/__init__.py | 6 +- .../calendar/resources/groups/raw_client.py | 18 - .../resources/groups/types/__init__.py | 6 +- .../types/groups_list_request_expand_item.py | 5 +- .../groups_retrieve_request_expand_item.py | 5 +- .../calendar/resources/issues/__init__.py | 6 +- .../calendar/resources/issues/raw_client.py | 18 - .../resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../calendar/resources/link_token/__init__.py | 6 +- .../calendar/resources/link_token/client.py | 8 +- .../resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 18 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../calendar/resources/scopes/raw_client.py | 26 - .../calendar/resources/series/raw_client.py | 18 - .../resources/sync_status/raw_client.py | 10 - .../calendar/resources/users/raw_client.py | 18 - .../resources/webhook_receivers/raw_client.py | 18 - .../resources/calendar/types/__init__.py | 12 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../calendar/types/account_integration.py | 6 +- .../calendar/types/advanced_metadata.py | 2 +- .../types/availability_status_enum.py | 5 +- .../calendar/types/calendar_field_mappings.py | 4 +- .../calendar/types/calendar_type_enum.py | 5 +- .../calendar/types/categories_enum.py | 5 +- .../resources/calendar/types/category_enum.py | 5 +- .../types/data_passthrough_request.py | 2 +- .../calendar/types/effective_role_enum.py | 5 +- .../calendar/types/enabled_actions_enum.py | 5 +- .../resources/calendar/types/encoding_enum.py | 5 +- .../calendar/types/event_field_mappings.py | 4 +- .../calendar/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 30 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 30 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../calendar/types/group_field_mappings.py | 4 +- src/merge/resources/calendar/types/issue.py | 2 +- .../calendar/types/issue_status_enum.py | 5 +- .../resources/calendar/types/language_enum.py | 5 +- .../calendar/types/last_sync_result_enum.py | 5 +- .../calendar/types/location_type_enum.py | 5 +- .../resources/calendar/types/method_enum.py | 5 +- .../types/permission_field_mappings.py | 4 +- .../calendar/types/permission_type_enum.py | 5 +- .../resources/calendar/types/remote_data.py | 2 +- .../calendar/types/remote_endpoint_info.py | 2 +- .../calendar/types/remote_field_api.py | 8 +- .../types/remote_field_api_response.py | 22 +- .../calendar/types/remote_response.py | 6 +- .../calendar/types/request_format_enum.py | 5 +- .../calendar/types/response_type_enum.py | 5 +- .../resources/calendar/types/role_enum.py | 5 +- .../resources/calendar/types/roles_enum.py | 5 +- .../resources/calendar/types/rsvp_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../calendar/types/series_field_mappings.py | 4 +- .../calendar/types/status_fd_5_enum.py | 5 +- .../resources/calendar/types/sync_status.py | 7 + .../calendar/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + .../calendar/types/user_field_mappings.py | 4 +- src/merge/resources/chat/__init__.py | 12 +- .../resources/chat/resources/__init__.py | 48 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../chat/resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../chat/resources/conversations/__init__.py | 6 +- .../resources/conversations/raw_client.py | 26 - .../resources/conversations/types/__init__.py | 6 +- ...ations_members_list_request_expand_item.py | 5 +- .../resources/delete_account/raw_client.py | 10 - .../chat/resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 74 +- .../chat/resources/force_resync/raw_client.py | 10 - .../chat/resources/generate_key/raw_client.py | 10 - .../chat/resources/groups/raw_client.py | 18 - .../chat/resources/issues/__init__.py | 6 +- .../chat/resources/issues/raw_client.py | 18 - .../chat/resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../chat/resources/link_token/__init__.py | 6 +- .../chat/resources/link_token/client.py | 8 +- .../chat/resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../chat/resources/messages/__init__.py | 6 +- .../chat/resources/messages/raw_client.py | 26 - .../chat/resources/messages/types/__init__.py | 6 +- .../types/messages_list_request_order_by.py | 5 +- .../messages_replies_list_request_order_by.py | 5 +- .../chat/resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../chat/resources/scopes/raw_client.py | 26 - .../chat/resources/sync_status/raw_client.py | 10 - .../chat/resources/users/raw_client.py | 18 - .../resources/webhook_receivers/raw_client.py | 18 - src/merge/resources/chat/types/__init__.py | 12 +- .../chat/types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../chat/types/account_integration.py | 6 +- .../resources/chat/types/advanced_metadata.py | 2 +- .../resources/chat/types/categories_enum.py | 5 +- .../resources/chat/types/category_enum.py | 5 +- .../resources/chat/types/conversation.py | 3 + .../chat/types/conversation_field_mappings.py | 4 +- .../chat/types/data_passthrough_request.py | 2 +- .../chat/types/enabled_actions_enum.py | 5 +- .../resources/chat/types/encoding_enum.py | 5 +- .../resources/chat/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 26 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 26 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- src/merge/resources/chat/types/group.py | 7 +- .../chat/types/group_field_mappings.py | 4 +- src/merge/resources/chat/types/issue.py | 2 +- .../resources/chat/types/issue_status_enum.py | 5 +- .../resources/chat/types/language_enum.py | 5 +- .../chat/types/last_sync_result_enum.py | 5 +- src/merge/resources/chat/types/member.py | 3 + .../chat/types/member_field_mappings.py | 4 +- src/merge/resources/chat/types/method_enum.py | 5 +- .../chat/types/paginated_conversation_list.py | 3 + .../chat/types/paginated_group_list.py | 12 +- .../chat/types/paginated_member_list.py | 3 + .../chat/types/paginated_user_list.py | 12 +- src/merge/resources/chat/types/remote_data.py | 2 +- .../chat/types/remote_endpoint_info.py | 2 +- .../resources/chat/types/remote_field_api.py | 8 +- .../chat/types/remote_field_api_response.py | 20 +- .../resources/chat/types/remote_response.py | 6 +- .../chat/types/request_format_enum.py | 5 +- .../chat/types/response_type_enum.py | 5 +- src/merge/resources/chat/types/role_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../resources/chat/types/status_fd_5_enum.py | 5 +- src/merge/resources/chat/types/sync_status.py | 7 + .../chat/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + src/merge/resources/chat/types/type_enum.py | 5 +- src/merge/resources/chat/types/user.py | 7 +- .../chat/types/user_field_mappings.py | 4 +- src/merge/resources/crm/__init__.py | 12 +- src/merge/resources/crm/resources/__init__.py | 68 +- .../resources/account_details/raw_client.py | 10 - .../crm/resources/account_token/raw_client.py | 18 - .../crm/resources/accounts/raw_client.py | 58 - .../resources/association_types/raw_client.py | 34 - .../crm/resources/associations/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../crm/resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../crm/resources/contacts/__init__.py | 6 +- .../crm/resources/contacts/raw_client.py | 66 - .../crm/resources/contacts/types/__init__.py | 6 +- .../contacts_list_request_expand_item.py | 5 +- .../contacts_retrieve_request_expand_item.py | 5 +- .../custom_object_classes/raw_client.py | 18 - .../resources/custom_objects/raw_client.py | 42 - .../resources/delete_account/raw_client.py | 10 - .../resources/engagement_types/raw_client.py | 26 - .../crm/resources/engagements/__init__.py | 6 +- .../crm/resources/engagements/raw_client.py | 58 - .../resources/engagements/types/__init__.py | 6 +- .../engagements_list_request_expand_item.py | 5 +- ...ngagements_retrieve_request_expand_item.py | 5 +- .../crm/resources/field_mapping/client.py | 16 +- .../crm/resources/field_mapping/raw_client.py | 66 +- .../crm/resources/force_resync/raw_client.py | 10 - .../crm/resources/generate_key/raw_client.py | 10 - .../crm/resources/issues/__init__.py | 6 +- .../crm/resources/issues/raw_client.py | 18 - .../crm/resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../resources/crm/resources/leads/__init__.py | 6 +- .../crm/resources/leads/raw_client.py | 42 - .../crm/resources/leads/types/__init__.py | 6 +- .../types/leads_list_request_expand_item.py | 5 +- .../leads_retrieve_request_expand_item.py | 5 +- .../crm/resources/link_token/__init__.py | 6 +- .../crm/resources/link_token/client.py | 8 +- .../crm/resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../crm/resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/crm/resources/notes/__init__.py | 6 +- .../crm/resources/notes/raw_client.py | 42 - .../crm/resources/notes/types/__init__.py | 6 +- .../types/notes_list_request_expand_item.py | 5 +- .../notes_retrieve_request_expand_item.py | 5 +- .../crm/resources/opportunities/__init__.py | 6 +- .../crm/resources/opportunities/raw_client.py | 58 - .../resources/opportunities/types/__init__.py | 6 +- .../opportunities_list_request_expand_item.py | 5 +- .../opportunities_list_request_status.py | 5 +- ...ortunities_retrieve_request_expand_item.py | 5 +- .../crm/resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../crm/resources/scopes/raw_client.py | 26 - .../crm/resources/stages/raw_client.py | 26 - .../crm/resources/sync_status/raw_client.py | 10 - .../resources/crm/resources/tasks/__init__.py | 6 +- .../crm/resources/tasks/raw_client.py | 58 - .../crm/resources/tasks/types/__init__.py | 6 +- .../types/tasks_list_request_expand_item.py | 5 +- .../tasks_retrieve_request_expand_item.py | 5 +- .../crm/resources/users/raw_client.py | 34 - .../resources/webhook_receivers/raw_client.py | 18 - src/merge/resources/crm/types/__init__.py | 12 +- src/merge/resources/crm/types/account.py | 2 +- .../crm/types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../crm/types/account_integration.py | 6 +- .../resources/crm/types/account_request.py | 4 +- .../resources/crm/types/activity_type_enum.py | 5 +- .../resources/crm/types/address_request.py | 4 +- .../resources/crm/types/address_type_enum.py | 5 +- .../resources/crm/types/advanced_metadata.py | 2 +- .../resources/crm/types/association_type.py | 2 +- .../resources/crm/types/cardinality_enum.py | 5 +- .../resources/crm/types/categories_enum.py | 5 +- .../resources/crm/types/category_enum.py | 5 +- src/merge/resources/crm/types/contact.py | 2 +- .../resources/crm/types/contact_request.py | 4 +- src/merge/resources/crm/types/country_enum.py | 5 +- .../resources/crm/types/custom_object.py | 2 +- .../crm/types/custom_object_class.py | 4 +- .../crm/types/custom_object_request.py | 6 +- .../crm/types/data_passthrough_request.py | 2 +- .../resources/crm/types/direction_enum.py | 5 +- .../crm/types/email_address_request.py | 4 +- .../crm/types/enabled_actions_enum.py | 5 +- .../resources/crm/types/encoding_enum.py | 5 +- src/merge/resources/crm/types/engagement.py | 2 +- .../resources/crm/types/engagement_request.py | 4 +- .../resources/crm/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 50 +- .../resources/crm/types/field_format_enum.py | 5 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 50 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../resources/crm/types/field_type_enum.py | 5 +- src/merge/resources/crm/types/issue.py | 2 +- .../resources/crm/types/issue_status_enum.py | 5 +- .../resources/crm/types/item_format_enum.py | 5 +- .../resources/crm/types/item_type_enum.py | 5 +- .../resources/crm/types/language_enum.py | 5 +- .../crm/types/last_sync_result_enum.py | 5 +- src/merge/resources/crm/types/lead.py | 2 +- src/merge/resources/crm/types/lead_request.py | 4 +- .../resources/crm/types/lead_status_enum.py | 5 +- .../resources/crm/types/meta_response.py | 4 +- src/merge/resources/crm/types/method_enum.py | 5 +- src/merge/resources/crm/types/note.py | 2 +- src/merge/resources/crm/types/note_request.py | 4 +- src/merge/resources/crm/types/opportunity.py | 2 +- .../crm/types/opportunity_request.py | 4 +- .../crm/types/opportunity_status_enum.py | 5 +- .../resources/crm/types/origin_type_enum.py | 5 +- .../crm/types/patched_account_request.py | 4 +- .../crm/types/patched_contact_request.py | 4 +- .../crm/types/patched_engagement_request.py | 4 +- .../crm/types/patched_opportunity_request.py | 4 +- .../crm/types/patched_task_request.py | 4 +- .../crm/types/phone_number_request.py | 4 +- src/merge/resources/crm/types/reason_enum.py | 5 +- src/merge/resources/crm/types/remote_data.py | 2 +- .../crm/types/remote_endpoint_info.py | 2 +- src/merge/resources/crm/types/remote_field.py | 2 +- .../resources/crm/types/remote_field_api.py | 8 +- .../crm/types/remote_field_api_response.py | 42 +- .../remote_field_class_field_choices_item.py | 2 +- ..._custom_object_class_field_choices_item.py | 2 +- .../crm/types/remote_field_request.py | 2 +- .../resources/crm/types/remote_response.py | 6 +- .../crm/types/request_format_enum.py | 5 +- .../resources/crm/types/response_type_enum.py | 5 +- src/merge/resources/crm/types/role_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- src/merge/resources/crm/types/stage.py | 2 +- .../resources/crm/types/status_fd_5_enum.py | 5 +- src/merge/resources/crm/types/sync_status.py | 7 + .../crm/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + src/merge/resources/crm/types/task.py | 2 +- src/merge/resources/crm/types/task_request.py | 4 +- .../resources/crm/types/task_status_enum.py | 5 +- src/merge/resources/crm/types/user.py | 2 +- src/merge/resources/email/__init__.py | 12 +- .../resources/email/resources/__init__.py | 52 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../email/resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../resources/delete_account/raw_client.py | 10 - .../resources/email_addresses/__init__.py | 6 +- .../resources/email_addresses/raw_client.py | 18 - .../email_addresses/types/__init__.py | 6 +- ...mail_addresses_list_request_expand_item.py | 5 +- ..._addresses_retrieve_request_expand_item.py | 5 +- .../email/resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 74 +- .../email/resources/folders/__init__.py | 6 +- .../email/resources/folders/raw_client.py | 18 - .../email/resources/folders/types/__init__.py | 6 +- .../types/folders_list_request_expand_item.py | 5 +- .../folders_retrieve_request_expand_item.py | 5 +- .../resources/force_resync/raw_client.py | 10 - .../resources/generate_key/raw_client.py | 10 - .../email/resources/groups/__init__.py | 6 +- .../email/resources/groups/raw_client.py | 18 - .../email/resources/groups/types/__init__.py | 6 +- .../types/groups_list_request_expand_item.py | 5 +- .../groups_retrieve_request_expand_item.py | 5 +- .../email/resources/issues/__init__.py | 6 +- .../email/resources/issues/raw_client.py | 18 - .../email/resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../email/resources/link_token/__init__.py | 6 +- .../email/resources/link_token/client.py | 8 +- .../email/resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../email/resources/mailboxes/__init__.py | 6 +- .../email/resources/mailboxes/raw_client.py | 18 - .../resources/mailboxes/types/__init__.py | 6 +- .../mailboxes_list_request_expand_item.py | 5 +- .../mailboxes_retrieve_request_expand_item.py | 5 +- .../email/resources/messages/__init__.py | 6 +- .../email/resources/messages/raw_client.py | 18 - .../resources/messages/types/__init__.py | 6 +- .../messages_list_request_expand_item.py | 5 +- .../messages_retrieve_request_expand_item.py | 5 +- .../email/resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../email/resources/scopes/raw_client.py | 26 - .../email/resources/sync_status/raw_client.py | 10 - .../email/resources/users/__init__.py | 6 +- .../email/resources/users/raw_client.py | 18 - .../email/resources/users/types/__init__.py | 6 +- .../types/users_list_request_expand_item.py | 5 +- .../users_retrieve_request_expand_item.py | 5 +- .../resources/webhook_receivers/raw_client.py | 18 - src/merge/resources/email/types/__init__.py | 12 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../email/types/account_integration.py | 6 +- .../email/types/advanced_metadata.py | 2 +- .../resources/email/types/categories_enum.py | 5 +- .../resources/email/types/category_enum.py | 5 +- .../email/types/data_passthrough_request.py | 2 +- .../resources/email/types/effect_enum.py | 5 +- .../types/email_address_field_mappings.py | 4 +- .../email/types/enabled_actions_enum.py | 5 +- .../resources/email/types/encoding_enum.py | 5 +- .../resources/email/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 32 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 32 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../email/types/folder_field_mappings.py | 4 +- .../email/types/group_field_mappings.py | 4 +- src/merge/resources/email/types/issue.py | 2 +- .../email/types/issue_status_enum.py | 5 +- .../resources/email/types/language_enum.py | 5 +- .../email/types/last_sync_result_enum.py | 5 +- .../email/types/mailbox_field_mappings.py | 4 +- .../email/types/mailbox_type_enum.py | 5 +- .../resources/email/types/method_enum.py | 5 +- .../email/types/permission_field_mappings.py | 4 +- .../resources/email/types/remote_data.py | 2 +- .../email/types/remote_endpoint_info.py | 2 +- .../resources/email/types/remote_field_api.py | 8 +- .../email/types/remote_field_api_response.py | 24 +- .../resources/email/types/remote_response.py | 6 +- .../email/types/request_format_enum.py | 5 +- .../email/types/response_type_enum.py | 5 +- src/merge/resources/email/types/role_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../resources/email/types/status_fd_5_enum.py | 5 +- .../resources/email/types/sync_status.py | 7 + .../email/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + .../email/types/user_field_mappings.py | 4 +- .../resources/email/types/user_type_enum.py | 5 +- src/merge/resources/filestorage/__init__.py | 12 +- .../filestorage/resources/__init__.py | 50 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../resources/delete_account/raw_client.py | 10 - .../resources/drives/raw_client.py | 18 - .../resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 66 +- .../filestorage/resources/files/__init__.py | 6 +- .../filestorage/resources/files/raw_client.py | 64 - .../resources/files/types/__init__.py | 6 +- ...load_request_meta_list_request_order_by.py | 5 +- .../types/files_list_request_expand_item.py | 5 +- .../types/files_list_request_order_by.py | 5 +- .../files_retrieve_request_expand_item.py | 5 +- .../filestorage/resources/folders/__init__.py | 6 +- .../resources/folders/raw_client.py | 34 - .../resources/folders/types/__init__.py | 6 +- .../types/folders_list_request_expand_item.py | 5 +- .../folders_retrieve_request_expand_item.py | 5 +- .../resources/force_resync/raw_client.py | 10 - .../resources/generate_key/raw_client.py | 10 - .../filestorage/resources/groups/__init__.py | 6 +- .../resources/groups/raw_client.py | 18 - .../resources/groups/types/__init__.py | 6 +- .../types/groups_list_request_expand_item.py | 5 +- .../groups_retrieve_request_expand_item.py | 5 +- .../filestorage/resources/issues/__init__.py | 6 +- .../resources/issues/raw_client.py | 18 - .../resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../resources/link_token/client.py | 8 +- .../resources/link_token/raw_client.py | 18 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../resources/scopes/raw_client.py | 26 - .../resources/sync_status/raw_client.py | 10 - .../filestorage/resources/users/raw_client.py | 18 - .../resources/webhook_receivers/raw_client.py | 18 - .../resources/filestorage/types/__init__.py | 12 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../filestorage/types/account_integration.py | 6 +- .../filestorage/types/advanced_metadata.py | 2 +- .../filestorage/types/categories_enum.py | 5 +- .../filestorage/types/category_enum.py | 5 +- .../types/data_passthrough_request.py | 2 +- .../types/download_request_meta.py | 2 +- .../resources/filestorage/types/drive.py | 2 +- .../filestorage/types/enabled_actions_enum.py | 5 +- .../filestorage/types/encoding_enum.py | 5 +- .../filestorage/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 28 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 28 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- src/merge/resources/filestorage/types/file.py | 7 +- .../filestorage/types/file_request.py | 9 +- .../types/file_storage_file_response.py | 3 + .../types/file_storage_folder_response.py | 6 +- .../resources/filestorage/types/folder.py | 7 +- .../filestorage/types/folder_request.py | 7 +- .../resources/filestorage/types/group.py | 6 +- .../resources/filestorage/types/issue.py | 2 +- .../filestorage/types/issue_status_enum.py | 5 +- .../filestorage/types/language_enum.py | 5 +- .../types/last_sync_result_enum.py | 5 +- .../filestorage/types/meta_response.py | 4 +- .../filestorage/types/method_enum.py | 5 +- .../filestorage/types/paginated_file_list.py | 3 + .../types/paginated_folder_list.py | 6 +- .../filestorage/types/paginated_group_list.py | 5 +- .../resources/filestorage/types/permission.py | 4 +- .../filestorage/types/permission_request.py | 6 +- .../filestorage/types/remote_data.py | 2 +- .../filestorage/types/remote_endpoint_info.py | 2 +- .../filestorage/types/remote_field_api.py | 8 +- .../types/remote_field_api_response.py | 22 +- .../filestorage/types/remote_response.py | 6 +- .../filestorage/types/request_format_enum.py | 5 +- .../filestorage/types/response_type_enum.py | 5 +- .../resources/filestorage/types/role_enum.py | 5 +- .../resources/filestorage/types/roles_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../filestorage/types/status_fd_5_enum.py | 5 +- .../filestorage/types/sync_status.py | 7 + .../types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + .../resources/filestorage/types/type_enum.py | 5 +- src/merge/resources/filestorage/types/user.py | 2 +- src/merge/resources/hris/__init__.py | 12 +- .../resources/hris/resources/__init__.py | 72 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../hris/resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../hris/resources/bank_info/__init__.py | 6 +- .../hris/resources/bank_info/raw_client.py | 18 - .../resources/bank_info/types/__init__.py | 6 +- .../bank_info_list_request_account_type.py | 5 +- .../types/bank_info_list_request_order_by.py | 5 +- .../hris/resources/benefits/raw_client.py | 18 - .../hris/resources/companies/raw_client.py | 18 - .../resources/delete_account/raw_client.py | 10 - .../hris/resources/dependents/raw_client.py | 18 - .../employee_payroll_runs/__init__.py | 6 +- .../employee_payroll_runs/raw_client.py | 18 - .../employee_payroll_runs/types/__init__.py | 6 +- ...e_payroll_runs_list_request_expand_item.py | 5 +- ...yroll_runs_retrieve_request_expand_item.py | 5 +- .../hris/resources/employees/__init__.py | 6 +- .../hris/resources/employees/raw_client.py | 42 - .../resources/employees/types/__init__.py | 6 +- ...mployees_list_request_employment_status.py | 5 +- .../employees_list_request_expand_item.py | 5 +- .../employees_list_request_remote_fields.py | 5 +- ...mployees_list_request_show_enum_origins.py | 5 +- .../employees_retrieve_request_expand_item.py | 5 +- ...mployees_retrieve_request_remote_fields.py | 5 +- ...yees_retrieve_request_show_enum_origins.py | 5 +- .../resources/employer_benefits/raw_client.py | 18 - .../hris/resources/employments/__init__.py | 6 +- .../hris/resources/employments/raw_client.py | 18 - .../resources/employments/types/__init__.py | 6 +- .../employments_list_request_expand_item.py | 5 +- .../employments_list_request_order_by.py | 5 +- .../employments_list_request_remote_fields.py | 5 +- ...loyments_list_request_show_enum_origins.py | 5 +- ...mployments_retrieve_request_expand_item.py | 5 +- ...loyments_retrieve_request_remote_fields.py | 5 +- ...ents_retrieve_request_show_enum_origins.py | 5 +- .../hris/resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 66 +- .../hris/resources/force_resync/raw_client.py | 10 - .../hris/resources/generate_key/raw_client.py | 10 - .../hris/resources/groups/__init__.py | 6 +- .../hris/resources/groups/raw_client.py | 26 - .../hris/resources/groups/types/__init__.py | 6 +- .../hris/resources/issues/__init__.py | 6 +- .../hris/resources/issues/raw_client.py | 18 - .../hris/resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../hris/resources/link_token/__init__.py | 6 +- .../hris/resources/link_token/client.py | 8 +- .../hris/resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../hris/resources/locations/__init__.py | 6 +- .../hris/resources/locations/raw_client.py | 18 - .../resources/locations/types/__init__.py | 6 +- .../locations_list_request_location_type.py | 5 +- .../locations_list_request_remote_fields.py | 5 +- ...ocations_list_request_show_enum_origins.py | 5 +- ...ocations_retrieve_request_remote_fields.py | 5 +- ...ions_retrieve_request_show_enum_origins.py | 5 +- .../hris/resources/passthrough/raw_client.py | 10 - .../hris/resources/pay_groups/raw_client.py | 18 - .../hris/resources/payroll_runs/__init__.py | 6 +- .../hris/resources/payroll_runs/raw_client.py | 18 - .../resources/payroll_runs/types/__init__.py | 6 +- ...payroll_runs_list_request_remote_fields.py | 5 +- .../payroll_runs_list_request_run_type.py | 5 +- ...oll_runs_list_request_show_enum_origins.py | 5 +- ...oll_runs_retrieve_request_remote_fields.py | 5 +- ...runs_retrieve_request_show_enum_origins.py | 5 +- .../resources/regenerate_key/raw_client.py | 10 - .../hris/resources/scopes/raw_client.py | 26 - .../hris/resources/sync_status/raw_client.py | 10 - .../hris/resources/teams/raw_client.py | 18 - .../hris/resources/time_off/__init__.py | 6 +- .../hris/resources/time_off/raw_client.py | 34 - .../hris/resources/time_off/types/__init__.py | 6 +- .../time_off_list_request_expand_item.py | 5 +- .../time_off_list_request_remote_fields.py | 5 +- .../time_off_list_request_request_type.py | 5 +- ...time_off_list_request_show_enum_origins.py | 5 +- .../types/time_off_list_request_status.py | 5 +- .../time_off_retrieve_request_expand_item.py | 5 +- ...time_off_retrieve_request_remote_fields.py | 5 +- ..._off_retrieve_request_show_enum_origins.py | 5 +- .../resources/time_off_balances/__init__.py | 6 +- .../resources/time_off_balances/raw_client.py | 18 - .../time_off_balances/types/__init__.py | 6 +- ...e_off_balances_list_request_policy_type.py | 5 +- .../resources/timesheet_entries/__init__.py | 6 +- .../resources/timesheet_entries/raw_client.py | 34 - .../timesheet_entries/types/__init__.py | 6 +- ...timesheet_entries_list_request_order_by.py | 5 +- .../resources/webhook_receivers/raw_client.py | 18 - src/merge/resources/hris/types/__init__.py | 12 +- .../hris/types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../hris/types/account_integration.py | 6 +- .../resources/hris/types/account_type_enum.py | 5 +- .../resources/hris/types/advanced_metadata.py | 2 +- src/merge/resources/hris/types/bank_info.py | 6 +- src/merge/resources/hris/types/benefit.py | 6 +- .../hris/types/benefit_plan_type_enum.py | 5 +- .../resources/hris/types/categories_enum.py | 5 +- .../resources/hris/types/category_enum.py | 5 +- src/merge/resources/hris/types/company.py | 2 +- .../resources/hris/types/country_enum.py | 5 +- .../hris/types/data_passthrough_request.py | 2 +- src/merge/resources/hris/types/deduction.py | 2 +- src/merge/resources/hris/types/dependent.py | 2 +- src/merge/resources/hris/types/earning.py | 2 +- .../resources/hris/types/earning_type_enum.py | 5 +- src/merge/resources/hris/types/employee.py | 20 +- .../hris/types/employee_payroll_run.py | 6 +- .../resources/hris/types/employee_request.py | 8 +- .../resources/hris/types/employee_response.py | 19 +- .../resources/hris/types/employer_benefit.py | 2 +- src/merge/resources/hris/types/employment.py | 17 +- .../hris/types/employment_status_enum.py | 5 +- .../hris/types/employment_type_enum.py | 5 +- .../hris/types/enabled_actions_enum.py | 5 +- .../resources/hris/types/encoding_enum.py | 5 +- .../resources/hris/types/ethnicity_enum.py | 5 +- .../resources/hris/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 104 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 106 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../resources/hris/types/flsa_status_enum.py | 5 +- src/merge/resources/hris/types/gender_enum.py | 5 +- src/merge/resources/hris/types/group.py | 2 +- .../resources/hris/types/group_type_enum.py | 5 +- src/merge/resources/hris/types/issue.py | 2 +- .../resources/hris/types/issue_status_enum.py | 5 +- .../resources/hris/types/language_enum.py | 5 +- .../hris/types/last_sync_result_enum.py | 5 +- src/merge/resources/hris/types/location.py | 2 +- .../hris/types/location_type_enum.py | 5 +- .../hris/types/marital_status_enum.py | 5 +- .../resources/hris/types/meta_response.py | 4 +- src/merge/resources/hris/types/method_enum.py | 5 +- .../hris/types/paginated_bank_info_list.py | 4 + .../hris/types/paginated_benefit_list.py | 4 + .../hris/types/paginated_employee_list.py | 19 +- .../paginated_employee_payroll_run_list.py | 4 + .../hris/types/paginated_employment_list.py | 19 +- .../hris/types/paginated_team_list.py | 5 +- .../types/paginated_time_off_balance_list.py | 4 + .../hris/types/paginated_time_off_list.py | 4 + .../types/paginated_timesheet_entry_list.py | 4 + .../resources/hris/types/pay_currency_enum.py | 5 +- .../hris/types/pay_frequency_enum.py | 5 +- src/merge/resources/hris/types/pay_group.py | 2 +- .../resources/hris/types/pay_period_enum.py | 5 +- src/merge/resources/hris/types/payroll_run.py | 2 +- .../resources/hris/types/policy_type_enum.py | 5 +- src/merge/resources/hris/types/reason_enum.py | 5 +- .../resources/hris/types/relationship_enum.py | 5 +- src/merge/resources/hris/types/remote_data.py | 2 +- .../hris/types/remote_endpoint_info.py | 2 +- .../resources/hris/types/remote_field_api.py | 8 +- .../hris/types/remote_field_api_response.py | 86 +- .../resources/hris/types/remote_response.py | 6 +- .../hris/types/request_format_enum.py | 5 +- .../resources/hris/types/request_type_enum.py | 5 +- .../hris/types/response_type_enum.py | 5 +- src/merge/resources/hris/types/role_enum.py | 5 +- .../resources/hris/types/run_state_enum.py | 5 +- .../resources/hris/types/run_type_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../resources/hris/types/status_fd_5_enum.py | 5 +- src/merge/resources/hris/types/sync_status.py | 7 + .../hris/types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + src/merge/resources/hris/types/tax.py | 2 +- src/merge/resources/hris/types/team.py | 6 +- src/merge/resources/hris/types/time_off.py | 6 +- .../resources/hris/types/time_off_balance.py | 6 +- .../resources/hris/types/time_off_request.py | 8 +- .../resources/hris/types/time_off_response.py | 4 + .../hris/types/time_off_status_enum.py | 5 +- .../resources/hris/types/timesheet_entry.py | 6 +- .../hris/types/timesheet_entry_request.py | 8 +- .../hris/types/timesheet_entry_response.py | 4 + src/merge/resources/hris/types/units_enum.py | 5 +- src/merge/resources/knowledgebase/__init__.py | 12 +- .../knowledgebase/resources/__init__.py | 50 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/articles/__init__.py | 6 +- .../resources/articles/raw_client.py | 18 - .../resources/articles/types/__init__.py | 6 +- .../articles_list_request_expand_item.py | 5 +- .../types/articles_list_request_type.py | 5 +- .../articles_retrieve_request_expand_item.py | 5 +- .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../resources/attachments/raw_client.py | 18 - .../resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../resources/containers/__init__.py | 6 +- .../resources/containers/raw_client.py | 18 - .../resources/containers/types/__init__.py | 6 +- .../containers_list_request_expand_item.py | 5 +- .../types/containers_list_request_type.py | 5 +- ...containers_retrieve_request_expand_item.py | 5 +- .../resources/delete_account/raw_client.py | 10 - .../resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 74 +- .../resources/force_resync/raw_client.py | 10 - .../resources/generate_key/raw_client.py | 10 - .../resources/groups/__init__.py | 6 +- .../resources/groups/raw_client.py | 18 - .../resources/groups/types/__init__.py | 6 +- .../types/groups_list_request_expand_item.py | 5 +- .../groups_retrieve_request_expand_item.py | 5 +- .../resources/issues/__init__.py | 6 +- .../resources/issues/raw_client.py | 18 - .../resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../resources/link_token/__init__.py | 6 +- .../resources/link_token/client.py | 8 +- .../resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/passthrough/raw_client.py | 10 - .../resources/regenerate_key/raw_client.py | 10 - .../resources/scopes/raw_client.py | 26 - .../resources/sync_status/raw_client.py | 10 - .../resources/users/raw_client.py | 18 - .../resources/webhook_receivers/raw_client.py | 18 - .../resources/knowledgebase/types/__init__.py | 12 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../types/account_integration.py | 6 +- .../knowledgebase/types/advanced_metadata.py | 2 +- .../resources/knowledgebase/types/article.py | 5 +- .../types/article_field_mappings.py | 4 +- .../knowledgebase/types/article_type_enum.py | 5 +- .../types/attachment_field_mappings.py | 4 +- .../knowledgebase/types/categories_enum.py | 5 +- .../knowledgebase/types/category_enum.py | 5 +- .../knowledgebase/types/container.py | 2 + .../types/container_field_mappings.py | 4 +- .../types/container_type_enum.py | 5 +- .../types/data_passthrough_request.py | 2 +- .../types/enabled_actions_enum.py | 5 +- .../knowledgebase/types/encoding_enum.py | 5 +- .../knowledgebase/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 30 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 30 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../resources/knowledgebase/types/group.py | 4 +- .../types/group_field_mappings.py | 4 +- .../resources/knowledgebase/types/issue.py | 2 +- .../knowledgebase/types/issue_status_enum.py | 5 +- .../knowledgebase/types/language_enum.py | 5 +- .../types/last_sync_result_enum.py | 5 +- .../knowledgebase/types/method_enum.py | 5 +- .../types/paginated_article_list.py | 6 +- .../types/paginated_container_list.py | 2 + .../types/paginated_group_list.py | 5 +- .../knowledgebase/types/permission.py | 2 + .../types/permission_field_mappings.py | 4 +- .../types/permission_type_enum.py | 5 +- .../knowledgebase/types/remote_data.py | 2 +- .../types/remote_endpoint_info.py | 2 +- .../knowledgebase/types/remote_field_api.py | 8 +- .../types/remote_field_api_response.py | 26 +- .../knowledgebase/types/remote_response.py | 6 +- .../types/request_format_enum.py | 5 +- .../knowledgebase/types/response_type_enum.py | 5 +- .../knowledgebase/types/role_enum.py | 5 +- .../knowledgebase/types/roles_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../knowledgebase/types/status_3_c_6_enum.py | 5 +- .../knowledgebase/types/status_fd_5_enum.py | 5 +- .../knowledgebase/types/sync_status.py | 7 + .../types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + .../types/user_field_mappings.py | 4 +- .../knowledgebase/types/visibility_enum.py | 5 +- src/merge/resources/ticketing/__init__.py | 12 +- .../resources/ticketing/resources/__init__.py | 62 +- .../resources/account_details/raw_client.py | 10 - .../resources/account_token/raw_client.py | 18 - .../resources/accounts/raw_client.py | 18 - .../resources/async_passthrough/__init__.py | 6 +- .../resources/async_passthrough/raw_client.py | 18 - .../async_passthrough/types/__init__.py | 6 +- .../resources/attachments/raw_client.py | 48 - .../resources/audit_trail/raw_client.py | 10 - .../resources/available_actions/raw_client.py | 10 - .../resources/collections/__init__.py | 6 +- .../resources/collections/raw_client.py | 26 - .../resources/collections/types/__init__.py | 6 +- ...ollections_list_request_collection_type.py | 5 +- .../collections_list_request_expand_item.py | 5 +- ...ollections_retrieve_request_expand_item.py | 5 +- ...ctions_viewers_list_request_expand_item.py | 5 +- .../ticketing/resources/comments/__init__.py | 6 +- .../resources/comments/raw_client.py | 34 - .../resources/comments/types/__init__.py | 6 +- .../comments_list_request_expand_item.py | 5 +- .../comments_retrieve_request_expand_item.py | 5 +- .../resources/contacts/raw_client.py | 34 - .../resources/delete_account/raw_client.py | 10 - .../resources/field_mapping/client.py | 16 +- .../resources/field_mapping/raw_client.py | 66 +- .../resources/force_resync/raw_client.py | 10 - .../resources/generate_key/raw_client.py | 10 - .../ticketing/resources/issues/__init__.py | 6 +- .../ticketing/resources/issues/raw_client.py | 18 - .../resources/issues/types/__init__.py | 6 +- .../types/issues_list_request_status.py | 5 +- .../resources/link_token/__init__.py | 6 +- .../ticketing/resources/link_token/client.py | 8 +- .../resources/link_token/raw_client.py | 18 +- .../resources/link_token/types/__init__.py | 6 +- .../resources/linked_accounts/__init__.py | 6 +- .../resources/linked_accounts/raw_client.py | 10 - .../linked_accounts/types/__init__.py | 6 +- .../linked_accounts_list_request_category.py | 5 +- .../resources/passthrough/raw_client.py | 10 - .../ticketing/resources/projects/__init__.py | 6 +- .../resources/projects/raw_client.py | 26 - .../resources/projects/types/__init__.py | 6 +- ...projects_users_list_request_expand_item.py | 5 +- .../resources/regenerate_key/raw_client.py | 10 - .../ticketing/resources/roles/raw_client.py | 18 - .../ticketing/resources/scopes/raw_client.py | 26 - .../resources/sync_status/raw_client.py | 10 - .../ticketing/resources/tags/raw_client.py | 18 - .../ticketing/resources/teams/raw_client.py | 18 - .../ticketing/resources/tickets/__init__.py | 6 +- .../ticketing/resources/tickets/raw_client.py | 80 - .../resources/tickets/types/__init__.py | 6 +- .../types/tickets_list_request_expand_item.py | 5 +- .../types/tickets_list_request_priority.py | 5 +- .../tickets_list_request_remote_fields.py | 5 +- .../tickets_list_request_show_enum_origins.py | 5 +- .../types/tickets_list_request_status.py | 5 +- ...e_search_retrieve_request_remote_fields.py | 5 +- ...arch_retrieve_request_show_enum_origins.py | 5 +- .../tickets_retrieve_request_expand_item.py | 5 +- .../tickets_retrieve_request_remote_fields.py | 5 +- ...kets_retrieve_request_show_enum_origins.py | 5 +- ...ickets_viewers_list_request_expand_item.py | 5 +- .../ticketing/resources/users/__init__.py | 6 +- .../ticketing/resources/users/raw_client.py | 18 - .../resources/users/types/__init__.py | 6 +- .../types/users_list_request_expand_item.py | 5 +- .../users_retrieve_request_expand_item.py | 5 +- .../resources/webhook_receivers/raw_client.py | 18 - .../resources/ticketing/types/__init__.py | 12 +- .../resources/ticketing/types/account.py | 2 +- .../types/account_details_and_actions.py | 2 +- ...account_details_and_actions_status_enum.py | 5 +- .../ticketing/types/account_integration.py | 6 +- .../resources/ticketing/types/actions_enum.py | 5 +- .../ticketing/types/advanced_metadata.py | 2 +- .../resources/ticketing/types/attachment.py | 17 +- .../ticketing/types/attachment_request.py | 8 +- .../ticketing/types/categories_enum.py | 5 +- .../ticketing/types/category_enum.py | 5 +- .../resources/ticketing/types/collection.py | 6 +- .../types/collection_access_level_enum.py | 5 +- .../ticketing/types/collection_type_enum.py | 5 +- .../resources/ticketing/types/comment.py | 6 +- .../ticketing/types/comment_request.py | 8 +- .../ticketing/types/comment_response.py | 4 + .../resources/ticketing/types/contact.py | 2 +- .../ticketing/types/contact_request.py | 4 +- .../types/data_passthrough_request.py | 2 +- .../resources/ticketing/types/effect_enum.py | 5 +- .../ticketing/types/enabled_actions_enum.py | 5 +- .../ticketing/types/encoding_enum.py | 5 +- .../ticketing/types/event_type_enum.py | 5 +- .../external_target_field_api_response.py | 60 +- .../ticketing/types/field_format_enum.py | 5 +- ...field_mapping_api_instance_remote_field.py | 8 +- .../field_mapping_api_instance_response.py | 60 +- .../types/field_permission_deserializer.py | 4 +- .../field_permission_deserializer_request.py | 4 +- .../ticketing/types/field_type_enum.py | 5 +- src/merge/resources/ticketing/types/issue.py | 2 +- .../ticketing/types/issue_status_enum.py | 5 +- .../ticketing/types/item_format_enum.py | 5 +- .../ticketing/types/item_type_enum.py | 5 +- .../ticketing/types/language_enum.py | 5 +- .../ticketing/types/last_sync_result_enum.py | 5 +- .../ticketing/types/meta_response.py | 4 +- .../resources/ticketing/types/method_enum.py | 5 +- .../types/paginated_attachment_list.py | 19 +- .../types/paginated_collection_list.py | 7 +- .../ticketing/types/paginated_comment_list.py | 4 + .../ticketing/types/paginated_ticket_list.py | 19 +- .../ticketing/types/patched_ticket_request.py | 8 +- .../resources/ticketing/types/permission.py | 2 +- .../ticketing/types/permission_request.py | 4 +- .../ticketing/types/priority_enum.py | 5 +- .../resources/ticketing/types/project.py | 2 +- .../resources/ticketing/types/remote_data.py | 2 +- .../ticketing/types/remote_endpoint_info.py | 2 +- .../resources/ticketing/types/remote_field.py | 2 +- .../ticketing/types/remote_field_api.py | 8 +- .../types/remote_field_api_response.py | 50 +- .../remote_field_class_field_choices_item.py | 2 +- .../ticketing/types/remote_field_request.py | 2 +- .../ticketing/types/remote_response.py | 6 +- .../ticketing/types/request_format_enum.py | 5 +- .../ticketing/types/response_type_enum.py | 5 +- src/merge/resources/ticketing/types/role.py | 2 +- .../resources/ticketing/types/role_enum.py | 5 +- ...elective_sync_configurations_usage_enum.py | 5 +- .../ticketing/types/status_fd_5_enum.py | 5 +- .../resources/ticketing/types/sync_status.py | 7 + .../types/sync_status_reason_enum.py | 19 + .../types/sync_status_sync_status_reason.py | 7 + src/merge/resources/ticketing/types/tag.py | 2 +- src/merge/resources/ticketing/types/team.py | 2 +- src/merge/resources/ticketing/types/ticket.py | 18 +- .../ticketing/types/ticket_access_enum.py | 5 +- .../types/ticket_access_level_enum.py | 5 +- .../ticketing/types/ticket_actions_enum.py | 5 +- .../ticketing/types/ticket_request.py | 8 +- .../ticketing/types/ticket_response.py | 19 +- .../ticketing/types/ticket_status_enum.py | 5 +- .../types/ticketing_attachment_response.py | 19 +- src/merge/resources/ticketing/types/user.py | 2 +- .../custom/test_parsing_error_unreachable.py | 76 - .../test_pydantic_config_no_deprecation.py | 60 - tests/utils/test_http_client.py | 249 +- 1492 files changed, 10341 insertions(+), 19244 deletions(-) delete mode 100644 .fern/metadata.json delete mode 100644 src/merge/core/enum.py delete mode 100644 src/merge/core/http_sse/__init__.py delete mode 100644 src/merge/core/http_sse/_api.py delete mode 100644 src/merge/core/http_sse/_decoders.py delete mode 100644 src/merge/core/http_sse/_exceptions.py delete mode 100644 src/merge/core/http_sse/_models.py delete mode 100644 src/merge/core/logging.py delete mode 100644 src/merge/core/parse_error.py create mode 100644 src/merge/resources/accounting/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/accounting/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/ats/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/ats/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/calendar/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/calendar/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/chat/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/chat/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/crm/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/crm/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/email/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/email/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/filestorage/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/filestorage/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/hris/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/hris/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/knowledgebase/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/knowledgebase/types/sync_status_sync_status_reason.py create mode 100644 src/merge/resources/ticketing/types/sync_status_reason_enum.py create mode 100644 src/merge/resources/ticketing/types/sync_status_sync_status_reason.py delete mode 100644 tests/custom/test_parsing_error_unreachable.py delete mode 100644 tests/custom/test_pydantic_config_no_deprecation.py diff --git a/.fern/metadata.json b/.fern/metadata.json deleted file mode 100644 index 301cea97..00000000 --- a/.fern/metadata.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "cliVersion": "3.72.0", - "generatorName": "fernapi/fern-python-sdk", - "generatorVersion": "5.0.8", - "generatorConfig": { - "client_class_name": "Merge", - "inline_request_params": false, - "improved_imports": false, - "pydantic_config": { - "skip_validation": true, - "enum_type": "python_enums", - "use_pydantic_field_aliases": true - } - }, - "sdkVersion": "4.0.0" -} \ No newline at end of file diff --git a/README.md b/README.md index af7c77d3..bd13f7c0 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@ Instantiate and use the client with the following: from merge import Merge client = Merge( - api_key="", + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.account_token.regenerate_create() ``` @@ -77,7 +77,7 @@ client.hris. # APIs specific to the HRIS Category ## Async Client -The SDK also exports an `async` client so that you can make non-blocking calls to our API. Note that if you are constructing an Async httpx client class to pass into this client, use `httpx.AsyncClient()` instead of `httpx.Client()` (e.g. for the `httpx_client` parameter of this client). +The SDK also exports an `async` client so that you can make non-blocking calls to our API. ```python import asyncio @@ -85,7 +85,8 @@ import asyncio from merge import AsyncMerge client = AsyncMerge( - api_key="", + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) @@ -105,7 +106,7 @@ will be thrown. from merge.core.api_error import ApiError try: - client.ats.account_token.regenerate_create() + client.ats.account_token.regenerate_create(...) except ApiError as e: print(e.status_code) print(e.body) @@ -121,10 +122,11 @@ The `.with_raw_response` property returns a "raw" client that can be used to acc ```python from merge import Merge -client = Merge(...) -response = client.ats.account_token.with_raw_response.regenerate_create() +client = Merge( + ..., +) +response = client.ats.account_token.with_raw_response.regenerate_create(...) print(response.headers) # access the response headers -print(response.status_code) # access the response status code print(response.data) # access the underlying object ``` @@ -143,7 +145,7 @@ A request is deemed retryable when any of the following HTTP status codes is ret Use the `max_retries` request option to configure this behavior. ```python -client.ats.account_token.regenerate_create(request_options={ +client.ats.account_token.regenerate_create(..., request_options={ "max_retries": 1 }) ``` @@ -153,12 +155,17 @@ client.ats.account_token.regenerate_create(request_options={ The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level. ```python + from merge import Merge -client = Merge(..., timeout=20.0) +client = Merge( + ..., + timeout=20.0, +) + # Override timeout for a specific method -client.ats.account_token.regenerate_create(request_options={ +client.ats.account_token.regenerate_create(..., request_options={ "timeout_in_seconds": 1 }) ``` @@ -252,5 +259,6 @@ while response.next is not None: + diff --git a/poetry.lock b/poetry.lock index abdeb8ab..c3e97c72 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,45 +11,40 @@ files = [ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + [[package]] name = "anyio" -version = "4.14.2" -description = "High-level concurrency and networking framework on top of asyncio or Trio" +version = "4.5.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false -python-versions = ">=3.10" +python-versions = ">=3.8" files = [ - {file = "anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494"}, - {file = "anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f"}, + {file = "anyio-4.5.2-py3-none-any.whl", hash = "sha256:c011ee36bc1e8ba40e5a81cb9df91925c218fe9b778554e0b56a21e1b5d4716f"}, + {file = "anyio-4.5.2.tar.gz", hash = "sha256:23009af4ed04ce05991845451e11ef02fc7c5ed29179ac9a420e5ad0ac7ddc5b"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" -typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] -trio = ["trio (>=0.32.0)"] - -[[package]] -name = "backports-asyncio-runner" -version = "1.2.0" -description = "Backport of asyncio.Runner, a context manager that controls event loop life cycle." -optional = false -python-versions = "<3.11,>=3.8" -files = [ - {file = "backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5"}, - {file = "backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162"}, -] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] +trio = ["trio (>=0.26.1)"] [[package]] name = "certifi" -version = "2026.6.17" +version = "2026.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" files = [ - {file = "certifi-2026.6.17-py3-none-any.whl", hash = "sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db"}, - {file = "certifi-2026.6.17.tar.gz", hash = "sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432"}, + {file = "certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775"}, + {file = "certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55"}, ] [[package]] @@ -80,20 +75,6 @@ typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} [package.extras] test = ["pytest (>=6)"] -[[package]] -name = "execnet" -version = "2.1.2" -description = "execnet: rapid multi-Python deployment" -optional = false -python-versions = ">=3.8" -files = [ - {file = "execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec"}, - {file = "execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd"}, -] - -[package.extras] -testing = ["hatch", "pre-commit", "pytest", "tox"] - [[package]] name = "h11" version = "0.16.0" @@ -152,13 +133,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" -version = "3.18" +version = "3.15" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"}, - {file = "idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"}, + {file = "idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8"}, + {file = "idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc"}, ] [package.extras] @@ -166,13 +147,13 @@ all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "iniconfig" -version = "2.3.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.10" +python-versions = ">=3.8" files = [ - {file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"}, - {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] @@ -252,35 +233,34 @@ files = [ [[package]] name = "pluggy" -version = "1.6.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, - {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] dev = ["pre-commit", "tox"] -testing = ["coverage", "pytest", "pytest-benchmark"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pydantic" -version = "2.13.4" +version = "2.10.6" description = "Data validation using Python type hints" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba"}, - {file = "pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6"}, + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.46.4" -typing-extensions = ">=4.14.1" -typing-inspection = ">=0.4.2" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] @@ -288,213 +268,156 @@ timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.46.4" +version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4"}, - {file = "pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39"}, - {file = "pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d"}, - {file = "pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf"}, - {file = "pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594"}, - {file = "pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d"}, - {file = "pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2"}, - {file = "pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a"}, - {file = "pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008"}, - {file = "pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d"}, - {file = "pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb"}, - {file = "pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596"}, - {file = "pydantic_core-2.46.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae"}, - {file = "pydantic_core-2.46.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9"}, - {file = "pydantic_core-2.46.4-cp39-cp39-win32.whl", hash = "sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1"}, - {file = "pydantic_core-2.46.4-cp39-cp39-win_amd64.whl", hash = "sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983"}, - {file = "pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [package.dependencies] -typing-extensions = ">=4.14.1" - -[[package]] -name = "pygments" -version = "2.20.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.9" -files = [ - {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, - {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pytest" -version = "8.4.2" +version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.7" files = [ - {file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"}, - {file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"}, + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] -colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} -iniconfig = ">=1" -packaging = ">=20" -pluggy = ">=1.5,<2" -pygments = ">=2.7.2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-asyncio" -version = "1.4.0" +version = "0.23.8" description = "Pytest support for asyncio" optional = false -python-versions = ">=3.10" +python-versions = ">=3.8" files = [ - {file = "pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1"}, - {file = "pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42"}, + {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"}, + {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"}, ] [package.dependencies] -backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""} -pytest = ">=8.4,<10" -typing-extensions = {version = ">=4.12", markers = "python_version < \"3.13\""} +pytest = ">=7.0.0,<9" [package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)", "sphinx-tabs (>=3.5)"] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] -[[package]] -name = "pytest-xdist" -version = "3.8.0" -description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88"}, - {file = "pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1"}, -] - -[package.dependencies] -execnet = ">=2.1" -pytest = ">=7.0.0" - -[package.extras] -psutil = ["psutil (>=3.0)"] -setproctitle = ["setproctitle"] -testing = ["filelock"] - [[package]] name = "python-dateutil" version = "2.9.0.post0" @@ -547,6 +470,17 @@ files = [ {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + [[package]] name = "tomli" version = "2.4.1" @@ -605,41 +539,27 @@ files = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20260518" +version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" optional = false -python-versions = ">=3.10" +python-versions = ">=3.8" files = [ - {file = "types_python_dateutil-2.9.0.20260518-py3-none-any.whl", hash = "sha256:d6a9c5bd0de61460c8fdef8ab2b400f956a1a1075cce08d4e2b4434e478c50b8"}, - {file = "types_python_dateutil-2.9.0.20260518.tar.gz", hash = "sha256:51f02dc03b61c7f6a07df45797d4dfe8a1aa47f0b7db9ad89f6fd3a1a70e1b51"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] name = "typing-extensions" -version = "4.16.0" -description = "Backported and Experimental Type Hints for Python 3.9+" +version = "4.13.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.9" -files = [ - {file = "typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8"}, - {file = "typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5"}, -] - -[[package]] -name = "typing-inspection" -version = "0.4.2" -description = "Runtime typing introspection tools" -optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7"}, - {file = "typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"}, + {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, + {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, ] -[package.dependencies] -typing-extensions = ">=4.12.0" - [metadata] lock-version = "2.0" -python-versions = "^3.10" -content-hash = "f0094f12d1388a07b9db738decb335885646d4c09345fddc263a0e5162d84d25" +python-versions = "^3.8" +content-hash = "8551b871abee465e23fb0966d51f2c155fd257b55bdcb0c02d095de19f92f358" diff --git a/pyproject.toml b/pyproject.toml index 968ecbff..7dd95f41 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,9 @@ [project] name = "MergePythonClient" -dynamic = ["version"] [tool.poetry] name = "MergePythonClient" -version = "4.0.0" +version = "3.1.1" description = "" readme = "README.md" authors = [] @@ -14,12 +13,11 @@ classifiers = [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: 3.14", - "Programming Language :: Python :: 3.15", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: MacOS", @@ -32,11 +30,11 @@ packages = [ { include = "merge", from = "src"} ] -[tool.poetry.urls] +[project.urls] Repository = 'https://github.com/merge-api/merge-python-client' [tool.poetry.dependencies] -python = "^3.10" +python = "^3.8" httpx = ">=0.21.2" pydantic = ">= 1.9.2" pydantic-core = ">=2.18.2" @@ -44,9 +42,8 @@ typing_extensions = ">= 4.0.0" [tool.poetry.group.dev.dependencies] mypy = "==1.13.0" -pytest = "^8.2.0" -pytest-asyncio = "^1.0.0" -pytest-xdist = "^3.6.1" +pytest = "^7.4.0" +pytest-asyncio = "^0.23.5" python-dateutil = "^2.9.0" types-python-dateutil = "^2.9.0.20240316" ruff = "==0.11.5" diff --git a/reference.md b/reference.md index 3f7127b0..d2dec8ac 100644 --- a/reference.md +++ b/reference.md @@ -1,6 +1,6 @@ # Reference ## Ats AccountDetails -
client.ats.account_details.retrieve() -> AccountDetails +
client.ats.account_details.retrieve()
@@ -28,13 +28,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.account_details.retrieve() ``` @@ -64,7 +62,7 @@ client.ats.account_details.retrieve()
## Ats AccountToken -
client.ats.account_token.retrieve(...) -> AccountToken +
client.ats.account_token.retrieve(...)
@@ -92,13 +90,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.account_token.retrieve( public_token="public_token", ) @@ -137,7 +133,7 @@ client.ats.account_token.retrieve(
-
client.ats.account_token.regenerate_create() -> RegenerateAccountToken +
client.ats.account_token.regenerate_create()
@@ -165,13 +161,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.account_token.regenerate_create() ``` @@ -201,7 +195,7 @@ client.ats.account_token.regenerate_create()
## Ats Activities -
client.ats.activities.list(...) -> PaginatedActivityList +
client.ats.activities.list(...)
@@ -228,28 +222,39 @@ Returns a list of `Activity` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.ats.resources.activities import ( + ActivitiesListRequestRemoteFields, + ActivitiesListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.ats.activities.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="activity_type", + remote_fields=ActivitiesListRequestRemoteFields.ACTIVITY_TYPE, remote_id="remote_id", - show_enum_origins="activity_type", + show_enum_origins=ActivitiesListRequestShowEnumOrigins.ACTIVITY_TYPE, user_id="user_id", ) @@ -267,7 +272,7 @@ client.ats.activities.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -275,7 +280,7 @@ client.ats.activities.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -291,7 +296,11 @@ client.ats.activities.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["user"], typing.Sequence[typing.Literal["user"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -323,7 +332,7 @@ client.ats.activities.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -331,7 +340,7 @@ client.ats.activities.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -391,7 +400,7 @@ client.ats.activities.list(
-
client.ats.activities.create(...) -> ActivityResponse +
client.ats.activities.create(...)
@@ -419,14 +428,12 @@ Creates an `Activity` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import ActivityRequest +from merge.resources.ats import ActivityRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.activities.create( is_debug_mode=True, run_async=True, @@ -492,7 +499,7 @@ client.ats.activities.create(
-
client.ats.activities.retrieve(...) -> Activity +
client.ats.activities.retrieve(...)
@@ -520,19 +527,21 @@ Returns an `Activity` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ats.resources.activities import ( + ActivitiesRetrieveRequestRemoteFields, + ActivitiesRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.activities.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="activity_type", - show_enum_origins="activity_type", + remote_fields=ActivitiesRetrieveRequestRemoteFields.ACTIVITY_TYPE, + show_enum_origins=ActivitiesRetrieveRequestShowEnumOrigins.ACTIVITY_TYPE, ) ``` @@ -557,7 +566,11 @@ client.ats.activities.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["user"], typing.Sequence[typing.Literal["user"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -609,7 +622,7 @@ client.ats.activities.retrieve(
-
client.ats.activities.meta_post_retrieve() -> MetaResponse +
client.ats.activities.meta_post_retrieve()
@@ -637,13 +650,11 @@ Returns metadata for `Activity` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.activities.meta_post_retrieve() ``` @@ -673,7 +684,7 @@ client.ats.activities.meta_post_retrieve()
## Ats Applications -
client.ats.applications.list(...) -> PaginatedApplicationList +
client.ats.applications.list(...)
@@ -700,19 +711,22 @@ Returns a list of `Application` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.applications.list( candidate_id="candidate_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), credited_to_id="credited_to_id", current_stage_id="current_stage_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -720,8 +734,12 @@ client.ats.applications.list( include_remote_data=True, include_shell_data=True, job_id="job_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, reject_reason_id="reject_reason_id", remote_id="remote_id", @@ -750,7 +768,7 @@ client.ats.applications.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -758,7 +776,7 @@ client.ats.applications.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -790,7 +808,12 @@ client.ats.applications.list(
-**expand:** `typing.Optional[typing.Union[ApplicationsListRequestExpandItem, typing.Sequence[ApplicationsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ApplicationsListRequestExpandItem, + typing.Sequence[ApplicationsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -830,7 +853,7 @@ client.ats.applications.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -838,7 +861,7 @@ client.ats.applications.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -890,7 +913,7 @@ client.ats.applications.list(
-
client.ats.applications.create(...) -> ApplicationResponse +
client.ats.applications.create(...)
@@ -921,14 +944,12 @@ See our [Help Center article](https://help.merge.dev/en/articles/10012366-update ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import ApplicationRequest +from merge.resources.ats import ApplicationRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.applications.create( is_debug_mode=True, run_async=True, @@ -994,7 +1015,7 @@ client.ats.applications.create(
-
client.ats.applications.retrieve(...) -> Application +
client.ats.applications.retrieve(...)
@@ -1022,13 +1043,11 @@ Returns an `Application` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.applications.retrieve( id="id", include_remote_data=True, @@ -1057,7 +1076,12 @@ client.ats.applications.retrieve(
-**expand:** `typing.Optional[typing.Union[ApplicationsRetrieveRequestExpandItem, typing.Sequence[ApplicationsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ApplicationsRetrieveRequestExpandItem, + typing.Sequence[ApplicationsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -1093,7 +1117,7 @@ client.ats.applications.retrieve(
-
client.ats.applications.change_stage_create(...) -> ApplicationResponse +
client.ats.applications.change_stage_create(...)
@@ -1121,13 +1145,11 @@ Updates the `current_stage` field of an `Application` object ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.applications.change_stage_create( id="id", is_debug_mode=True, @@ -1200,7 +1222,7 @@ client.ats.applications.change_stage_create(
-
client.ats.applications.meta_post_retrieve(...) -> MetaResponse +
client.ats.applications.meta_post_retrieve(...)
@@ -1228,13 +1250,11 @@ Returns metadata for `Application` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.applications.meta_post_retrieve( application_remote_template_id="application_remote_template_id", ) @@ -1274,7 +1294,7 @@ client.ats.applications.meta_post_retrieve(
## Ats AsyncPassthrough -
client.ats.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.ats.async_passthrough.create(...)
@@ -1302,17 +1322,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import DataPassthroughRequest +from merge.resources.ats import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -1351,7 +1369,7 @@ client.ats.async_passthrough.create(
-
client.ats.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.ats.async_passthrough.retrieve(...)
@@ -1379,13 +1397,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -1425,7 +1441,7 @@ client.ats.async_passthrough.retrieve(
## Ats Attachments -
client.ats.attachments.list(...) -> PaginatedAttachmentList +
client.ats.attachments.list(...)
@@ -1452,29 +1468,34 @@ Returns a list of `Attachment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.attachments.list( candidate_id="candidate_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="attachment_type", remote_id="remote_id", - show_enum_origins="attachment_type", ) ``` @@ -1499,7 +1520,7 @@ client.ats.attachments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -1507,7 +1528,7 @@ client.ats.attachments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -1523,7 +1544,12 @@ client.ats.attachments.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["candidate"], + typing.Sequence[typing.Literal["candidate"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -1555,7 +1581,7 @@ client.ats.attachments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -1563,7 +1589,7 @@ client.ats.attachments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -1579,7 +1605,7 @@ client.ats.attachments.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["attachment_type"]]` — Deprecated. Use show_enum_origins.
@@ -1595,7 +1621,7 @@ client.ats.attachments.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["attachment_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -1615,7 +1641,7 @@ client.ats.attachments.list(
-
client.ats.attachments.create(...) -> AttachmentResponse +
client.ats.attachments.create(...)
@@ -1643,14 +1669,12 @@ Creates an `Attachment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import AttachmentRequest +from merge.resources.ats import AttachmentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.attachments.create( is_debug_mode=True, run_async=True, @@ -1716,7 +1740,7 @@ client.ats.attachments.create(
-
client.ats.attachments.retrieve(...) -> Attachment +
client.ats.attachments.retrieve(...)
@@ -1744,19 +1768,15 @@ Returns an `Attachment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.attachments.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="attachment_type", - show_enum_origins="attachment_type", ) ``` @@ -1781,7 +1801,12 @@ client.ats.attachments.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["candidate"], + typing.Sequence[typing.Literal["candidate"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -1805,7 +1830,7 @@ client.ats.attachments.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["attachment_type"]]` — Deprecated. Use show_enum_origins.
@@ -1813,7 +1838,7 @@ client.ats.attachments.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["attachment_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -1833,7 +1858,7 @@ client.ats.attachments.retrieve(
-
client.ats.attachments.meta_post_retrieve() -> MetaResponse +
client.ats.attachments.meta_post_retrieve()
@@ -1861,13 +1886,11 @@ Returns metadata for `Attachment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.attachments.meta_post_retrieve() ``` @@ -1897,7 +1920,7 @@ client.ats.attachments.meta_post_retrieve()
## Ats AuditTrail -
client.ats.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.ats.audit_trail.list(...)
@@ -1925,13 +1948,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -2016,7 +2037,7 @@ client.ats.audit_trail.list(
## Ats AvailableActions -
client.ats.available_actions.retrieve() -> AvailableActions +
client.ats.available_actions.retrieve()
@@ -2044,13 +2065,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.available_actions.retrieve() ``` @@ -2080,7 +2099,7 @@ client.ats.available_actions.retrieve()
## Ats Candidates -
client.ats.candidates.list(...) -> PaginatedCandidateList +
client.ats.candidates.list(...)
@@ -2107,18 +2126,21 @@ Returns a list of `Candidate` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_addresses="email_addresses", first_name="first_name", @@ -2126,8 +2148,12 @@ client.ats.candidates.list( include_remote_data=True, include_shell_data=True, last_name="last_name", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", tags="tags", @@ -2147,7 +2173,7 @@ client.ats.candidates.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -2155,7 +2181,7 @@ client.ats.candidates.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -2179,7 +2205,12 @@ client.ats.candidates.list(
-**expand:** `typing.Optional[typing.Union[CandidatesListRequestExpandItem, typing.Sequence[CandidatesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CandidatesListRequestExpandItem, + typing.Sequence[CandidatesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -2227,7 +2258,7 @@ client.ats.candidates.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -2235,7 +2266,7 @@ client.ats.candidates.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -2279,7 +2310,7 @@ client.ats.candidates.list(
-
client.ats.candidates.create(...) -> CandidateResponse +
client.ats.candidates.create(...)
@@ -2307,14 +2338,12 @@ Creates a `Candidate` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import CandidateRequest +from merge.resources.ats import CandidateRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.create( is_debug_mode=True, run_async=True, @@ -2380,7 +2409,7 @@ client.ats.candidates.create(
-
client.ats.candidates.retrieve(...) -> Candidate +
client.ats.candidates.retrieve(...)
@@ -2408,13 +2437,11 @@ Returns a `Candidate` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.retrieve( id="id", include_remote_data=True, @@ -2443,7 +2470,12 @@ client.ats.candidates.retrieve(
-**expand:** `typing.Optional[typing.Union[CandidatesRetrieveRequestExpandItem, typing.Sequence[CandidatesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CandidatesRetrieveRequestExpandItem, + typing.Sequence[CandidatesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -2479,7 +2511,7 @@ client.ats.candidates.retrieve(
-
client.ats.candidates.partial_update(...) -> CandidateResponse +
client.ats.candidates.partial_update(...)
@@ -2507,14 +2539,12 @@ Updates a `Candidate` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import PatchedCandidateRequest +from merge.resources.ats import PatchedCandidateRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.partial_update( id="id", is_debug_mode=True, @@ -2589,7 +2619,7 @@ client.ats.candidates.partial_update(
-
client.ats.candidates.ignore_create(...) +
client.ats.candidates.ignore_create(...)
@@ -2617,18 +2647,16 @@ Ignores a specific row based on the `model_id` in the url. These records will ha ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import IgnoreCommonModelRequest +from merge.resources.ats import IgnoreCommonModelRequest, ReasonEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.ignore_create( model_id="model_id", request=IgnoreCommonModelRequest( - reason="GENERAL_CUSTOMER_REQUEST", + reason=ReasonEnum.GENERAL_CUSTOMER_REQUEST, ), ) @@ -2674,7 +2702,7 @@ client.ats.candidates.ignore_create(
-
client.ats.candidates.meta_patch_retrieve(...) -> MetaResponse +
client.ats.candidates.meta_patch_retrieve(...)
@@ -2702,13 +2730,11 @@ Returns metadata for `Candidate` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.meta_patch_retrieve( id="id", ) @@ -2747,7 +2773,7 @@ client.ats.candidates.meta_patch_retrieve(
-
client.ats.candidates.meta_post_retrieve() -> MetaResponse +
client.ats.candidates.meta_post_retrieve()
@@ -2775,13 +2801,11 @@ Returns metadata for `Candidate` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.candidates.meta_post_retrieve() ``` @@ -2811,7 +2835,7 @@ client.ats.candidates.meta_post_retrieve()
## Ats Scopes -
client.ats.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.ats.scopes.default_scopes_retrieve()
@@ -2839,13 +2863,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.scopes.default_scopes_retrieve() ``` @@ -2874,7 +2896,7 @@ client.ats.scopes.default_scopes_retrieve()
-
client.ats.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.ats.scopes.linked_account_scopes_retrieve()
@@ -2902,13 +2924,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.scopes.linked_account_scopes_retrieve() ``` @@ -2937,7 +2957,7 @@ client.ats.scopes.linked_account_scopes_retrieve()
-
client.ats.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.ats.scopes.linked_account_scopes_create(...)
@@ -2965,14 +2985,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.ats import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -2983,16 +3005,11 @@ client.ats.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -3002,7 +3019,7 @@ client.ats.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -3020,7 +3037,7 @@ client.ats.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -3041,7 +3058,7 @@ client.ats.scopes.linked_account_scopes_create(
## Ats DeleteAccount -
client.ats.delete_account.delete() +
client.ats.delete_account.delete()
@@ -3069,13 +3086,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.delete_account.delete() ``` @@ -3105,7 +3120,7 @@ client.ats.delete_account.delete()
## Ats Departments -
client.ats.departments.list(...) -> PaginatedDepartmentList +
client.ats.departments.list(...)
@@ -3132,24 +3147,31 @@ Returns a list of `Department` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.departments.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -3168,7 +3190,7 @@ client.ats.departments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -3176,7 +3198,7 @@ client.ats.departments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -3216,7 +3238,7 @@ client.ats.departments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -3224,7 +3246,7 @@ client.ats.departments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -3260,7 +3282,7 @@ client.ats.departments.list(
-
client.ats.departments.retrieve(...) -> Department +
client.ats.departments.retrieve(...)
@@ -3288,13 +3310,11 @@ Returns a `Department` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.departments.retrieve( id="id", include_remote_data=True, @@ -3352,7 +3372,7 @@ client.ats.departments.retrieve(
## Ats Eeocs -
client.ats.eeocs.list(...) -> PaginatedEeocList +
client.ats.eeocs.list(...)
@@ -3379,29 +3399,40 @@ Returns a list of `EEOC` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.ats.resources.eeocs import ( + EeocsListRequestRemoteFields, + EeocsListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.ats.eeocs.list( candidate_id="candidate_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="disability_status", + remote_fields=EeocsListRequestRemoteFields.DISABILITY_STATUS, remote_id="remote_id", - show_enum_origins="disability_status", + show_enum_origins=EeocsListRequestShowEnumOrigins.DISABILITY_STATUS, ) ``` @@ -3426,7 +3457,7 @@ client.ats.eeocs.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -3434,7 +3465,7 @@ client.ats.eeocs.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -3450,7 +3481,12 @@ client.ats.eeocs.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["candidate"], + typing.Sequence[typing.Literal["candidate"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -3482,7 +3518,7 @@ client.ats.eeocs.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -3490,7 +3526,7 @@ client.ats.eeocs.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -3542,7 +3578,7 @@ client.ats.eeocs.list(
-
client.ats.eeocs.retrieve(...) -> Eeoc +
client.ats.eeocs.retrieve(...)
@@ -3570,19 +3606,21 @@ Returns an `EEOC` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ats.resources.eeocs import ( + EeocsRetrieveRequestRemoteFields, + EeocsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.eeocs.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="disability_status", - show_enum_origins="disability_status", + remote_fields=EeocsRetrieveRequestRemoteFields.DISABILITY_STATUS, + show_enum_origins=EeocsRetrieveRequestShowEnumOrigins.DISABILITY_STATUS, ) ``` @@ -3607,7 +3645,12 @@ client.ats.eeocs.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["candidate"], + typing.Sequence[typing.Literal["candidate"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -3660,7 +3703,7 @@ client.ats.eeocs.retrieve(
## Ats FieldMapping -
client.ats.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.ats.field_mapping.field_mappings_retrieve(...)
@@ -3688,13 +3731,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -3733,7 +3774,7 @@ client.ats.field_mapping.field_mappings_retrieve(
-
client.ats.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.ats.field_mapping.field_mappings_create(...)
@@ -3761,20 +3802,16 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -3810,7 +3847,7 @@ client.ats.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -3870,7 +3907,7 @@ client.ats.field_mapping.field_mappings_create(
-
client.ats.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.ats.field_mapping.field_mappings_destroy(...)
@@ -3898,13 +3935,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -3943,7 +3978,7 @@ client.ats.field_mapping.field_mappings_destroy(
-
client.ats.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.ats.field_mapping.field_mappings_partial_update(...)
@@ -3971,13 +4006,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -4013,7 +4046,7 @@ client.ats.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -4057,7 +4090,7 @@ client.ats.field_mapping.field_mappings_partial_update(
-
client.ats.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.ats.field_mapping.remote_fields_retrieve(...)
@@ -4085,13 +4118,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -4139,7 +4170,7 @@ client.ats.field_mapping.remote_fields_retrieve(
-
client.ats.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.ats.field_mapping.target_fields_retrieve()
@@ -4167,13 +4198,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.field_mapping.target_fields_retrieve() ``` @@ -4203,7 +4232,7 @@ client.ats.field_mapping.target_fields_retrieve()
## Ats GenerateKey -
client.ats.generate_key.create(...) -> RemoteKey +
client.ats.generate_key.create(...)
@@ -4231,13 +4260,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.generate_key.create( name="Remote Deployment Key 1", ) @@ -4277,7 +4304,7 @@ client.ats.generate_key.create(
## Ats Interviews -
client.ats.interviews.list(...) -> PaginatedScheduledInterviewList +
client.ats.interviews.list(...)
@@ -4304,32 +4331,37 @@ Returns a list of `ScheduledInterview` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.interviews.list( application_id="application_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, job_id="job_id", job_interview_stage_id="job_interview_stage_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), organizer_id="organizer_id", page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", ) ``` @@ -4354,7 +4386,7 @@ client.ats.interviews.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -4362,7 +4394,7 @@ client.ats.interviews.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -4378,7 +4410,12 @@ client.ats.interviews.list(
-**expand:** `typing.Optional[typing.Union[InterviewsListRequestExpandItem, typing.Sequence[InterviewsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + InterviewsListRequestExpandItem, + typing.Sequence[InterviewsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -4426,7 +4463,7 @@ client.ats.interviews.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -4434,7 +4471,7 @@ client.ats.interviews.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -4458,7 +4495,7 @@ client.ats.interviews.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -4474,7 +4511,7 @@ client.ats.interviews.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -4494,7 +4531,7 @@ client.ats.interviews.list(
-
client.ats.interviews.create(...) -> ScheduledInterviewResponse +
client.ats.interviews.create(...)
@@ -4522,14 +4559,12 @@ Creates a `ScheduledInterview` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import ScheduledInterviewRequest +from merge.resources.ats import ScheduledInterviewRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.interviews.create( is_debug_mode=True, run_async=True, @@ -4595,7 +4630,7 @@ client.ats.interviews.create(
-
client.ats.interviews.retrieve(...) -> ScheduledInterview +
client.ats.interviews.retrieve(...)
@@ -4623,19 +4658,15 @@ Returns a `ScheduledInterview` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.interviews.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -4660,7 +4691,12 @@ client.ats.interviews.retrieve(
-**expand:** `typing.Optional[typing.Union[InterviewsRetrieveRequestExpandItem, typing.Sequence[InterviewsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + InterviewsRetrieveRequestExpandItem, + typing.Sequence[InterviewsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -4684,7 +4720,7 @@ client.ats.interviews.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -4692,7 +4728,7 @@ client.ats.interviews.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -4712,7 +4748,7 @@ client.ats.interviews.retrieve(
-
client.ats.interviews.meta_post_retrieve() -> MetaResponse +
client.ats.interviews.meta_post_retrieve()
@@ -4740,13 +4776,11 @@ Returns metadata for `ScheduledInterview` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.interviews.meta_post_retrieve() ``` @@ -4776,7 +4810,7 @@ client.ats.interviews.meta_post_retrieve()
## Ats Issues -
client.ats.issues.list(...) -> PaginatedIssueList +
client.ats.issues.list(...)
@@ -4803,30 +4837,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.ats.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -4875,7 +4917,7 @@ client.ats.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -4883,7 +4925,7 @@ client.ats.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -4907,7 +4949,7 @@ client.ats.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -4915,7 +4957,7 @@ client.ats.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -4972,7 +5014,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.ats.issues.retrieve(...) -> Issue +
client.ats.issues.retrieve(...)
@@ -5000,13 +5042,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.issues.retrieve( id="id", ) @@ -5046,7 +5086,7 @@ client.ats.issues.retrieve(
## Ats JobInterviewStages -
client.ats.job_interview_stages.list(...) -> PaginatedJobInterviewStageList +
client.ats.job_interview_stages.list(...)
@@ -5073,25 +5113,32 @@ Returns a list of `JobInterviewStage` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.job_interview_stages.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, job_id="job_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -5110,7 +5157,7 @@ client.ats.job_interview_stages.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -5118,7 +5165,7 @@ client.ats.job_interview_stages.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -5134,7 +5181,9 @@ client.ats.job_interview_stages.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[typing.Literal["job"], typing.Sequence[typing.Literal["job"]]] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5174,7 +5223,7 @@ client.ats.job_interview_stages.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -5182,7 +5231,7 @@ client.ats.job_interview_stages.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -5218,7 +5267,7 @@ client.ats.job_interview_stages.list(
-
client.ats.job_interview_stages.retrieve(...) -> JobInterviewStage +
client.ats.job_interview_stages.retrieve(...)
@@ -5246,13 +5295,11 @@ Returns a `JobInterviewStage` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.job_interview_stages.retrieve( id="id", include_remote_data=True, @@ -5281,7 +5328,9 @@ client.ats.job_interview_stages.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[typing.Literal["job"], typing.Sequence[typing.Literal["job"]]] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5318,7 +5367,7 @@ client.ats.job_interview_stages.retrieve(
## Ats JobPostings -
client.ats.job_postings.list(...) -> PaginatedJobPostingList +
client.ats.job_postings.list(...)
@@ -5345,27 +5394,37 @@ Returns a list of `JobPosting` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.ats.resources.job_postings import ( + JobPostingsListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.ats.job_postings.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - status="CLOSED", + status=JobPostingsListRequestStatus.CLOSED, ) ``` @@ -5382,7 +5441,7 @@ client.ats.job_postings.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -5390,7 +5449,7 @@ client.ats.job_postings.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -5406,7 +5465,9 @@ client.ats.job_postings.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[typing.Literal["job"], typing.Sequence[typing.Literal["job"]]] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5438,7 +5499,7 @@ client.ats.job_postings.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -5446,7 +5507,7 @@ client.ats.job_postings.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -5498,7 +5559,7 @@ If provided, will only return Job Postings with this status. Options: ('PUBLISHE
-
client.ats.job_postings.retrieve(...) -> JobPosting +
client.ats.job_postings.retrieve(...)
@@ -5526,13 +5587,11 @@ Returns a `JobPosting` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.job_postings.retrieve( id="id", include_remote_data=True, @@ -5561,7 +5620,9 @@ client.ats.job_postings.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[typing.Literal["job"], typing.Sequence[typing.Literal["job"]]] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5598,7 +5659,7 @@ client.ats.job_postings.retrieve(
## Ats Jobs -
client.ats.jobs.list(...) -> PaginatedJobList +
client.ats.jobs.list(...)
@@ -5625,31 +5686,37 @@ Returns a list of `Job` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.ats.resources.jobs import JobsListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.jobs.list( code="code", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), offices="offices", page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", - status="ARCHIVED", + status=JobsListRequestStatus.ARCHIVED, ) ``` @@ -5674,7 +5741,7 @@ client.ats.jobs.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -5682,7 +5749,7 @@ client.ats.jobs.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -5698,7 +5765,11 @@ client.ats.jobs.list(
-**expand:** `typing.Optional[typing.Union[JobsListRequestExpandItem, typing.Sequence[JobsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + JobsListRequestExpandItem, typing.Sequence[JobsListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5730,7 +5801,7 @@ client.ats.jobs.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -5738,7 +5809,7 @@ client.ats.jobs.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -5762,7 +5833,7 @@ client.ats.jobs.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -5778,7 +5849,7 @@ client.ats.jobs.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -5814,7 +5885,7 @@ If provided, will only return jobs with this status. Options: ('OPEN', 'CLOSED',
-
client.ats.jobs.retrieve(...) -> Job +
client.ats.jobs.retrieve(...)
@@ -5842,19 +5913,15 @@ Returns a `Job` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.jobs.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -5879,7 +5946,12 @@ client.ats.jobs.retrieve(
-**expand:** `typing.Optional[typing.Union[JobsRetrieveRequestExpandItem, typing.Sequence[JobsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + JobsRetrieveRequestExpandItem, + typing.Sequence[JobsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -5903,7 +5975,7 @@ client.ats.jobs.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -5911,7 +5983,7 @@ client.ats.jobs.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -5931,7 +6003,7 @@ client.ats.jobs.retrieve(
-
client.ats.jobs.screening_questions_list(...) -> PaginatedScreeningQuestionList +
client.ats.jobs.screening_questions_list(...)
@@ -5959,13 +6031,11 @@ Returns a list of `ScreeningQuestion` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.jobs.screening_questions_list( job_id="job_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -6005,7 +6075,12 @@ client.ats.jobs.screening_questions_list(
-**expand:** `typing.Optional[typing.Union[JobsScreeningQuestionsListRequestExpandItem, typing.Sequence[JobsScreeningQuestionsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + JobsScreeningQuestionsListRequestExpandItem, + typing.Sequence[JobsScreeningQuestionsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -6058,7 +6133,7 @@ client.ats.jobs.screening_questions_list(
## Ats LinkToken -
client.ats.link_token.create(...) -> LinkToken +
client.ats.link_token.create(...)
@@ -6086,21 +6161,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ats import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -6141,7 +6212,7 @@ client.ats.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -6181,7 +6252,7 @@ client.ats.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -6189,7 +6260,14 @@ client.ats.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -6218,7 +6296,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -6239,7 +6317,7 @@ The following subset of IETF language tags can be used to configure localization
## Ats LinkedAccounts -
client.ats.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.ats.linked_accounts.list(...)
@@ -6267,15 +6345,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ats.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -6431,7 +6510,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing`
## Ats Offers -
client.ats.offers.list(...) -> PaginatedOfferList +
client.ats.offers.list(...)
@@ -6458,31 +6537,37 @@ Returns a list of `Offer` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.ats.resources.offers import OffersListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.offers.list( application_id="application_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), creator_id="creator_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", - status="APPROVAL-SENT", + status=OffersListRequestStatus.APPROVAL_SENT, ) ``` @@ -6507,7 +6592,7 @@ client.ats.offers.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -6515,7 +6600,7 @@ client.ats.offers.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -6539,7 +6624,12 @@ client.ats.offers.list(
-**expand:** `typing.Optional[typing.Union[OffersListRequestExpandItem, typing.Sequence[OffersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + OffersListRequestExpandItem, + typing.Sequence[OffersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -6571,7 +6661,7 @@ client.ats.offers.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -6579,7 +6669,7 @@ client.ats.offers.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -6595,7 +6685,7 @@ client.ats.offers.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -6611,7 +6701,7 @@ client.ats.offers.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -6651,7 +6741,7 @@ If provided, will only return offers with this status. Options: ('DRAFT', 'APPRO
-
client.ats.offers.retrieve(...) -> Offer +
client.ats.offers.retrieve(...)
@@ -6679,19 +6769,15 @@ Returns an `Offer` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.offers.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -6716,7 +6802,12 @@ client.ats.offers.retrieve(
-**expand:** `typing.Optional[typing.Union[OffersRetrieveRequestExpandItem, typing.Sequence[OffersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + OffersRetrieveRequestExpandItem, + typing.Sequence[OffersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -6740,7 +6831,7 @@ client.ats.offers.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -6748,7 +6839,7 @@ client.ats.offers.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -6769,7 +6860,7 @@ client.ats.offers.retrieve(
## Ats Offices -
client.ats.offices.list(...) -> PaginatedOfficeList +
client.ats.offices.list(...)
@@ -6796,24 +6887,31 @@ Returns a list of `Office` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.offices.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -6832,7 +6930,7 @@ client.ats.offices.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -6840,7 +6938,7 @@ client.ats.offices.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -6880,7 +6978,7 @@ client.ats.offices.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -6888,7 +6986,7 @@ client.ats.offices.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -6924,7 +7022,7 @@ client.ats.offices.list(
-
client.ats.offices.retrieve(...) -> Office +
client.ats.offices.retrieve(...)
@@ -6952,13 +7050,11 @@ Returns an `Office` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.offices.retrieve( id="id", include_remote_data=True, @@ -7016,7 +7112,7 @@ client.ats.offices.retrieve(
## Ats Passthrough -
client.ats.passthrough.create(...) -> RemoteResponse +
client.ats.passthrough.create(...)
@@ -7044,17 +7140,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ats import DataPassthroughRequest +from merge.resources.ats import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -7094,7 +7188,7 @@ client.ats.passthrough.create(
## Ats RegenerateKey -
client.ats.regenerate_key.create(...) -> RemoteKey +
client.ats.regenerate_key.create(...)
@@ -7122,13 +7216,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -7168,7 +7260,7 @@ client.ats.regenerate_key.create(
## Ats RejectReasons -
client.ats.reject_reasons.list(...) -> PaginatedRejectReasonList +
client.ats.reject_reasons.list(...)
@@ -7195,24 +7287,31 @@ Returns a list of `RejectReason` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.reject_reasons.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -7231,7 +7330,7 @@ client.ats.reject_reasons.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -7239,7 +7338,7 @@ client.ats.reject_reasons.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -7279,7 +7378,7 @@ client.ats.reject_reasons.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -7287,7 +7386,7 @@ client.ats.reject_reasons.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -7323,7 +7422,7 @@ client.ats.reject_reasons.list(
-
client.ats.reject_reasons.retrieve(...) -> RejectReason +
client.ats.reject_reasons.retrieve(...)
@@ -7351,13 +7450,11 @@ Returns a `RejectReason` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.reject_reasons.retrieve( id="id", include_remote_data=True, @@ -7415,7 +7512,7 @@ client.ats.reject_reasons.retrieve(
## Ats Scorecards -
client.ats.scorecards.list(...) -> PaginatedScorecardList +
client.ats.scorecards.list(...)
@@ -7442,31 +7539,36 @@ Returns a list of `Scorecard` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.scorecards.list( application_id="application_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, interview_id="interview_id", interviewer_id="interviewer_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="overall_recommendation", remote_id="remote_id", - show_enum_origins="overall_recommendation", ) ``` @@ -7491,7 +7593,7 @@ client.ats.scorecards.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -7499,7 +7601,7 @@ client.ats.scorecards.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -7515,7 +7617,12 @@ client.ats.scorecards.list(
-**expand:** `typing.Optional[typing.Union[ScorecardsListRequestExpandItem, typing.Sequence[ScorecardsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ScorecardsListRequestExpandItem, + typing.Sequence[ScorecardsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -7563,7 +7670,7 @@ client.ats.scorecards.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -7571,7 +7678,7 @@ client.ats.scorecards.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -7587,7 +7694,7 @@ client.ats.scorecards.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["overall_recommendation"]]` — Deprecated. Use show_enum_origins.
@@ -7603,7 +7710,7 @@ client.ats.scorecards.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["overall_recommendation"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -7623,7 +7730,7 @@ client.ats.scorecards.list(
-
client.ats.scorecards.retrieve(...) -> Scorecard +
client.ats.scorecards.retrieve(...)
@@ -7651,19 +7758,15 @@ Returns a `Scorecard` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.scorecards.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="overall_recommendation", - show_enum_origins="overall_recommendation", ) ``` @@ -7688,7 +7791,12 @@ client.ats.scorecards.retrieve(
-**expand:** `typing.Optional[typing.Union[ScorecardsRetrieveRequestExpandItem, typing.Sequence[ScorecardsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ScorecardsRetrieveRequestExpandItem, + typing.Sequence[ScorecardsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -7712,7 +7820,7 @@ client.ats.scorecards.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["overall_recommendation"]]` — Deprecated. Use show_enum_origins.
@@ -7720,7 +7828,7 @@ client.ats.scorecards.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["overall_recommendation"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -7741,7 +7849,7 @@ client.ats.scorecards.retrieve(
## Ats SyncStatus -
client.ats.sync_status.list(...) -> PaginatedSyncStatusList +
client.ats.sync_status.list(...)
@@ -7769,13 +7877,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -7824,7 +7930,7 @@ client.ats.sync_status.list(
## Ats ForceResync -
client.ats.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.ats.force_resync.sync_status_resync_create()
@@ -7852,13 +7958,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.force_resync.sync_status_resync_create() ``` @@ -7888,7 +7992,7 @@ client.ats.force_resync.sync_status_resync_create()
## Ats Tags -
client.ats.tags.list(...) -> PaginatedTagList +
client.ats.tags.list(...)
@@ -7915,24 +8019,31 @@ Returns a list of `Tag` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.tags.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -7951,7 +8062,7 @@ client.ats.tags.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -7959,7 +8070,7 @@ client.ats.tags.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -7999,7 +8110,7 @@ client.ats.tags.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -8007,7 +8118,7 @@ client.ats.tags.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -8044,7 +8155,7 @@ client.ats.tags.list(
## Ats Users -
client.ats.users.list(...) -> PaginatedRemoteUserList +
client.ats.users.list(...)
@@ -8071,29 +8182,34 @@ Returns a list of `RemoteUser` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email="email", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="access_role", remote_id="remote_id", - show_enum_origins="access_role", ) ``` @@ -8110,7 +8226,7 @@ client.ats.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -8118,7 +8234,7 @@ client.ats.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -8166,7 +8282,7 @@ client.ats.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -8174,7 +8290,7 @@ client.ats.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -8190,7 +8306,7 @@ client.ats.users.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["access_role"]]` — Deprecated. Use show_enum_origins.
@@ -8206,7 +8322,7 @@ client.ats.users.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["access_role"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -8226,7 +8342,7 @@ client.ats.users.list(
-
client.ats.users.retrieve(...) -> RemoteUser +
client.ats.users.retrieve(...)
@@ -8254,19 +8370,15 @@ Returns a `RemoteUser` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.users.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="access_role", - show_enum_origins="access_role", ) ``` @@ -8307,7 +8419,7 @@ client.ats.users.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["access_role"]]` — Deprecated. Use show_enum_origins.
@@ -8315,7 +8427,7 @@ client.ats.users.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["access_role"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -8336,7 +8448,7 @@ client.ats.users.retrieve(
## Ats WebhookReceivers -
client.ats.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.ats.webhook_receivers.list()
@@ -8364,13 +8476,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.webhook_receivers.list() ``` @@ -8399,7 +8509,7 @@ client.ats.webhook_receivers.list()
-
client.ats.webhook_receivers.create(...) -> WebhookReceiver +
client.ats.webhook_receivers.create(...)
@@ -8427,13 +8537,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ats.webhook_receivers.create( event="event", is_active=True, @@ -8490,7 +8598,7 @@ client.ats.webhook_receivers.create(
## Accounting AccountDetails -
client.accounting.account_details.retrieve() -> AccountDetails +
client.accounting.account_details.retrieve()
@@ -8518,13 +8626,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.account_details.retrieve() ``` @@ -8554,7 +8660,7 @@ client.accounting.account_details.retrieve()
## Accounting AccountToken -
client.accounting.account_token.retrieve(...) -> AccountToken +
client.accounting.account_token.retrieve(...)
@@ -8582,13 +8688,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.account_token.retrieve( public_token="public_token", ) @@ -8627,7 +8731,7 @@ client.accounting.account_token.retrieve(
-
client.accounting.account_token.regenerate_create() -> RegenerateAccountToken +
client.accounting.account_token.regenerate_create()
@@ -8655,13 +8759,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.account_token.regenerate_create() ``` @@ -8691,7 +8793,7 @@ client.accounting.account_token.regenerate_create()
## Accounting AccountingPeriods -
client.accounting.accounting_periods.list(...) -> PaginatedAccountingPeriodList +
client.accounting.accounting_periods.list(...)
@@ -8719,13 +8821,11 @@ Returns a list of `AccountingPeriod` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.accounting_periods.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -8800,7 +8900,7 @@ client.accounting.accounting_periods.list(
-
client.accounting.accounting_periods.retrieve(...) -> AccountingPeriod +
client.accounting.accounting_periods.retrieve(...)
@@ -8828,13 +8928,11 @@ Returns an `AccountingPeriod` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.accounting_periods.retrieve( id="id", include_remote_data=True, @@ -8892,7 +8990,7 @@ client.accounting.accounting_periods.retrieve(
## Accounting Accounts -
client.accounting.accounts.list(...) -> PaginatedAccountList +
client.accounting.accounts.list(...)
@@ -8919,33 +9017,46 @@ Returns a list of `Account` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.accounting.resources.accounts import ( + AccountsListRequestClassification, + AccountsListRequestRemoteFields, + AccountsListRequestShowEnumOrigins, + AccountsListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.accounting.accounts.list( account_type="account_type", - classification="", + classification=AccountsListRequestClassification.EMPTY, company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, - remote_fields="classification", + remote_fields=AccountsListRequestRemoteFields.CLASSIFICATION, remote_id="remote_id", - show_enum_origins="classification", - status="", + show_enum_origins=AccountsListRequestShowEnumOrigins.CLASSIFICATION, + status=AccountsListRequestStatus.EMPTY, ) ``` @@ -8986,7 +9097,7 @@ client.accounting.accounts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -8994,7 +9105,7 @@ client.accounting.accounts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -9010,7 +9121,11 @@ client.accounting.accounts.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -9042,7 +9157,7 @@ client.accounting.accounts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -9050,7 +9165,7 @@ client.accounting.accounts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -9118,7 +9233,7 @@ client.accounting.accounts.list(
-
client.accounting.accounts.create(...) -> AccountResponse +
client.accounting.accounts.create(...)
@@ -9146,14 +9261,12 @@ Creates an `Account` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import AccountRequest +from merge.resources.accounting import AccountRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.accounts.create( is_debug_mode=True, run_async=True, @@ -9210,7 +9323,7 @@ client.accounting.accounts.create(
-
client.accounting.accounts.retrieve(...) -> Account +
client.accounting.accounts.retrieve(...)
@@ -9238,19 +9351,21 @@ Returns an `Account` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.accounting.resources.accounts import ( + AccountsRetrieveRequestRemoteFields, + AccountsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.accounts.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="classification", - show_enum_origins="classification", + remote_fields=AccountsRetrieveRequestRemoteFields.CLASSIFICATION, + show_enum_origins=AccountsRetrieveRequestShowEnumOrigins.CLASSIFICATION, ) ``` @@ -9275,7 +9390,11 @@ client.accounting.accounts.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -9327,7 +9446,7 @@ client.accounting.accounts.retrieve(
-
client.accounting.accounts.meta_post_retrieve() -> MetaResponse +
client.accounting.accounts.meta_post_retrieve()
@@ -9355,13 +9474,11 @@ Returns metadata for `Account` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.accounts.meta_post_retrieve() ``` @@ -9391,7 +9508,7 @@ client.accounting.accounts.meta_post_retrieve()
## Accounting Addresses -
client.accounting.addresses.retrieve(...) -> Address +
client.accounting.addresses.retrieve(...)
@@ -9419,19 +9536,15 @@ Returns an `Address` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.addresses.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="type", - show_enum_origins="type", ) ``` @@ -9472,7 +9585,7 @@ client.accounting.addresses.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -9480,7 +9593,7 @@ client.accounting.addresses.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -9501,7 +9614,7 @@ client.accounting.addresses.retrieve(
## Accounting AsyncPassthrough -
client.accounting.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.accounting.async_passthrough.create(...)
@@ -9529,17 +9642,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import DataPassthroughRequest +from merge.resources.accounting import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -9578,7 +9689,7 @@ client.accounting.async_passthrough.create(
-
client.accounting.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.accounting.async_passthrough.retrieve(...)
@@ -9606,13 +9717,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -9652,7 +9761,7 @@ client.accounting.async_passthrough.retrieve(
## Accounting AsyncTasks -
client.accounting.async_tasks.retrieve(...) -> AsyncPostTask +
client.accounting.async_tasks.retrieve(...)
@@ -9680,13 +9789,11 @@ Returns an `AsyncPostTask` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.async_tasks.retrieve( id="id", ) @@ -9726,7 +9833,7 @@ client.accounting.async_tasks.retrieve(
## Accounting Attachments -
client.accounting.attachments.list(...) -> PaginatedAccountingAttachmentList +
client.accounting.attachments.list(...)
@@ -9753,25 +9860,32 @@ Returns a list of `AccountingAttachment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.attachments.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -9798,7 +9912,7 @@ client.accounting.attachments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -9806,7 +9920,7 @@ client.accounting.attachments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -9846,7 +9960,7 @@ client.accounting.attachments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -9854,7 +9968,7 @@ client.accounting.attachments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -9890,7 +10004,7 @@ client.accounting.attachments.list(
-
client.accounting.attachments.create(...) -> AccountingAttachmentResponse +
client.accounting.attachments.create(...)
@@ -9918,14 +10032,12 @@ Creates an `AccountingAttachment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import AccountingAttachmentRequest +from merge.resources.accounting import AccountingAttachmentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.attachments.create( is_debug_mode=True, run_async=True, @@ -9982,7 +10094,7 @@ client.accounting.attachments.create(
-
client.accounting.attachments.retrieve(...) -> AccountingAttachment +
client.accounting.attachments.retrieve(...)
@@ -10010,13 +10122,11 @@ Returns an `AccountingAttachment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.attachments.retrieve( id="id", include_remote_data=True, @@ -10073,7 +10183,7 @@ client.accounting.attachments.retrieve(
-
client.accounting.attachments.meta_post_retrieve() -> MetaResponse +
client.accounting.attachments.meta_post_retrieve()
@@ -10101,13 +10211,11 @@ Returns metadata for `AccountingAttachment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.attachments.meta_post_retrieve() ``` @@ -10137,7 +10245,7 @@ client.accounting.attachments.meta_post_retrieve()
## Accounting AuditTrail -
client.accounting.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.accounting.audit_trail.list(...)
@@ -10165,13 +10273,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -10256,7 +10362,7 @@ client.accounting.audit_trail.list(
## Accounting AvailableActions -
client.accounting.available_actions.retrieve() -> AvailableActions +
client.accounting.available_actions.retrieve()
@@ -10284,13 +10390,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.available_actions.retrieve() ``` @@ -10320,7 +10424,7 @@ client.accounting.available_actions.retrieve()
## Accounting BalanceSheets -
client.accounting.balance_sheets.list(...) -> PaginatedBalanceSheetList +
client.accounting.balance_sheets.list(...)
@@ -10347,25 +10451,32 @@ Returns a list of `BalanceSheet` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.balance_sheets.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -10392,7 +10503,7 @@ client.accounting.balance_sheets.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -10400,7 +10511,7 @@ client.accounting.balance_sheets.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -10416,7 +10527,11 @@ client.accounting.balance_sheets.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -10448,7 +10563,7 @@ client.accounting.balance_sheets.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -10456,7 +10571,7 @@ client.accounting.balance_sheets.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -10492,7 +10607,7 @@ client.accounting.balance_sheets.list(
-
client.accounting.balance_sheets.retrieve(...) -> BalanceSheet +
client.accounting.balance_sheets.retrieve(...)
@@ -10520,13 +10635,11 @@ Returns a `BalanceSheet` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.balance_sheets.retrieve( id="id", include_remote_data=True, @@ -10555,7 +10668,11 @@ client.accounting.balance_sheets.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -10592,7 +10709,7 @@ client.accounting.balance_sheets.retrieve(
## Accounting BankFeedAccounts -
client.accounting.bank_feed_accounts.list(...) -> PaginatedBankFeedAccountList +
client.accounting.bank_feed_accounts.list(...)
@@ -10620,13 +10737,11 @@ Returns a list of `BankFeedAccount` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_accounts.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -10701,7 +10816,7 @@ client.accounting.bank_feed_accounts.list(
-
client.accounting.bank_feed_accounts.create(...) -> BankFeedAccountResponse +
client.accounting.bank_feed_accounts.create(...)
@@ -10729,14 +10844,12 @@ Creates a `BankFeedAccount` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import BankFeedAccountRequest +from merge.resources.accounting import BankFeedAccountRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_accounts.create( is_debug_mode=True, run_async=True, @@ -10793,7 +10906,7 @@ client.accounting.bank_feed_accounts.create(
-
client.accounting.bank_feed_accounts.retrieve(...) -> BankFeedAccount +
client.accounting.bank_feed_accounts.retrieve(...)
@@ -10821,13 +10934,11 @@ Returns a `BankFeedAccount` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_accounts.retrieve( id="id", include_remote_data=True, @@ -10884,7 +10995,7 @@ client.accounting.bank_feed_accounts.retrieve(
-
client.accounting.bank_feed_accounts.meta_post_retrieve() -> MetaResponse +
client.accounting.bank_feed_accounts.meta_post_retrieve()
@@ -10912,13 +11023,11 @@ Returns metadata for `BankFeedAccount` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_accounts.meta_post_retrieve() ``` @@ -10948,7 +11057,7 @@ client.accounting.bank_feed_accounts.meta_post_retrieve()
## Accounting BankFeedTransactions -
client.accounting.bank_feed_transactions.list(...) -> PaginatedBankFeedTransactionList +
client.accounting.bank_feed_transactions.list(...)
@@ -10975,25 +11084,32 @@ Returns a list of `BankFeedTransaction` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_transactions.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, is_processed=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -11012,7 +11128,7 @@ client.accounting.bank_feed_transactions.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -11020,7 +11136,7 @@ client.accounting.bank_feed_transactions.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -11036,7 +11152,12 @@ client.accounting.bank_feed_transactions.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["bank_feed_account"], + typing.Sequence[typing.Literal["bank_feed_account"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11076,7 +11197,7 @@ client.accounting.bank_feed_transactions.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -11084,7 +11205,7 @@ client.accounting.bank_feed_transactions.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -11120,7 +11241,7 @@ client.accounting.bank_feed_transactions.list(
-
client.accounting.bank_feed_transactions.create(...) -> BankFeedTransactionResponse +
client.accounting.bank_feed_transactions.create(...)
@@ -11148,14 +11269,12 @@ Creates a `BankFeedTransaction` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import BankFeedTransactionRequestRequest +from merge.resources.accounting import BankFeedTransactionRequestRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_transactions.create( is_debug_mode=True, run_async=True, @@ -11212,7 +11331,7 @@ client.accounting.bank_feed_transactions.create(
-
client.accounting.bank_feed_transactions.retrieve(...) -> BankFeedTransaction +
client.accounting.bank_feed_transactions.retrieve(...)
@@ -11240,13 +11359,11 @@ Returns a `BankFeedTransaction` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_transactions.retrieve( id="id", include_remote_data=True, @@ -11275,7 +11392,12 @@ client.accounting.bank_feed_transactions.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["bank_feed_account"], + typing.Sequence[typing.Literal["bank_feed_account"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11311,7 +11433,7 @@ client.accounting.bank_feed_transactions.retrieve(
-
client.accounting.bank_feed_transactions.meta_post_retrieve() -> MetaResponse +
client.accounting.bank_feed_transactions.meta_post_retrieve()
@@ -11339,13 +11461,11 @@ Returns metadata for `BankFeedTransaction` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.bank_feed_transactions.meta_post_retrieve() ``` @@ -11375,7 +11495,7 @@ client.accounting.bank_feed_transactions.meta_post_retrieve()
## Accounting CashFlowStatements -
client.accounting.cash_flow_statements.list(...) -> PaginatedCashFlowStatementList +
client.accounting.cash_flow_statements.list(...)
@@ -11402,25 +11522,32 @@ Returns a list of `CashFlowStatement` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.cash_flow_statements.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -11447,7 +11574,7 @@ client.accounting.cash_flow_statements.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -11455,7 +11582,7 @@ client.accounting.cash_flow_statements.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -11471,7 +11598,11 @@ client.accounting.cash_flow_statements.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11503,7 +11634,7 @@ client.accounting.cash_flow_statements.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -11511,7 +11642,7 @@ client.accounting.cash_flow_statements.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -11547,7 +11678,7 @@ client.accounting.cash_flow_statements.list(
-
client.accounting.cash_flow_statements.retrieve(...) -> CashFlowStatement +
client.accounting.cash_flow_statements.retrieve(...)
@@ -11575,13 +11706,11 @@ Returns a `CashFlowStatement` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.cash_flow_statements.retrieve( id="id", include_remote_data=True, @@ -11610,7 +11739,11 @@ client.accounting.cash_flow_statements.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11647,7 +11780,7 @@ client.accounting.cash_flow_statements.retrieve(
## Accounting CompanyInfo -
client.accounting.company_info.list(...) -> PaginatedCompanyInfoList +
client.accounting.company_info.list(...)
@@ -11674,24 +11807,31 @@ Returns a list of `CompanyInfo` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.company_info.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -11711,7 +11851,7 @@ client.accounting.company_info.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -11719,7 +11859,7 @@ client.accounting.company_info.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -11735,7 +11875,12 @@ client.accounting.company_info.list(
-**expand:** `typing.Optional[typing.Union[CompanyInfoListRequestExpandItem, typing.Sequence[CompanyInfoListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CompanyInfoListRequestExpandItem, + typing.Sequence[CompanyInfoListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11767,7 +11912,7 @@ client.accounting.company_info.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -11775,7 +11920,7 @@ client.accounting.company_info.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -11819,7 +11964,7 @@ client.accounting.company_info.list(
-
client.accounting.company_info.retrieve(...) -> CompanyInfo +
client.accounting.company_info.retrieve(...)
@@ -11847,13 +11992,11 @@ Returns a `CompanyInfo` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.company_info.retrieve( id="id", include_remote_data=True, @@ -11882,7 +12025,12 @@ client.accounting.company_info.retrieve(
-**expand:** `typing.Optional[typing.Union[CompanyInfoRetrieveRequestExpandItem, typing.Sequence[CompanyInfoRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CompanyInfoRetrieveRequestExpandItem, + typing.Sequence[CompanyInfoRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -11919,7 +12067,7 @@ client.accounting.company_info.retrieve(
## Accounting Contacts -
client.accounting.contacts.list(...) -> PaginatedContactList +
client.accounting.contacts.list(...)
@@ -11946,19 +12094,25 @@ Returns a list of `Contact` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.accounting.resources.contacts import ( + ContactsListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.accounting.contacts.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, @@ -11967,14 +12121,16 @@ client.accounting.contacts.list( include_shell_data=True, is_customer="is_customer", is_supplier="is_supplier", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", - status="", + status=ContactsListRequestStatus.EMPTY, ) ``` @@ -11999,7 +12155,7 @@ client.accounting.contacts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -12007,7 +12163,7 @@ client.accounting.contacts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -12031,7 +12187,12 @@ client.accounting.contacts.list(
-**expand:** `typing.Optional[typing.Union[ContactsListRequestExpandItem, typing.Sequence[ContactsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContactsListRequestExpandItem, + typing.Sequence[ContactsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -12087,7 +12248,7 @@ client.accounting.contacts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -12095,7 +12256,7 @@ client.accounting.contacts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -12119,7 +12280,7 @@ client.accounting.contacts.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -12135,7 +12296,7 @@ client.accounting.contacts.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -12163,7 +12324,7 @@ client.accounting.contacts.list(
-
client.accounting.contacts.create(...) -> ContactResponse +
client.accounting.contacts.create(...)
@@ -12191,14 +12352,12 @@ Creates a `Contact` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ContactRequest +from merge.resources.accounting import ContactRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.create( is_debug_mode=True, run_async=True, @@ -12255,7 +12414,7 @@ client.accounting.contacts.create(
-
client.accounting.contacts.retrieve(...) -> Contact +
client.accounting.contacts.retrieve(...)
@@ -12283,20 +12442,16 @@ Returns a `Contact` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -12321,7 +12476,12 @@ client.accounting.contacts.retrieve(
-**expand:** `typing.Optional[typing.Union[ContactsRetrieveRequestExpandItem, typing.Sequence[ContactsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContactsRetrieveRequestExpandItem, + typing.Sequence[ContactsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -12353,7 +12513,7 @@ client.accounting.contacts.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -12361,7 +12521,7 @@ client.accounting.contacts.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -12381,7 +12541,7 @@ client.accounting.contacts.retrieve(
-
client.accounting.contacts.partial_update(...) -> ContactResponse +
client.accounting.contacts.partial_update(...)
@@ -12409,14 +12569,12 @@ Updates a `Contact` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PatchedContactRequest +from merge.resources.accounting import PatchedContactRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.partial_update( id="id", is_debug_mode=True, @@ -12482,7 +12640,7 @@ client.accounting.contacts.partial_update(
-
client.accounting.contacts.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.contacts.meta_patch_retrieve(...)
@@ -12510,13 +12668,11 @@ Returns metadata for `Contact` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.meta_patch_retrieve( id="id", ) @@ -12555,7 +12711,7 @@ client.accounting.contacts.meta_patch_retrieve(
-
client.accounting.contacts.meta_post_retrieve() -> MetaResponse +
client.accounting.contacts.meta_post_retrieve()
@@ -12583,13 +12739,11 @@ Returns metadata for `Contact` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.meta_post_retrieve() ``` @@ -12618,7 +12772,7 @@ client.accounting.contacts.meta_post_retrieve()
-
client.accounting.contacts.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.contacts.remote_field_classes_list(...)
@@ -12646,13 +12800,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.contacts.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -12746,7 +12898,7 @@ client.accounting.contacts.remote_field_classes_list(
## Accounting CreditNotes -
client.accounting.credit_notes.list(...) -> PaginatedCreditNoteList +
client.accounting.credit_notes.list(...)
@@ -12773,31 +12925,46 @@ Returns a list of `CreditNote` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.accounting.resources.credit_notes import ( + CreditNotesListRequestRemoteFields, + CreditNotesListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.accounting.credit_notes.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="status", + remote_fields=CreditNotesListRequestRemoteFields.STATUS, remote_id="remote_id", - show_enum_origins="status", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + show_enum_origins=CreditNotesListRequestShowEnumOrigins.STATUS, + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -12822,7 +12989,7 @@ client.accounting.credit_notes.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -12830,7 +12997,7 @@ client.accounting.credit_notes.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -12846,7 +13013,12 @@ client.accounting.credit_notes.list(
-**expand:** `typing.Optional[typing.Union[CreditNotesListRequestExpandItem, typing.Sequence[CreditNotesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CreditNotesListRequestExpandItem, + typing.Sequence[CreditNotesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -12878,7 +13050,7 @@ client.accounting.credit_notes.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -12886,7 +13058,7 @@ client.accounting.credit_notes.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -12926,7 +13098,7 @@ client.accounting.credit_notes.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -12934,7 +13106,7 @@ client.accounting.credit_notes.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -12954,7 +13126,7 @@ client.accounting.credit_notes.list(
-
client.accounting.credit_notes.create(...) -> CreditNoteResponse +
client.accounting.credit_notes.create(...)
@@ -12982,14 +13154,12 @@ Creates a `CreditNote` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import CreditNoteRequest +from merge.resources.accounting import CreditNoteRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.create( is_debug_mode=True, run_async=True, @@ -13046,7 +13216,7 @@ client.accounting.credit_notes.create(
-
client.accounting.credit_notes.retrieve(...) -> CreditNote +
client.accounting.credit_notes.retrieve(...)
@@ -13074,19 +13244,21 @@ Returns a `CreditNote` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.accounting.resources.credit_notes import ( + CreditNotesRetrieveRequestRemoteFields, + CreditNotesRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", + remote_fields=CreditNotesRetrieveRequestRemoteFields.STATUS, + show_enum_origins=CreditNotesRetrieveRequestShowEnumOrigins.STATUS, ) ``` @@ -13111,7 +13283,12 @@ client.accounting.credit_notes.retrieve(
-**expand:** `typing.Optional[typing.Union[CreditNotesRetrieveRequestExpandItem, typing.Sequence[CreditNotesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CreditNotesRetrieveRequestExpandItem, + typing.Sequence[CreditNotesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -13163,7 +13340,7 @@ client.accounting.credit_notes.retrieve(
-
client.accounting.credit_notes.partial_update(...) -> CreditNoteResponse +
client.accounting.credit_notes.partial_update(...)
@@ -13191,14 +13368,12 @@ Updates a `CreditNote` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import CreditNoteRequest +from merge.resources.accounting import CreditNoteRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.partial_update( id="id", is_debug_mode=True, @@ -13264,7 +13439,7 @@ client.accounting.credit_notes.partial_update(
-
client.accounting.credit_notes.application_create(...) -> CreditNoteResponse +
client.accounting.credit_notes.application_create(...)
@@ -13291,20 +13466,21 @@ Creates a new CreditNoteApplyLine to apply a credit note to an invoice
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.application_create( id="id", is_debug_mode=True, run_async=True, - applied_date=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + applied_date=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), applied_amount="applied_amount", ) @@ -13330,7 +13506,7 @@ client.accounting.credit_notes.application_create(
-**applied_date:** `datetime.datetime` — Date that the credit note is applied to the invoice. +**applied_date:** `dt.datetime` — Date that the credit note is applied to the invoice.
@@ -13382,7 +13558,7 @@ client.accounting.credit_notes.application_create(
-
client.accounting.credit_notes.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.credit_notes.meta_patch_retrieve(...)
@@ -13410,13 +13586,11 @@ Returns metadata for `CreditNote` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.meta_patch_retrieve( id="id", ) @@ -13455,7 +13629,7 @@ client.accounting.credit_notes.meta_patch_retrieve(
-
client.accounting.credit_notes.meta_post_retrieve() -> MetaResponse +
client.accounting.credit_notes.meta_post_retrieve()
@@ -13483,13 +13657,11 @@ Returns metadata for `CreditNote` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.credit_notes.meta_post_retrieve() ``` @@ -13519,7 +13691,7 @@ client.accounting.credit_notes.meta_post_retrieve()
## Accounting Scopes -
client.accounting.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.accounting.scopes.default_scopes_retrieve()
@@ -13547,13 +13719,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.scopes.default_scopes_retrieve() ``` @@ -13582,7 +13752,7 @@ client.accounting.scopes.default_scopes_retrieve()
-
client.accounting.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.accounting.scopes.linked_account_scopes_retrieve()
@@ -13610,13 +13780,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.scopes.linked_account_scopes_retrieve() ``` @@ -13645,7 +13813,7 @@ client.accounting.scopes.linked_account_scopes_retrieve()
-
client.accounting.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.accounting.scopes.linked_account_scopes_create(...)
@@ -13673,14 +13841,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.accounting import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -13691,16 +13861,11 @@ client.accounting.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -13710,7 +13875,7 @@ client.accounting.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -13728,7 +13893,7 @@ client.accounting.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -13749,7 +13914,7 @@ client.accounting.scopes.linked_account_scopes_create(
## Accounting DeleteAccount -
client.accounting.delete_account.delete() +
client.accounting.delete_account.delete()
@@ -13777,13 +13942,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.delete_account.delete() ``` @@ -13813,7 +13976,7 @@ client.accounting.delete_account.delete()
## Accounting Employees -
client.accounting.employees.list(...) -> PaginatedEmployeeList +
client.accounting.employees.list(...)
@@ -13840,25 +14003,32 @@ Returns a list of `Employee` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.employees.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -13885,7 +14055,7 @@ client.accounting.employees.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -13893,7 +14063,7 @@ client.accounting.employees.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -13909,7 +14079,11 @@ client.accounting.employees.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -13941,7 +14115,7 @@ client.accounting.employees.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -13949,7 +14123,7 @@ client.accounting.employees.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -13985,7 +14159,7 @@ client.accounting.employees.list(
-
client.accounting.employees.retrieve(...) -> Employee +
client.accounting.employees.retrieve(...)
@@ -14013,13 +14187,11 @@ Returns an `Employee` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.employees.retrieve( id="id", include_remote_data=True, @@ -14048,7 +14220,11 @@ client.accounting.employees.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -14085,7 +14261,7 @@ client.accounting.employees.retrieve(
## Accounting ExpenseReports -
client.accounting.expense_reports.list(...) -> PaginatedExpenseReportList +
client.accounting.expense_reports.list(...)
@@ -14112,26 +14288,33 @@ Returns a list of `ExpenseReport` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -14158,7 +14341,7 @@ client.accounting.expense_reports.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -14166,7 +14349,7 @@ client.accounting.expense_reports.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -14182,7 +14365,12 @@ client.accounting.expense_reports.list(
-**expand:** `typing.Optional[typing.Union[ExpenseReportsListRequestExpandItem, typing.Sequence[ExpenseReportsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ExpenseReportsListRequestExpandItem, + typing.Sequence[ExpenseReportsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -14222,7 +14410,7 @@ client.accounting.expense_reports.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -14230,7 +14418,7 @@ client.accounting.expense_reports.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -14266,7 +14454,7 @@ client.accounting.expense_reports.list(
-
client.accounting.expense_reports.create(...) -> ExpenseReportResponse +
client.accounting.expense_reports.create(...)
@@ -14294,21 +14482,19 @@ Creates an `ExpenseReport` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ExpenseReportRequest +from merge.resources.accounting import ExpenseReportRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.create( is_debug_mode=True, run_async=True, model=ExpenseReportRequest( tracking_categories=[ "a1b2c3d4-e5f6-4a5b-9c3d-2e1f0a9b8c7d", - "d4c3b2a1-9e8f-7g6h-5i4j-3k2l1m0n9o8p" + "d4c3b2a1-9e8f-7g6h-5i4j-3k2l1m0n9o8p", ], ), ) @@ -14363,7 +14549,7 @@ client.accounting.expense_reports.create(
-
client.accounting.expense_reports.lines_list(...) -> PaginatedExpenseReportLineList +
client.accounting.expense_reports.lines_list(...)
@@ -14391,13 +14577,11 @@ Returns a list of `ExpenseReportLine` objects that point to a `ExpenseReport` wi ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.lines_list( expense_report_id="expense_report_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -14438,7 +14622,12 @@ client.accounting.expense_reports.lines_list(
-**expand:** `typing.Optional[typing.Union[ExpenseReportsLinesListRequestExpandItem, typing.Sequence[ExpenseReportsLinesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ExpenseReportsLinesListRequestExpandItem, + typing.Sequence[ExpenseReportsLinesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -14498,7 +14687,7 @@ client.accounting.expense_reports.lines_list(
-
client.accounting.expense_reports.retrieve(...) -> ExpenseReport +
client.accounting.expense_reports.retrieve(...)
@@ -14526,13 +14715,11 @@ Returns an `ExpenseReport` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.retrieve( id="id", include_remote_data=True, @@ -14562,7 +14749,12 @@ client.accounting.expense_reports.retrieve(
-**expand:** `typing.Optional[typing.Union[ExpenseReportsRetrieveRequestExpandItem, typing.Sequence[ExpenseReportsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ExpenseReportsRetrieveRequestExpandItem, + typing.Sequence[ExpenseReportsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -14606,7 +14798,7 @@ client.accounting.expense_reports.retrieve(
-
client.accounting.expense_reports.lines_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.expense_reports.lines_remote_field_classes_list(...)
@@ -14634,13 +14826,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.lines_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -14733,7 +14923,7 @@ client.accounting.expense_reports.lines_remote_field_classes_list(
-
client.accounting.expense_reports.meta_post_retrieve() -> MetaResponse +
client.accounting.expense_reports.meta_post_retrieve()
@@ -14761,13 +14951,11 @@ Returns metadata for `ExpenseReport` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.meta_post_retrieve() ``` @@ -14796,7 +14984,7 @@ client.accounting.expense_reports.meta_post_retrieve()
-
client.accounting.expense_reports.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.expense_reports.remote_field_classes_list(...)
@@ -14824,13 +15012,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expense_reports.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -14924,7 +15110,7 @@ client.accounting.expense_reports.remote_field_classes_list(
## Accounting Expenses -
client.accounting.expenses.list(...) -> PaginatedExpenseList +
client.accounting.expenses.list(...)
@@ -14951,30 +15137,41 @@ Returns a list of `Expense` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -14999,7 +15196,7 @@ client.accounting.expenses.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -15007,7 +15204,7 @@ client.accounting.expenses.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -15023,7 +15220,12 @@ client.accounting.expenses.list(
-**expand:** `typing.Optional[typing.Union[ExpensesListRequestExpandItem, typing.Sequence[ExpensesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ExpensesListRequestExpandItem, + typing.Sequence[ExpensesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -15063,7 +15265,7 @@ client.accounting.expenses.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -15071,7 +15273,7 @@ client.accounting.expenses.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -15095,7 +15297,7 @@ client.accounting.expenses.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -15103,7 +15305,7 @@ client.accounting.expenses.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -15123,7 +15325,7 @@ client.accounting.expenses.list(
-
client.accounting.expenses.create(...) -> ExpenseResponse +
client.accounting.expenses.create(...)
@@ -15151,14 +15353,12 @@ Creates an `Expense` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ExpenseRequest +from merge.resources.accounting import ExpenseRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.create( is_debug_mode=True, run_async=True, @@ -15215,7 +15415,7 @@ client.accounting.expenses.create(
-
client.accounting.expenses.retrieve(...) -> Expense +
client.accounting.expenses.retrieve(...)
@@ -15243,13 +15443,11 @@ Returns an `Expense` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.retrieve( id="id", include_remote_data=True, @@ -15279,7 +15477,12 @@ client.accounting.expenses.retrieve(
-**expand:** `typing.Optional[typing.Union[ExpensesRetrieveRequestExpandItem, typing.Sequence[ExpensesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ExpensesRetrieveRequestExpandItem, + typing.Sequence[ExpensesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -15323,7 +15526,7 @@ client.accounting.expenses.retrieve(
-
client.accounting.expenses.bulk_create(...) -> AsyncBulkCreateResponse +
client.accounting.expenses.bulk_create(...)
@@ -15351,14 +15554,12 @@ Creates multiple `Expense` objects with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ExpenseBatchItemRequest, ExpenseRequest +from merge.resources.accounting import ExpenseBatchItemRequest, ExpenseRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.bulk_create( batch_items=[ ExpenseBatchItemRequest( @@ -15382,7 +15583,7 @@ client.accounting.expenses.bulk_create(
-**batch_items:** `typing.List[ExpenseBatchItemRequest]` +**batch_items:** `typing.Sequence[ExpenseBatchItemRequest]`
@@ -15402,7 +15603,7 @@ client.accounting.expenses.bulk_create(
-
client.accounting.expenses.bulk_retrieve(...) -> BatchObjectsResponse +
client.accounting.expenses.bulk_retrieve(...)
@@ -15430,13 +15631,11 @@ Returns the status and results of an `Expense` bulk create batch. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.bulk_retrieve( batch_id="batch_id", ) @@ -15475,7 +15674,7 @@ client.accounting.expenses.bulk_retrieve(
-
client.accounting.expenses.lines_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.expenses.lines_remote_field_classes_list(...)
@@ -15503,13 +15702,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.lines_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -15602,7 +15799,7 @@ client.accounting.expenses.lines_remote_field_classes_list(
-
client.accounting.expenses.meta_post_retrieve() -> MetaResponse +
client.accounting.expenses.meta_post_retrieve()
@@ -15630,13 +15827,11 @@ Returns metadata for `Expense` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.meta_post_retrieve() ``` @@ -15665,7 +15860,7 @@ client.accounting.expenses.meta_post_retrieve()
-
client.accounting.expenses.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.expenses.remote_field_classes_list(...)
@@ -15693,13 +15888,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.expenses.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -15793,7 +15986,7 @@ client.accounting.expenses.remote_field_classes_list(
## Accounting FieldMapping -
client.accounting.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.accounting.field_mapping.field_mappings_retrieve(...)
@@ -15821,13 +16014,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -15866,7 +16057,7 @@ client.accounting.field_mapping.field_mappings_retrieve(
-
client.accounting.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.accounting.field_mapping.field_mappings_create(...)
@@ -15894,21 +16085,17 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -15944,7 +16131,7 @@ client.accounting.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -16020,7 +16207,7 @@ client.accounting.field_mapping.field_mappings_create(
-
client.accounting.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.accounting.field_mapping.field_mappings_destroy(...)
@@ -16048,13 +16235,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -16093,7 +16278,7 @@ client.accounting.field_mapping.field_mappings_destroy(
-
client.accounting.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.accounting.field_mapping.field_mappings_partial_update(...)
@@ -16121,13 +16306,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -16163,7 +16346,7 @@ client.accounting.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -16215,7 +16398,7 @@ client.accounting.field_mapping.field_mappings_partial_update(
-
client.accounting.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.accounting.field_mapping.remote_fields_retrieve(...)
@@ -16243,13 +16426,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -16297,7 +16478,7 @@ client.accounting.field_mapping.remote_fields_retrieve(
-
client.accounting.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.accounting.field_mapping.target_fields_retrieve()
@@ -16325,13 +16506,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.field_mapping.target_fields_retrieve() ``` @@ -16361,7 +16540,7 @@ client.accounting.field_mapping.target_fields_retrieve()
## Accounting GeneralLedgerTransactions -
client.accounting.general_ledger_transactions.list(...) -> PaginatedGeneralLedgerTransactionList +
client.accounting.general_ledger_transactions.list(...)
@@ -16388,28 +16567,39 @@ Returns a list of `GeneralLedgerTransaction` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.general_ledger_transactions.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - posted_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - posted_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + posted_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + posted_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), remote_id="remote_id", ) @@ -16435,7 +16625,7 @@ client.accounting.general_ledger_transactions.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -16443,7 +16633,7 @@ client.accounting.general_ledger_transactions.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -16459,7 +16649,12 @@ client.accounting.general_ledger_transactions.list(
-**expand:** `typing.Optional[typing.Union[GeneralLedgerTransactionsListRequestExpandItem, typing.Sequence[GeneralLedgerTransactionsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GeneralLedgerTransactionsListRequestExpandItem, + typing.Sequence[GeneralLedgerTransactionsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -16491,7 +16686,7 @@ client.accounting.general_ledger_transactions.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -16499,7 +16694,7 @@ client.accounting.general_ledger_transactions.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -16515,7 +16710,7 @@ client.accounting.general_ledger_transactions.list(
-**posted_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects posted after this datetime. +**posted_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects posted after this datetime.
@@ -16523,7 +16718,7 @@ client.accounting.general_ledger_transactions.list(
-**posted_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects posted before this datetime. +**posted_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects posted before this datetime.
@@ -16551,7 +16746,7 @@ client.accounting.general_ledger_transactions.list(
-
client.accounting.general_ledger_transactions.retrieve(...) -> GeneralLedgerTransaction +
client.accounting.general_ledger_transactions.retrieve(...)
@@ -16579,13 +16774,11 @@ Returns a `GeneralLedgerTransaction` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.general_ledger_transactions.retrieve( id="id", include_remote_data=True, @@ -16614,7 +16807,12 @@ client.accounting.general_ledger_transactions.retrieve(
-**expand:** `typing.Optional[typing.Union[GeneralLedgerTransactionsRetrieveRequestExpandItem, typing.Sequence[GeneralLedgerTransactionsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GeneralLedgerTransactionsRetrieveRequestExpandItem, + typing.Sequence[GeneralLedgerTransactionsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -16651,7 +16849,7 @@ client.accounting.general_ledger_transactions.retrieve(
## Accounting GenerateKey -
client.accounting.generate_key.create(...) -> RemoteKey +
client.accounting.generate_key.create(...)
@@ -16679,13 +16877,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.generate_key.create( name="Remote Deployment Key 1", ) @@ -16725,7 +16921,7 @@ client.accounting.generate_key.create(
## Accounting IncomeStatements -
client.accounting.income_statements.list(...) -> PaginatedIncomeStatementList +
client.accounting.income_statements.list(...)
@@ -16752,25 +16948,32 @@ Returns a list of `IncomeStatement` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.income_statements.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -16797,7 +17000,7 @@ client.accounting.income_statements.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -16805,7 +17008,7 @@ client.accounting.income_statements.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -16821,7 +17024,11 @@ client.accounting.income_statements.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -16853,7 +17060,7 @@ client.accounting.income_statements.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -16861,7 +17068,7 @@ client.accounting.income_statements.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -16897,7 +17104,7 @@ client.accounting.income_statements.list(
-
client.accounting.income_statements.retrieve(...) -> IncomeStatement +
client.accounting.income_statements.retrieve(...)
@@ -16925,13 +17132,11 @@ Returns an `IncomeStatement` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.income_statements.retrieve( id="id", include_remote_data=True, @@ -16960,7 +17165,11 @@ client.accounting.income_statements.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -16997,7 +17206,7 @@ client.accounting.income_statements.retrieve(
## Accounting Invoices -
client.accounting.invoices.list(...) -> PaginatedInvoiceList +
client.accounting.invoices.list(...)
@@ -17024,36 +17233,49 @@ Returns a list of `Invoice` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.accounting.resources.invoices import ( + InvoicesListRequestStatus, + InvoicesListRequestType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.accounting.invoices.list( company_id="company_id", contact_id="contact_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - issue_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - issue_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + issue_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + issue_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), number="number", page_size=1, - remote_fields="type", remote_id="remote_id", - show_enum_origins="type", - status="DRAFT", - type="ACCOUNTS_PAYABLE", + status=InvoicesListRequestStatus.DRAFT, + type=InvoicesListRequestType.ACCOUNTS_PAYABLE, ) ``` @@ -17086,7 +17308,7 @@ client.accounting.invoices.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -17094,7 +17316,7 @@ client.accounting.invoices.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -17110,7 +17332,12 @@ client.accounting.invoices.list(
-**expand:** `typing.Optional[typing.Union[InvoicesListRequestExpandItem, typing.Sequence[InvoicesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + InvoicesListRequestExpandItem, + typing.Sequence[InvoicesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -17150,7 +17377,7 @@ client.accounting.invoices.list(
-**issue_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**issue_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -17158,7 +17385,7 @@ client.accounting.invoices.list(
-**issue_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**issue_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -17166,7 +17393,7 @@ client.accounting.invoices.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -17174,7 +17401,7 @@ client.accounting.invoices.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -17198,7 +17425,7 @@ client.accounting.invoices.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -17214,7 +17441,7 @@ client.accounting.invoices.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -17264,7 +17491,7 @@ If provided, will only return Invoices with this type.
-
client.accounting.invoices.create(...) -> InvoiceResponse +
client.accounting.invoices.create(...)
@@ -17294,14 +17521,12 @@ Creates an `Invoice` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import InvoiceRequest +from merge.resources.accounting import InvoiceRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.create( is_debug_mode=True, run_async=True, @@ -17358,7 +17583,7 @@ client.accounting.invoices.create(
-
client.accounting.invoices.retrieve(...) -> Invoice +
client.accounting.invoices.retrieve(...)
@@ -17386,20 +17611,16 @@ Returns an `Invoice` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="type", - show_enum_origins="type", ) ``` @@ -17424,7 +17645,12 @@ client.accounting.invoices.retrieve(
-**expand:** `typing.Optional[typing.Union[InvoicesRetrieveRequestExpandItem, typing.Sequence[InvoicesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + InvoicesRetrieveRequestExpandItem, + typing.Sequence[InvoicesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -17456,7 +17682,7 @@ client.accounting.invoices.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -17464,7 +17690,7 @@ client.accounting.invoices.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -17484,7 +17710,7 @@ client.accounting.invoices.retrieve(
-
client.accounting.invoices.partial_update(...) -> InvoiceResponse +
client.accounting.invoices.partial_update(...)
@@ -17512,14 +17738,12 @@ Updates an `Invoice` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import InvoiceRequest +from merge.resources.accounting import InvoiceRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.partial_update( id="id", is_debug_mode=True, @@ -17585,7 +17809,7 @@ client.accounting.invoices.partial_update(
-
client.accounting.invoices.bulk_create(...) -> AsyncBulkCreateResponse +
client.accounting.invoices.bulk_create(...)
@@ -17613,14 +17837,12 @@ Creates multiple `Invoice` objects with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import InvoiceBatchItemRequest, InvoiceRequest +from merge.resources.accounting import InvoiceBatchItemRequest, InvoiceRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.bulk_create( batch_items=[ InvoiceBatchItemRequest( @@ -17644,7 +17866,7 @@ client.accounting.invoices.bulk_create(
-**batch_items:** `typing.List[InvoiceBatchItemRequest]` +**batch_items:** `typing.Sequence[InvoiceBatchItemRequest]`
@@ -17664,7 +17886,7 @@ client.accounting.invoices.bulk_create(
-
client.accounting.invoices.bulk_retrieve(...) -> BatchObjectsResponse +
client.accounting.invoices.bulk_retrieve(...)
@@ -17692,13 +17914,11 @@ Returns the status and results of an `Invoice` bulk create batch. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.bulk_retrieve( batch_id="batch_id", ) @@ -17737,7 +17957,7 @@ client.accounting.invoices.bulk_retrieve(
-
client.accounting.invoices.line_items_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.invoices.line_items_remote_field_classes_list(...)
@@ -17765,13 +17985,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.line_items_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -17864,7 +18082,7 @@ client.accounting.invoices.line_items_remote_field_classes_list(
-
client.accounting.invoices.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.invoices.meta_patch_retrieve(...)
@@ -17892,13 +18110,11 @@ Returns metadata for `Invoice` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.meta_patch_retrieve( id="id", ) @@ -17937,7 +18153,7 @@ client.accounting.invoices.meta_patch_retrieve(
-
client.accounting.invoices.meta_post_retrieve() -> MetaResponse +
client.accounting.invoices.meta_post_retrieve()
@@ -17965,13 +18181,11 @@ Returns metadata for `Invoice` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.meta_post_retrieve() ``` @@ -18000,7 +18214,7 @@ client.accounting.invoices.meta_post_retrieve()
-
client.accounting.invoices.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.invoices.remote_field_classes_list(...)
@@ -18028,13 +18242,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.invoices.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -18128,7 +18340,7 @@ client.accounting.invoices.remote_field_classes_list(
## Accounting Issues -
client.accounting.issues.list(...) -> PaginatedIssueList +
client.accounting.issues.list(...)
@@ -18155,30 +18367,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.accounting.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -18227,7 +18447,7 @@ client.accounting.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -18235,7 +18455,7 @@ client.accounting.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -18259,7 +18479,7 @@ client.accounting.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -18267,7 +18487,7 @@ client.accounting.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -18324,7 +18544,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.accounting.issues.retrieve(...) -> Issue +
client.accounting.issues.retrieve(...)
@@ -18352,13 +18572,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.issues.retrieve( id="id", ) @@ -18398,7 +18616,7 @@ client.accounting.issues.retrieve(
## Accounting ItemFulfillments -
client.accounting.item_fulfillments.list(...) -> PaginatedItemFulfillmentList +
client.accounting.item_fulfillments.list(...)
@@ -18426,13 +18644,11 @@ Returns a list of `ItemFulfillment` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -18440,8 +18656,6 @@ client.accounting.item_fulfillments.list( include_remote_fields=True, include_shell_data=True, page_size=1, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -18466,7 +18680,12 @@ client.accounting.item_fulfillments.list(
-**expand:** `typing.Optional[typing.Union[ItemFulfillmentsListRequestExpandItem, typing.Sequence[ItemFulfillmentsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ItemFulfillmentsListRequestExpandItem, + typing.Sequence[ItemFulfillmentsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -18514,7 +18733,7 @@ client.accounting.item_fulfillments.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -18522,7 +18741,7 @@ client.accounting.item_fulfillments.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -18542,7 +18761,7 @@ client.accounting.item_fulfillments.list(
-
client.accounting.item_fulfillments.create(...) -> ItemFulfillmentResponse +
client.accounting.item_fulfillments.create(...)
@@ -18570,14 +18789,12 @@ Creates an `ItemFulfillment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ItemFulfillmentRequestRequest +from merge.resources.accounting import ItemFulfillmentRequestRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.create( is_debug_mode=True, run_async=True, @@ -18634,7 +18851,7 @@ client.accounting.item_fulfillments.create(
-
client.accounting.item_fulfillments.retrieve(...) -> ItemFulfillment +
client.accounting.item_fulfillments.retrieve(...)
@@ -18662,20 +18879,16 @@ Returns an `ItemFulfillment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -18700,7 +18913,12 @@ client.accounting.item_fulfillments.retrieve(
-**expand:** `typing.Optional[typing.Union[ItemFulfillmentsRetrieveRequestExpandItem, typing.Sequence[ItemFulfillmentsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ItemFulfillmentsRetrieveRequestExpandItem, + typing.Sequence[ItemFulfillmentsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -18732,7 +18950,7 @@ client.accounting.item_fulfillments.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -18740,7 +18958,7 @@ client.accounting.item_fulfillments.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -18760,7 +18978,7 @@ client.accounting.item_fulfillments.retrieve(
-
client.accounting.item_fulfillments.bulk_create(...) -> AsyncBulkCreateResponse +
client.accounting.item_fulfillments.bulk_create(...)
@@ -18788,14 +19006,15 @@ Creates multiple `ItemFulfillment` objects with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ItemFulfillmentBatchItemRequest, ItemFulfillmentRequestRequest +from merge.resources.accounting import ( + ItemFulfillmentBatchItemRequest, + ItemFulfillmentRequestRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.bulk_create( batch_items=[ ItemFulfillmentBatchItemRequest( @@ -18819,7 +19038,7 @@ client.accounting.item_fulfillments.bulk_create(
-**batch_items:** `typing.List[ItemFulfillmentBatchItemRequest]` +**batch_items:** `typing.Sequence[ItemFulfillmentBatchItemRequest]`
@@ -18839,7 +19058,7 @@ client.accounting.item_fulfillments.bulk_create(
-
client.accounting.item_fulfillments.bulk_retrieve(...) -> BatchObjectsResponse +
client.accounting.item_fulfillments.bulk_retrieve(...)
@@ -18867,13 +19086,11 @@ Returns the status and results of an `ItemFulfillment` bulk create batch. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.bulk_retrieve( batch_id="batch_id", ) @@ -18912,7 +19129,7 @@ client.accounting.item_fulfillments.bulk_retrieve(
-
client.accounting.item_fulfillments.lines_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.item_fulfillments.lines_remote_field_classes_list(...)
@@ -18940,13 +19157,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.lines_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -19039,7 +19254,7 @@ client.accounting.item_fulfillments.lines_remote_field_classes_list(
-
client.accounting.item_fulfillments.meta_post_retrieve() -> MetaResponse +
client.accounting.item_fulfillments.meta_post_retrieve()
@@ -19067,13 +19282,11 @@ Returns metadata for `ItemFulfillment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.meta_post_retrieve() ``` @@ -19102,7 +19315,7 @@ client.accounting.item_fulfillments.meta_post_retrieve()
-
client.accounting.item_fulfillments.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.item_fulfillments.remote_field_classes_list(...)
@@ -19130,13 +19343,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.item_fulfillments.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -19230,7 +19441,7 @@ client.accounting.item_fulfillments.remote_field_classes_list(
## Accounting Items -
client.accounting.items.list(...) -> PaginatedItemList +
client.accounting.items.list(...)
@@ -19257,30 +19468,35 @@ Returns a list of `Item` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", ) ``` @@ -19305,7 +19521,7 @@ client.accounting.items.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -19313,7 +19529,7 @@ client.accounting.items.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -19329,7 +19545,11 @@ client.accounting.items.list(
-**expand:** `typing.Optional[typing.Union[ItemsListRequestExpandItem, typing.Sequence[ItemsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ItemsListRequestExpandItem, typing.Sequence[ItemsListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -19361,7 +19581,7 @@ client.accounting.items.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -19369,7 +19589,7 @@ client.accounting.items.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -19393,7 +19613,7 @@ client.accounting.items.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -19409,7 +19629,7 @@ client.accounting.items.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -19429,7 +19649,7 @@ client.accounting.items.list(
-
client.accounting.items.create(...) -> ItemResponse +
client.accounting.items.create(...)
@@ -19457,14 +19677,12 @@ Creates an `Item` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import ItemRequestRequest +from merge.resources.accounting import ItemRequestRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.create( is_debug_mode=True, run_async=True, @@ -19521,7 +19739,7 @@ client.accounting.items.create(
-
client.accounting.items.retrieve(...) -> Item +
client.accounting.items.retrieve(...)
@@ -19549,19 +19767,15 @@ Returns an `Item` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -19586,7 +19800,12 @@ client.accounting.items.retrieve(
-**expand:** `typing.Optional[typing.Union[ItemsRetrieveRequestExpandItem, typing.Sequence[ItemsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ItemsRetrieveRequestExpandItem, + typing.Sequence[ItemsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -19610,7 +19829,7 @@ client.accounting.items.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -19618,7 +19837,7 @@ client.accounting.items.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -19638,7 +19857,7 @@ client.accounting.items.retrieve(
-
client.accounting.items.partial_update(...) -> ItemResponse +
client.accounting.items.partial_update(...)
@@ -19666,14 +19885,12 @@ Updates an `Item` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PatchedItemRequestRequest +from merge.resources.accounting import PatchedItemRequestRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.partial_update( id="id", is_debug_mode=True, @@ -19739,7 +19956,7 @@ client.accounting.items.partial_update(
-
client.accounting.items.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.items.meta_patch_retrieve(...)
@@ -19767,13 +19984,11 @@ Returns metadata for `Item` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.meta_patch_retrieve( id="id", ) @@ -19812,7 +20027,7 @@ client.accounting.items.meta_patch_retrieve(
-
client.accounting.items.meta_post_retrieve() -> MetaResponse +
client.accounting.items.meta_post_retrieve()
@@ -19840,13 +20055,11 @@ Returns metadata for `Item` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.items.meta_post_retrieve() ``` @@ -19876,7 +20089,7 @@ client.accounting.items.meta_post_retrieve()
## Accounting JournalEntries -
client.accounting.journal_entries.list(...) -> PaginatedJournalEntryList +
client.accounting.journal_entries.list(...)
@@ -19903,30 +20116,41 @@ Returns a list of `JournalEntry` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -19951,7 +20175,7 @@ client.accounting.journal_entries.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -19959,7 +20183,7 @@ client.accounting.journal_entries.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -19975,7 +20199,12 @@ client.accounting.journal_entries.list(
-**expand:** `typing.Optional[typing.Union[JournalEntriesListRequestExpandItem, typing.Sequence[JournalEntriesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + JournalEntriesListRequestExpandItem, + typing.Sequence[JournalEntriesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -20015,7 +20244,7 @@ client.accounting.journal_entries.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -20023,7 +20252,7 @@ client.accounting.journal_entries.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -20047,7 +20276,7 @@ client.accounting.journal_entries.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -20055,7 +20284,7 @@ client.accounting.journal_entries.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -20075,7 +20304,7 @@ client.accounting.journal_entries.list(
-
client.accounting.journal_entries.create(...) -> JournalEntryResponse +
client.accounting.journal_entries.create(...)
@@ -20103,14 +20332,12 @@ Creates a `JournalEntry` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import JournalEntryRequest +from merge.resources.accounting import JournalEntryRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.create( is_debug_mode=True, run_async=True, @@ -20167,7 +20394,7 @@ client.accounting.journal_entries.create(
-
client.accounting.journal_entries.retrieve(...) -> JournalEntry +
client.accounting.journal_entries.retrieve(...)
@@ -20195,13 +20422,11 @@ Returns a `JournalEntry` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.retrieve( id="id", include_remote_data=True, @@ -20231,7 +20456,12 @@ client.accounting.journal_entries.retrieve(
-**expand:** `typing.Optional[typing.Union[JournalEntriesRetrieveRequestExpandItem, typing.Sequence[JournalEntriesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + JournalEntriesRetrieveRequestExpandItem, + typing.Sequence[JournalEntriesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -20275,7 +20505,7 @@ client.accounting.journal_entries.retrieve(
-
client.accounting.journal_entries.lines_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.journal_entries.lines_remote_field_classes_list(...)
@@ -20303,13 +20533,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.lines_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -20402,7 +20630,7 @@ client.accounting.journal_entries.lines_remote_field_classes_list(
-
client.accounting.journal_entries.meta_post_retrieve() -> MetaResponse +
client.accounting.journal_entries.meta_post_retrieve()
@@ -20430,13 +20658,11 @@ Returns metadata for `JournalEntry` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.meta_post_retrieve() ``` @@ -20465,7 +20691,7 @@ client.accounting.journal_entries.meta_post_retrieve()
-
client.accounting.journal_entries.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.journal_entries.remote_field_classes_list(...)
@@ -20493,13 +20719,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.journal_entries.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -20593,7 +20817,7 @@ client.accounting.journal_entries.remote_field_classes_list(
## Accounting LinkToken -
client.accounting.link_token.create(...) -> LinkToken +
client.accounting.link_token.create(...)
@@ -20621,21 +20845,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.accounting import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -20676,7 +20896,7 @@ client.accounting.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -20716,7 +20936,7 @@ client.accounting.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -20724,7 +20944,14 @@ client.accounting.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -20753,7 +20980,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -20802,7 +21029,7 @@ When creating a Link token, you can specifiy the initial screen of Linking Flow
## Accounting LinkedAccounts -
client.accounting.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.accounting.linked_accounts.list(...)
@@ -20830,15 +21057,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.accounting.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -20998,7 +21226,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `knowledgebase`, `mk
## Accounting Passthrough -
client.accounting.passthrough.create(...) -> RemoteResponse +
client.accounting.passthrough.create(...)
@@ -21026,17 +21254,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import DataPassthroughRequest +from merge.resources.accounting import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -21076,7 +21302,7 @@ client.accounting.passthrough.create(
## Accounting PaymentMethods -
client.accounting.payment_methods.list(...) -> PaginatedPaymentMethodList +
client.accounting.payment_methods.list(...)
@@ -21104,13 +21330,11 @@ Returns a list of `PaymentMethod` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payment_methods.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -21185,7 +21409,7 @@ client.accounting.payment_methods.list(
-
client.accounting.payment_methods.retrieve(...) -> PaymentMethod +
client.accounting.payment_methods.retrieve(...)
@@ -21213,13 +21437,11 @@ Returns a `PaymentMethod` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payment_methods.retrieve( id="id", include_remote_data=True, @@ -21277,7 +21499,7 @@ client.accounting.payment_methods.retrieve(
## Accounting PaymentTerms -
client.accounting.payment_terms.list(...) -> PaginatedPaymentTermList +
client.accounting.payment_terms.list(...)
@@ -21305,13 +21527,11 @@ Returns a list of `PaymentTerm` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payment_terms.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -21342,7 +21562,11 @@ client.accounting.payment_terms.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -21394,7 +21618,7 @@ client.accounting.payment_terms.list(
-
client.accounting.payment_terms.retrieve(...) -> PaymentTerm +
client.accounting.payment_terms.retrieve(...)
@@ -21422,13 +21646,11 @@ Returns a `PaymentTerm` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payment_terms.retrieve( id="id", include_remote_data=True, @@ -21457,7 +21679,11 @@ client.accounting.payment_terms.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -21494,7 +21720,7 @@ client.accounting.payment_terms.retrieve(
## Accounting Payments -
client.accounting.payments.list(...) -> PaginatedPaymentList +
client.accounting.payments.list(...)
@@ -21521,32 +21747,43 @@ Returns a list of `Payment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.list( account_id="account_id", company_id="company_id", contact_id="contact_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -21587,7 +21824,7 @@ client.accounting.payments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -21595,7 +21832,7 @@ client.accounting.payments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -21611,7 +21848,12 @@ client.accounting.payments.list(
-**expand:** `typing.Optional[typing.Union[PaymentsListRequestExpandItem, typing.Sequence[PaymentsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + PaymentsListRequestExpandItem, + typing.Sequence[PaymentsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -21651,7 +21893,7 @@ client.accounting.payments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -21659,7 +21901,7 @@ client.accounting.payments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -21683,7 +21925,7 @@ client.accounting.payments.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -21691,7 +21933,7 @@ client.accounting.payments.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -21711,7 +21953,7 @@ client.accounting.payments.list(
-
client.accounting.payments.create(...) -> PaymentResponse +
client.accounting.payments.create(...)
@@ -21739,14 +21981,12 @@ Creates a `Payment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PaymentRequest +from merge.resources.accounting import PaymentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.create( is_debug_mode=True, run_async=True, @@ -21803,7 +22043,7 @@ client.accounting.payments.create(
-
client.accounting.payments.retrieve(...) -> Payment +
client.accounting.payments.retrieve(...)
@@ -21831,13 +22071,11 @@ Returns a `Payment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.retrieve( id="id", include_remote_data=True, @@ -21867,7 +22105,12 @@ client.accounting.payments.retrieve(
-**expand:** `typing.Optional[typing.Union[PaymentsRetrieveRequestExpandItem, typing.Sequence[PaymentsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + PaymentsRetrieveRequestExpandItem, + typing.Sequence[PaymentsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -21911,7 +22154,7 @@ client.accounting.payments.retrieve(
-
client.accounting.payments.partial_update(...) -> PaymentResponse +
client.accounting.payments.partial_update(...)
@@ -21939,14 +22182,12 @@ Updates a `Payment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PatchedPaymentRequest +from merge.resources.accounting import PatchedPaymentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.partial_update( id="id", is_debug_mode=True, @@ -22012,7 +22253,7 @@ client.accounting.payments.partial_update(
-
client.accounting.payments.line_items_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.payments.line_items_remote_field_classes_list(...)
@@ -22040,13 +22281,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.line_items_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -22139,7 +22378,7 @@ client.accounting.payments.line_items_remote_field_classes_list(
-
client.accounting.payments.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.payments.meta_patch_retrieve(...)
@@ -22167,13 +22406,11 @@ Returns metadata for `Payment` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.meta_patch_retrieve( id="id", ) @@ -22212,7 +22449,7 @@ client.accounting.payments.meta_patch_retrieve(
-
client.accounting.payments.meta_post_retrieve() -> MetaResponse +
client.accounting.payments.meta_post_retrieve()
@@ -22240,13 +22477,11 @@ Returns metadata for `Payment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.meta_post_retrieve() ``` @@ -22275,7 +22510,7 @@ client.accounting.payments.meta_post_retrieve()
-
client.accounting.payments.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.payments.remote_field_classes_list(...)
@@ -22303,13 +22538,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.payments.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -22403,7 +22636,7 @@ client.accounting.payments.remote_field_classes_list(
## Accounting PhoneNumbers -
client.accounting.phone_numbers.retrieve(...) -> AccountingPhoneNumber +
client.accounting.phone_numbers.retrieve(...)
@@ -22431,13 +22664,11 @@ Returns an `AccountingPhoneNumber` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.phone_numbers.retrieve( id="id", include_remote_data=True, @@ -22495,7 +22726,7 @@ client.accounting.phone_numbers.retrieve(
## Accounting Projects -
client.accounting.projects.list(...) -> PaginatedProjectList +
client.accounting.projects.list(...)
@@ -22522,26 +22753,33 @@ Returns a list of `Project` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.projects.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, is_active="is_active", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -22568,7 +22806,7 @@ client.accounting.projects.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -22576,7 +22814,7 @@ client.accounting.projects.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -22592,7 +22830,12 @@ client.accounting.projects.list(
-**expand:** `typing.Optional[typing.Union[ProjectsListRequestExpandItem, typing.Sequence[ProjectsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ProjectsListRequestExpandItem, + typing.Sequence[ProjectsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -22632,7 +22875,7 @@ client.accounting.projects.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -22640,7 +22883,7 @@ client.accounting.projects.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -22676,7 +22919,7 @@ client.accounting.projects.list(
-
client.accounting.projects.retrieve(...) -> Project +
client.accounting.projects.retrieve(...)
@@ -22704,13 +22947,11 @@ Returns a `Project` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.projects.retrieve( id="id", include_remote_data=True, @@ -22739,7 +22980,12 @@ client.accounting.projects.retrieve(
-**expand:** `typing.Optional[typing.Union[ProjectsRetrieveRequestExpandItem, typing.Sequence[ProjectsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ProjectsRetrieveRequestExpandItem, + typing.Sequence[ProjectsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -22776,7 +23022,7 @@ client.accounting.projects.retrieve(
## Accounting PurchaseOrders -
client.accounting.purchase_orders.list(...) -> PaginatedPurchaseOrderList +
client.accounting.purchase_orders.list(...)
@@ -22803,32 +23049,41 @@ Returns a list of `PurchaseOrder` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - issue_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - issue_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + issue_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + issue_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", ) ``` @@ -22853,7 +23108,7 @@ client.accounting.purchase_orders.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -22861,7 +23116,7 @@ client.accounting.purchase_orders.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -22877,7 +23132,12 @@ client.accounting.purchase_orders.list(
-**expand:** `typing.Optional[typing.Union[PurchaseOrdersListRequestExpandItem, typing.Sequence[PurchaseOrdersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + PurchaseOrdersListRequestExpandItem, + typing.Sequence[PurchaseOrdersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -22917,7 +23177,7 @@ client.accounting.purchase_orders.list(
-**issue_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**issue_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -22925,7 +23185,7 @@ client.accounting.purchase_orders.list(
-**issue_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**issue_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -22933,7 +23193,7 @@ client.accounting.purchase_orders.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -22941,7 +23201,7 @@ client.accounting.purchase_orders.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -22957,7 +23217,7 @@ client.accounting.purchase_orders.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -22973,7 +23233,7 @@ client.accounting.purchase_orders.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -22993,7 +23253,7 @@ client.accounting.purchase_orders.list(
-
client.accounting.purchase_orders.create(...) -> PurchaseOrderResponse +
client.accounting.purchase_orders.create(...)
@@ -23021,14 +23281,12 @@ Creates a `PurchaseOrder` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PurchaseOrderRequest +from merge.resources.accounting import PurchaseOrderRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.create( is_debug_mode=True, run_async=True, @@ -23085,7 +23343,7 @@ client.accounting.purchase_orders.create(
-
client.accounting.purchase_orders.retrieve(...) -> PurchaseOrder +
client.accounting.purchase_orders.retrieve(...)
@@ -23113,20 +23371,16 @@ Returns a `PurchaseOrder` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -23151,7 +23405,12 @@ client.accounting.purchase_orders.retrieve(
-**expand:** `typing.Optional[typing.Union[PurchaseOrdersRetrieveRequestExpandItem, typing.Sequence[PurchaseOrdersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + PurchaseOrdersRetrieveRequestExpandItem, + typing.Sequence[PurchaseOrdersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -23183,7 +23442,7 @@ client.accounting.purchase_orders.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -23191,7 +23450,7 @@ client.accounting.purchase_orders.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -23211,7 +23470,7 @@ client.accounting.purchase_orders.retrieve(
-
client.accounting.purchase_orders.line_items_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.purchase_orders.line_items_remote_field_classes_list(...)
@@ -23239,13 +23498,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.line_items_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -23338,7 +23595,7 @@ client.accounting.purchase_orders.line_items_remote_field_classes_list(
-
client.accounting.purchase_orders.meta_post_retrieve() -> MetaResponse +
client.accounting.purchase_orders.meta_post_retrieve()
@@ -23366,13 +23623,11 @@ Returns metadata for `PurchaseOrder` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.meta_post_retrieve() ``` @@ -23401,7 +23656,7 @@ client.accounting.purchase_orders.meta_post_retrieve()
-
client.accounting.purchase_orders.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.purchase_orders.remote_field_classes_list(...)
@@ -23429,13 +23684,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.purchase_orders.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -23529,7 +23782,7 @@ client.accounting.purchase_orders.remote_field_classes_list(
## Accounting RegenerateKey -
client.accounting.regenerate_key.create(...) -> RemoteKey +
client.accounting.regenerate_key.create(...)
@@ -23557,13 +23810,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -23603,7 +23854,7 @@ client.accounting.regenerate_key.create(
## Accounting SalesOrders -
client.accounting.sales_orders.list(...) -> PaginatedSalesOrderList +
client.accounting.sales_orders.list(...)
@@ -23630,32 +23881,41 @@ Returns a list of `SalesOrder` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - issue_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - issue_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + issue_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + issue_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", ) ``` @@ -23680,7 +23940,7 @@ client.accounting.sales_orders.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -23688,7 +23948,7 @@ client.accounting.sales_orders.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -23704,7 +23964,12 @@ client.accounting.sales_orders.list(
-**expand:** `typing.Optional[typing.Union[SalesOrdersListRequestExpandItem, typing.Sequence[SalesOrdersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + SalesOrdersListRequestExpandItem, + typing.Sequence[SalesOrdersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -23744,7 +24009,7 @@ client.accounting.sales_orders.list(
-**issue_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**issue_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -23752,7 +24017,7 @@ client.accounting.sales_orders.list(
-**issue_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**issue_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -23760,7 +24025,7 @@ client.accounting.sales_orders.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -23768,7 +24033,7 @@ client.accounting.sales_orders.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -23784,7 +24049,7 @@ client.accounting.sales_orders.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -23800,7 +24065,7 @@ client.accounting.sales_orders.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -23820,7 +24085,7 @@ client.accounting.sales_orders.list(
-
client.accounting.sales_orders.create(...) -> SalesOrderResponse +
client.accounting.sales_orders.create(...)
@@ -23848,14 +24113,12 @@ Creates a `SalesOrder` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import SalesOrderRequestRequest +from merge.resources.accounting import SalesOrderRequestRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.create( is_debug_mode=True, run_async=True, @@ -23912,7 +24175,7 @@ client.accounting.sales_orders.create(
-
client.accounting.sales_orders.retrieve(...) -> SalesOrder +
client.accounting.sales_orders.retrieve(...)
@@ -23940,20 +24203,16 @@ Returns a `SalesOrder` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -23978,7 +24237,12 @@ client.accounting.sales_orders.retrieve(
-**expand:** `typing.Optional[typing.Union[SalesOrdersRetrieveRequestExpandItem, typing.Sequence[SalesOrdersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + SalesOrdersRetrieveRequestExpandItem, + typing.Sequence[SalesOrdersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -24010,7 +24274,7 @@ client.accounting.sales_orders.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -24018,7 +24282,7 @@ client.accounting.sales_orders.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -24038,7 +24302,7 @@ client.accounting.sales_orders.retrieve(
-
client.accounting.sales_orders.bulk_create(...) -> AsyncBulkCreateResponse +
client.accounting.sales_orders.bulk_create(...)
@@ -24066,14 +24330,15 @@ Creates multiple `SalesOrder` objects with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import SalesOrderBatchItemRequest, SalesOrderRequestRequest +from merge.resources.accounting import ( + SalesOrderBatchItemRequest, + SalesOrderRequestRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.bulk_create( batch_items=[ SalesOrderBatchItemRequest( @@ -24097,7 +24362,7 @@ client.accounting.sales_orders.bulk_create(
-**batch_items:** `typing.List[SalesOrderBatchItemRequest]` +**batch_items:** `typing.Sequence[SalesOrderBatchItemRequest]`
@@ -24117,7 +24382,7 @@ client.accounting.sales_orders.bulk_create(
-
client.accounting.sales_orders.bulk_retrieve(...) -> BatchObjectsResponse +
client.accounting.sales_orders.bulk_retrieve(...)
@@ -24145,13 +24410,11 @@ Returns the status and results of a `SalesOrder` bulk create batch. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.bulk_retrieve( batch_id="batch_id", ) @@ -24190,7 +24453,7 @@ client.accounting.sales_orders.bulk_retrieve(
-
client.accounting.sales_orders.lines_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.sales_orders.lines_remote_field_classes_list(...)
@@ -24218,13 +24481,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.lines_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -24317,7 +24578,7 @@ client.accounting.sales_orders.lines_remote_field_classes_list(
-
client.accounting.sales_orders.meta_post_retrieve() -> MetaResponse +
client.accounting.sales_orders.meta_post_retrieve()
@@ -24345,13 +24606,11 @@ Returns metadata for `SalesOrder` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.meta_post_retrieve() ``` @@ -24380,7 +24639,7 @@ client.accounting.sales_orders.meta_post_retrieve()
-
client.accounting.sales_orders.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.accounting.sales_orders.remote_field_classes_list(...)
@@ -24408,13 +24667,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sales_orders.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -24508,7 +24765,7 @@ client.accounting.sales_orders.remote_field_classes_list(
## Accounting SyncStatus -
client.accounting.sync_status.list(...) -> PaginatedSyncStatusList +
client.accounting.sync_status.list(...)
@@ -24536,13 +24793,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -24591,7 +24846,7 @@ client.accounting.sync_status.list(
## Accounting ForceResync -
client.accounting.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.accounting.force_resync.sync_status_resync_create()
@@ -24619,13 +24874,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.force_resync.sync_status_resync_create() ``` @@ -24655,7 +24908,7 @@ client.accounting.force_resync.sync_status_resync_create()
## Accounting TaxRates -
client.accounting.tax_rates.list(...) -> PaginatedTaxRateList +
client.accounting.tax_rates.list(...)
@@ -24682,25 +24935,32 @@ Returns a list of `TaxRate` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.tax_rates.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -24728,7 +24988,7 @@ client.accounting.tax_rates.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -24736,7 +24996,7 @@ client.accounting.tax_rates.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -24752,7 +25012,11 @@ client.accounting.tax_rates.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -24784,7 +25048,7 @@ client.accounting.tax_rates.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -24792,7 +25056,7 @@ client.accounting.tax_rates.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -24836,7 +25100,7 @@ client.accounting.tax_rates.list(
-
client.accounting.tax_rates.retrieve(...) -> TaxRate +
client.accounting.tax_rates.retrieve(...)
@@ -24864,13 +25128,11 @@ Returns a `TaxRate` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.tax_rates.retrieve( id="id", include_remote_data=True, @@ -24899,7 +25161,11 @@ client.accounting.tax_rates.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -24936,7 +25202,7 @@ client.accounting.tax_rates.retrieve(
## Accounting TrackingCategories -
client.accounting.tracking_categories.list(...) -> PaginatedTrackingCategoryList +
client.accounting.tracking_categories.list(...)
@@ -24963,32 +25229,41 @@ Returns a list of `TrackingCategory` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.accounting.resources.tracking_categories import ( + TrackingCategoriesListRequestCategoryType, + TrackingCategoriesListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.accounting.tracking_categories.list( - category_type="", + category_type=TrackingCategoriesListRequestCategoryType.EMPTY, company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, - remote_fields="status", remote_id="remote_id", - show_enum_origins="status", - status="", + status=TrackingCategoriesListRequestStatus.EMPTY, ) ``` @@ -25021,7 +25296,7 @@ client.accounting.tracking_categories.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -25029,7 +25304,7 @@ client.accounting.tracking_categories.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -25045,7 +25320,11 @@ client.accounting.tracking_categories.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25077,7 +25356,7 @@ client.accounting.tracking_categories.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -25085,7 +25364,7 @@ client.accounting.tracking_categories.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -25109,7 +25388,7 @@ client.accounting.tracking_categories.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -25125,7 +25404,7 @@ client.accounting.tracking_categories.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -25153,7 +25432,7 @@ client.accounting.tracking_categories.list(
-
client.accounting.tracking_categories.retrieve(...) -> TrackingCategory +
client.accounting.tracking_categories.retrieve(...)
@@ -25181,19 +25460,15 @@ Returns a `TrackingCategory` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.tracking_categories.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -25218,7 +25493,11 @@ client.accounting.tracking_categories.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["company"], typing.Sequence[typing.Literal["company"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25242,7 +25521,7 @@ client.accounting.tracking_categories.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -25250,7 +25529,7 @@ client.accounting.tracking_categories.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -25271,7 +25550,7 @@ client.accounting.tracking_categories.retrieve(
## Accounting Transactions -
client.accounting.transactions.list(...) -> PaginatedTransactionList +
client.accounting.transactions.list(...)
@@ -25298,29 +25577,40 @@ Returns a list of `Transaction` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.transactions.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -25345,7 +25635,7 @@ client.accounting.transactions.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -25353,7 +25643,7 @@ client.accounting.transactions.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -25369,7 +25659,12 @@ client.accounting.transactions.list(
-**expand:** `typing.Optional[typing.Union[TransactionsListRequestExpandItem, typing.Sequence[TransactionsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TransactionsListRequestExpandItem, + typing.Sequence[TransactionsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25401,7 +25696,7 @@ client.accounting.transactions.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -25409,7 +25704,7 @@ client.accounting.transactions.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -25433,7 +25728,7 @@ client.accounting.transactions.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -25441,7 +25736,7 @@ client.accounting.transactions.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -25461,7 +25756,7 @@ client.accounting.transactions.list(
-
client.accounting.transactions.retrieve(...) -> Transaction +
client.accounting.transactions.retrieve(...)
@@ -25489,13 +25784,11 @@ Returns a `Transaction` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.transactions.retrieve( id="id", include_remote_data=True, @@ -25524,7 +25817,12 @@ client.accounting.transactions.retrieve(
-**expand:** `typing.Optional[typing.Union[TransactionsRetrieveRequestExpandItem, typing.Sequence[TransactionsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TransactionsRetrieveRequestExpandItem, + typing.Sequence[TransactionsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25561,7 +25859,7 @@ client.accounting.transactions.retrieve(
## Accounting VendorCredits -
client.accounting.vendor_credits.list(...) -> PaginatedVendorCreditList +
client.accounting.vendor_credits.list(...)
@@ -25588,29 +25886,40 @@ Returns a list of `VendorCredit` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - transaction_date_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - transaction_date_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + transaction_date_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + transaction_date_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -25635,7 +25944,7 @@ client.accounting.vendor_credits.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -25643,7 +25952,7 @@ client.accounting.vendor_credits.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -25659,7 +25968,12 @@ client.accounting.vendor_credits.list(
-**expand:** `typing.Optional[typing.Union[VendorCreditsListRequestExpandItem, typing.Sequence[VendorCreditsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + VendorCreditsListRequestExpandItem, + typing.Sequence[VendorCreditsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25691,7 +26005,7 @@ client.accounting.vendor_credits.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -25699,7 +26013,7 @@ client.accounting.vendor_credits.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -25723,7 +26037,7 @@ client.accounting.vendor_credits.list(
-**transaction_date_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**transaction_date_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -25731,7 +26045,7 @@ client.accounting.vendor_credits.list(
-**transaction_date_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**transaction_date_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -25751,7 +26065,7 @@ client.accounting.vendor_credits.list(
-
client.accounting.vendor_credits.create(...) -> VendorCreditResponse +
client.accounting.vendor_credits.create(...)
@@ -25779,14 +26093,12 @@ Creates a `VendorCredit` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import VendorCreditRequest +from merge.resources.accounting import VendorCreditRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.create( is_debug_mode=True, run_async=True, @@ -25843,7 +26155,7 @@ client.accounting.vendor_credits.create(
-
client.accounting.vendor_credits.retrieve(...) -> VendorCredit +
client.accounting.vendor_credits.retrieve(...)
@@ -25871,13 +26183,11 @@ Returns a `VendorCredit` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.retrieve( id="id", include_remote_data=True, @@ -25906,7 +26216,12 @@ client.accounting.vendor_credits.retrieve(
-**expand:** `typing.Optional[typing.Union[VendorCreditsRetrieveRequestExpandItem, typing.Sequence[VendorCreditsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + VendorCreditsRetrieveRequestExpandItem, + typing.Sequence[VendorCreditsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -25942,7 +26257,7 @@ client.accounting.vendor_credits.retrieve(
-
client.accounting.vendor_credits.partial_update(...) -> VendorCreditResponse +
client.accounting.vendor_credits.partial_update(...)
@@ -25970,14 +26285,12 @@ Updates a `VendorCredit` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.accounting import PatchedVendorCreditRequest +from merge.resources.accounting import PatchedVendorCreditRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.partial_update( id="id", is_debug_mode=True, @@ -26043,7 +26356,7 @@ client.accounting.vendor_credits.partial_update(
-
client.accounting.vendor_credits.application_create(...) -> VendorCreditResponse +
client.accounting.vendor_credits.application_create(...)
@@ -26070,20 +26383,21 @@ Creates a new VendorCreditApplyLine to apply a vendor credit to an invoice
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.application_create( id="id", is_debug_mode=True, run_async=True, - applied_date=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + applied_date=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), applied_amount="applied_amount", ) @@ -26109,7 +26423,7 @@ client.accounting.vendor_credits.application_create(
-**applied_date:** `datetime.datetime` — Date that the vendor credit is applied to the invoice. +**applied_date:** `dt.datetime` — Date that the vendor credit is applied to the invoice.
@@ -26161,7 +26475,7 @@ client.accounting.vendor_credits.application_create(
-
client.accounting.vendor_credits.meta_patch_retrieve(...) -> MetaResponse +
client.accounting.vendor_credits.meta_patch_retrieve(...)
@@ -26189,13 +26503,11 @@ Returns metadata for `VendorCredit` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.meta_patch_retrieve( id="id", ) @@ -26234,7 +26546,7 @@ client.accounting.vendor_credits.meta_patch_retrieve(
-
client.accounting.vendor_credits.meta_post_retrieve() -> MetaResponse +
client.accounting.vendor_credits.meta_post_retrieve()
@@ -26262,13 +26574,11 @@ Returns metadata for `VendorCredit` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.vendor_credits.meta_post_retrieve() ``` @@ -26298,7 +26608,7 @@ client.accounting.vendor_credits.meta_post_retrieve()
## Accounting WebhookReceivers -
client.accounting.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.accounting.webhook_receivers.list()
@@ -26326,13 +26636,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.webhook_receivers.list() ``` @@ -26361,7 +26669,7 @@ client.accounting.webhook_receivers.list()
-
client.accounting.webhook_receivers.create(...) -> WebhookReceiver +
client.accounting.webhook_receivers.create(...)
@@ -26389,13 +26697,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.accounting.webhook_receivers.create( event="event", is_active=True, @@ -26452,7 +26758,7 @@ client.accounting.webhook_receivers.create(
## Crm AccountDetails -
client.crm.account_details.retrieve() -> AccountDetails +
client.crm.account_details.retrieve()
@@ -26480,13 +26786,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.account_details.retrieve() ``` @@ -26516,7 +26820,7 @@ client.crm.account_details.retrieve()
## Crm AccountToken -
client.crm.account_token.retrieve(...) -> AccountToken +
client.crm.account_token.retrieve(...)
@@ -26544,13 +26848,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.account_token.retrieve( public_token="public_token", ) @@ -26589,7 +26891,7 @@ client.crm.account_token.retrieve(
-
client.crm.account_token.regenerate_create() -> RegenerateAccountToken +
client.crm.account_token.regenerate_create()
@@ -26617,13 +26919,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.account_token.regenerate_create() ``` @@ -26653,7 +26953,7 @@ client.crm.account_token.regenerate_create()
## Crm Accounts -
client.crm.accounts.list(...) -> PaginatedAccountList +
client.crm.accounts.list(...)
@@ -26680,25 +26980,32 @@ Returns a list of `Account` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", owner_id="owner_id", page_size=1, @@ -26719,7 +27026,7 @@ client.crm.accounts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -26727,7 +27034,7 @@ client.crm.accounts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -26743,7 +27050,11 @@ client.crm.accounts.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["owner"], typing.Sequence[typing.Literal["owner"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -26783,7 +27094,7 @@ client.crm.accounts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -26791,7 +27102,7 @@ client.crm.accounts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -26843,7 +27154,7 @@ client.crm.accounts.list(
-
client.crm.accounts.create(...) -> CrmAccountResponse +
client.crm.accounts.create(...)
@@ -26871,14 +27182,12 @@ Creates an `Account` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import AccountRequest +from merge.resources.crm import AccountRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.create( is_debug_mode=True, run_async=True, @@ -26935,7 +27244,7 @@ client.crm.accounts.create(
-
client.crm.accounts.retrieve(...) -> Account +
client.crm.accounts.retrieve(...)
@@ -26963,13 +27272,11 @@ Returns an `Account` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.retrieve( id="id", include_remote_data=True, @@ -26999,7 +27306,11 @@ client.crm.accounts.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["owner"], typing.Sequence[typing.Literal["owner"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -27043,7 +27354,7 @@ client.crm.accounts.retrieve(
-
client.crm.accounts.partial_update(...) -> CrmAccountResponse +
client.crm.accounts.partial_update(...)
@@ -27071,14 +27382,12 @@ Updates an `Account` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import PatchedAccountRequest +from merge.resources.crm import PatchedAccountRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.partial_update( id="id", is_debug_mode=True, @@ -27144,7 +27453,7 @@ client.crm.accounts.partial_update(
-
client.crm.accounts.meta_patch_retrieve(...) -> MetaResponse +
client.crm.accounts.meta_patch_retrieve(...)
@@ -27172,13 +27481,11 @@ Returns metadata for `CRMAccount` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.meta_patch_retrieve( id="id", ) @@ -27217,7 +27524,7 @@ client.crm.accounts.meta_patch_retrieve(
-
client.crm.accounts.meta_post_retrieve() -> MetaResponse +
client.crm.accounts.meta_post_retrieve()
@@ -27245,13 +27552,11 @@ Returns metadata for `CRMAccount` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.meta_post_retrieve() ``` @@ -27280,7 +27585,7 @@ client.crm.accounts.meta_post_retrieve()
-
client.crm.accounts.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.accounts.remote_field_classes_list(...)
@@ -27308,13 +27613,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.accounts.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -27417,7 +27720,7 @@ client.crm.accounts.remote_field_classes_list(
## Crm AsyncPassthrough -
client.crm.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.crm.async_passthrough.create(...)
@@ -27445,17 +27748,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import DataPassthroughRequest +from merge.resources.crm import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -27494,7 +27795,7 @@ client.crm.async_passthrough.create(
-
client.crm.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.crm.async_passthrough.retrieve(...)
@@ -27522,13 +27823,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -27568,7 +27867,7 @@ client.crm.async_passthrough.retrieve(
## Crm AuditTrail -
client.crm.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.crm.audit_trail.list(...)
@@ -27596,13 +27895,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -27687,7 +27984,7 @@ client.crm.audit_trail.list(
## Crm AvailableActions -
client.crm.available_actions.retrieve() -> AvailableActions +
client.crm.available_actions.retrieve()
@@ -27715,13 +28012,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.available_actions.retrieve() ``` @@ -27751,7 +28046,7 @@ client.crm.available_actions.retrieve()
## Crm Contacts -
client.crm.contacts.list(...) -> PaginatedContactList +
client.crm.contacts.list(...)
@@ -27778,27 +28073,34 @@ Returns a list of `Contact` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.list( account_id="account_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_addresses="email_addresses", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, phone_numbers="phone_numbers", remote_id="remote_id", @@ -27826,7 +28128,7 @@ client.crm.contacts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -27834,7 +28136,7 @@ client.crm.contacts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -27858,7 +28160,12 @@ client.crm.contacts.list(
-**expand:** `typing.Optional[typing.Union[ContactsListRequestExpandItem, typing.Sequence[ContactsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContactsListRequestExpandItem, + typing.Sequence[ContactsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -27898,7 +28205,7 @@ client.crm.contacts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -27906,7 +28213,7 @@ client.crm.contacts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -27950,7 +28257,7 @@ client.crm.contacts.list(
-
client.crm.contacts.create(...) -> CrmContactResponse +
client.crm.contacts.create(...)
@@ -27978,14 +28285,12 @@ Creates a `Contact` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import ContactRequest +from merge.resources.crm import ContactRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.create( is_debug_mode=True, run_async=True, @@ -28042,7 +28347,7 @@ client.crm.contacts.create(
-
client.crm.contacts.retrieve(...) -> Contact +
client.crm.contacts.retrieve(...)
@@ -28070,13 +28375,11 @@ Returns a `Contact` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.retrieve( id="id", include_remote_data=True, @@ -28106,7 +28409,12 @@ client.crm.contacts.retrieve(
-**expand:** `typing.Optional[typing.Union[ContactsRetrieveRequestExpandItem, typing.Sequence[ContactsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContactsRetrieveRequestExpandItem, + typing.Sequence[ContactsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -28150,7 +28458,7 @@ client.crm.contacts.retrieve(
-
client.crm.contacts.partial_update(...) -> CrmContactResponse +
client.crm.contacts.partial_update(...)
@@ -28178,14 +28486,12 @@ Updates a `Contact` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import PatchedContactRequest +from merge.resources.crm import PatchedContactRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.partial_update( id="id", is_debug_mode=True, @@ -28251,7 +28557,7 @@ client.crm.contacts.partial_update(
-
client.crm.contacts.ignore_create(...) +
client.crm.contacts.ignore_create(...)
@@ -28279,18 +28585,16 @@ Ignores a specific row based on the `model_id` in the url. These records will ha ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import IgnoreCommonModelRequest +from merge.resources.crm import IgnoreCommonModelRequest, ReasonEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.ignore_create( model_id="model_id", request=IgnoreCommonModelRequest( - reason="GENERAL_CUSTOMER_REQUEST", + reason=ReasonEnum.GENERAL_CUSTOMER_REQUEST, ), ) @@ -28336,7 +28640,7 @@ client.crm.contacts.ignore_create(
-
client.crm.contacts.meta_patch_retrieve(...) -> MetaResponse +
client.crm.contacts.meta_patch_retrieve(...)
@@ -28364,13 +28668,11 @@ Returns metadata for `CRMContact` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.meta_patch_retrieve( id="id", ) @@ -28409,7 +28711,7 @@ client.crm.contacts.meta_patch_retrieve(
-
client.crm.contacts.meta_post_retrieve() -> MetaResponse +
client.crm.contacts.meta_post_retrieve()
@@ -28437,13 +28739,11 @@ Returns metadata for `CRMContact` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.meta_post_retrieve() ``` @@ -28472,7 +28772,7 @@ client.crm.contacts.meta_post_retrieve()
-
client.crm.contacts.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.contacts.remote_field_classes_list(...)
@@ -28500,13 +28800,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.contacts.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -28609,7 +28907,7 @@ client.crm.contacts.remote_field_classes_list(
## Crm CustomObjectClasses -
client.crm.custom_object_classes.list(...) -> PaginatedCustomObjectClassList +
client.crm.custom_object_classes.list(...)
@@ -28636,24 +28934,31 @@ Returns a list of `CustomObjectClass` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_object_classes.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -28672,7 +28977,7 @@ client.crm.custom_object_classes.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -28680,7 +28985,7 @@ client.crm.custom_object_classes.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -28696,7 +29001,11 @@ client.crm.custom_object_classes.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["fields"], typing.Sequence[typing.Literal["fields"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -28728,7 +29037,7 @@ client.crm.custom_object_classes.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -28736,7 +29045,7 @@ client.crm.custom_object_classes.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -28772,7 +29081,7 @@ client.crm.custom_object_classes.list(
-
client.crm.custom_object_classes.retrieve(...) -> CustomObjectClass +
client.crm.custom_object_classes.retrieve(...)
@@ -28800,13 +29109,11 @@ Returns a `CustomObjectClass` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_object_classes.retrieve( id="id", include_remote_data=True, @@ -28835,7 +29142,11 @@ client.crm.custom_object_classes.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["fields"], typing.Sequence[typing.Literal["fields"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -28872,7 +29183,7 @@ client.crm.custom_object_classes.retrieve(
## Crm AssociationTypes -
client.crm.association_types.custom_object_classes_association_types_list(...) -> PaginatedAssociationTypeList +
client.crm.association_types.custom_object_classes_association_types_list(...)
@@ -28899,25 +29210,32 @@ Returns a list of `AssociationType` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.association_types.custom_object_classes_association_types_list( custom_object_class_id="custom_object_class_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -28944,7 +29262,7 @@ client.crm.association_types.custom_object_classes_association_types_list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -28952,7 +29270,7 @@ client.crm.association_types.custom_object_classes_association_types_list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -28968,7 +29286,12 @@ client.crm.association_types.custom_object_classes_association_types_list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["target_object_classes"], + typing.Sequence[typing.Literal["target_object_classes"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -29000,7 +29323,7 @@ client.crm.association_types.custom_object_classes_association_types_list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -29008,7 +29331,7 @@ client.crm.association_types.custom_object_classes_association_types_list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -29044,7 +29367,7 @@ client.crm.association_types.custom_object_classes_association_types_list(
-
client.crm.association_types.custom_object_classes_association_types_create(...) -> CrmAssociationTypeResponse +
client.crm.association_types.custom_object_classes_association_types_create(...)
@@ -29072,14 +29395,16 @@ Creates an `AssociationType` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import AssociationTypeRequestRequest, ObjectClassDescriptionRequest +from merge.resources.crm import ( + AssociationTypeRequestRequest, + ObjectClassDescriptionRequest, + OriginTypeEnum, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.association_types.custom_object_classes_association_types_create( custom_object_class_id="custom_object_class_id", is_debug_mode=True, @@ -29087,11 +29412,9 @@ client.crm.association_types.custom_object_classes_association_types_create( model=AssociationTypeRequestRequest( source_object_class=ObjectClassDescriptionRequest( id="id", - origin_type="CUSTOM_OBJECT", + origin_type=OriginTypeEnum.CUSTOM_OBJECT, ), - target_object_classes=[ - "target_object_classes" - ], + target_object_classes=["target_object_classes"], remote_key_name="remote_key_name", ), ) @@ -29154,7 +29477,7 @@ client.crm.association_types.custom_object_classes_association_types_create(
-
client.crm.association_types.custom_object_classes_association_types_retrieve(...) -> AssociationType +
client.crm.association_types.custom_object_classes_association_types_retrieve(...)
@@ -29182,13 +29505,11 @@ Returns an `AssociationType` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.association_types.custom_object_classes_association_types_retrieve( custom_object_class_id="custom_object_class_id", id="id", @@ -29226,7 +29547,12 @@ client.crm.association_types.custom_object_classes_association_types_retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["target_object_classes"], + typing.Sequence[typing.Literal["target_object_classes"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -29262,7 +29588,7 @@ client.crm.association_types.custom_object_classes_association_types_retrieve(
-
client.crm.association_types.custom_object_classes_association_types_meta_post_retrieve(...) -> MetaResponse +
client.crm.association_types.custom_object_classes_association_types_meta_post_retrieve(...)
@@ -29290,13 +29616,11 @@ Returns metadata for `CRMAssociationType` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.association_types.custom_object_classes_association_types_meta_post_retrieve( custom_object_class_id="custom_object_class_id", ) @@ -29336,7 +29660,7 @@ client.crm.association_types.custom_object_classes_association_types_meta_post_r
## Crm CustomObjects -
client.crm.custom_objects.custom_object_classes_custom_objects_list(...) -> PaginatedCustomObjectList +
client.crm.custom_objects.custom_object_classes_custom_objects_list(...)
@@ -29363,26 +29687,33 @@ Returns a list of `CustomObject` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_objects.custom_object_classes_custom_objects_list( custom_object_class_id="custom_object_class_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -29409,7 +29740,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -29417,7 +29748,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -29465,7 +29796,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -29473,7 +29804,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -29509,7 +29840,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_list(
-
client.crm.custom_objects.custom_object_classes_custom_objects_create(...) -> CrmCustomObjectResponse +
client.crm.custom_objects.custom_object_classes_custom_objects_create(...)
@@ -29537,22 +29868,18 @@ Creates a `CustomObject` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import CustomObjectRequest +from merge.resources.crm import CustomObjectRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_objects.custom_object_classes_custom_objects_create( custom_object_class_id="custom_object_class_id", is_debug_mode=True, run_async=True, model=CustomObjectRequest( - fields={ - "test_field": "hello" - }, + fields={"test_field": "hello"}, ), ) @@ -29614,7 +29941,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_create(
-
client.crm.custom_objects.custom_object_classes_custom_objects_retrieve(...) -> CustomObject +
client.crm.custom_objects.custom_object_classes_custom_objects_retrieve(...)
@@ -29642,13 +29969,11 @@ Returns a `CustomObject` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_objects.custom_object_classes_custom_objects_retrieve( custom_object_class_id="custom_object_class_id", id="id", @@ -29723,7 +30048,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_retrieve(
-
client.crm.custom_objects.custom_object_classes_custom_objects_meta_post_retrieve(...) -> MetaResponse +
client.crm.custom_objects.custom_object_classes_custom_objects_meta_post_retrieve(...)
@@ -29751,13 +30076,11 @@ Returns metadata for `CRMCustomObject` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_objects.custom_object_classes_custom_objects_meta_post_retrieve( custom_object_class_id="custom_object_class_id", ) @@ -29796,7 +30119,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_meta_post_retriev
-
client.crm.custom_objects.custom_object_classes_custom_objects_remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.custom_objects.custom_object_classes_custom_objects_remote_field_classes_list(...)
@@ -29824,13 +30147,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.custom_objects.custom_object_classes_custom_objects_remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -29933,7 +30254,7 @@ client.crm.custom_objects.custom_object_classes_custom_objects_remote_field_clas
## Crm Associations -
client.crm.associations.custom_object_classes_custom_objects_associations_list(...) -> PaginatedAssociationList +
client.crm.associations.custom_object_classes_custom_objects_associations_list(...)
@@ -29960,27 +30281,34 @@ Returns a list of `Association` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.associations.custom_object_classes_custom_objects_associations_list( custom_object_class_id="custom_object_class_id", object_id="object_id", association_type_id="association_type_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -30023,7 +30351,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -30031,7 +30359,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -30047,7 +30375,12 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["association_type"], + typing.Sequence[typing.Literal["association_type"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -30079,7 +30412,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -30087,7 +30420,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -30123,7 +30456,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_list(
-
client.crm.associations.custom_object_classes_custom_objects_associations_update(...) -> Association +
client.crm.associations.custom_object_classes_custom_objects_associations_update(...)
@@ -30151,13 +30484,11 @@ Creates an Association between `source_object_id` and `target_object_id` of type ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.associations.custom_object_classes_custom_objects_associations_update( source_class_id="source_class_id", source_object_id="source_object_id", @@ -30251,7 +30582,7 @@ client.crm.associations.custom_object_classes_custom_objects_associations_update
## Crm Scopes -
client.crm.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.crm.scopes.default_scopes_retrieve()
@@ -30279,13 +30610,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.scopes.default_scopes_retrieve() ``` @@ -30314,7 +30643,7 @@ client.crm.scopes.default_scopes_retrieve()
-
client.crm.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.crm.scopes.linked_account_scopes_retrieve()
@@ -30342,13 +30671,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.scopes.linked_account_scopes_retrieve() ``` @@ -30377,7 +30704,7 @@ client.crm.scopes.linked_account_scopes_retrieve()
-
client.crm.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.crm.scopes.linked_account_scopes_create(...)
@@ -30405,14 +30732,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.crm import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -30423,16 +30752,11 @@ client.crm.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -30442,7 +30766,7 @@ client.crm.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -30460,7 +30784,7 @@ client.crm.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -30481,7 +30805,7 @@ client.crm.scopes.linked_account_scopes_create(
## Crm DeleteAccount -
client.crm.delete_account.delete() +
client.crm.delete_account.delete()
@@ -30509,13 +30833,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.delete_account.delete() ``` @@ -30545,7 +30867,7 @@ client.crm.delete_account.delete()
## Crm EngagementTypes -
client.crm.engagement_types.list(...) -> PaginatedEngagementTypeList +
client.crm.engagement_types.list(...)
@@ -30572,25 +30894,32 @@ Returns a list of `EngagementType` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagement_types.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -30609,7 +30938,7 @@ client.crm.engagement_types.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -30617,7 +30946,7 @@ client.crm.engagement_types.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -30665,7 +30994,7 @@ client.crm.engagement_types.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -30673,7 +31002,7 @@ client.crm.engagement_types.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -30709,7 +31038,7 @@ client.crm.engagement_types.list(
-
client.crm.engagement_types.retrieve(...) -> EngagementType +
client.crm.engagement_types.retrieve(...)
@@ -30737,13 +31066,11 @@ Returns an `EngagementType` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagement_types.retrieve( id="id", include_remote_data=True, @@ -30809,7 +31136,7 @@ client.crm.engagement_types.retrieve(
-
client.crm.engagement_types.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.engagement_types.remote_field_classes_list(...)
@@ -30837,13 +31164,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagement_types.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -30946,7 +31271,7 @@ client.crm.engagement_types.remote_field_classes_list(
## Crm Engagements -
client.crm.engagements.list(...) -> PaginatedEngagementList +
client.crm.engagements.list(...)
@@ -30973,29 +31298,40 @@ Returns a list of `Engagement` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -31012,7 +31348,7 @@ client.crm.engagements.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -31020,7 +31356,7 @@ client.crm.engagements.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -31036,7 +31372,12 @@ client.crm.engagements.list(
-**expand:** `typing.Optional[typing.Union[EngagementsListRequestExpandItem, typing.Sequence[EngagementsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EngagementsListRequestExpandItem, + typing.Sequence[EngagementsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -31076,7 +31417,7 @@ client.crm.engagements.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -31084,7 +31425,7 @@ client.crm.engagements.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -31108,7 +31449,7 @@ client.crm.engagements.list(
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return engagements started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return engagements started after this datetime.
@@ -31116,7 +31457,7 @@ client.crm.engagements.list(
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return engagements started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return engagements started before this datetime.
@@ -31136,7 +31477,7 @@ client.crm.engagements.list(
-
client.crm.engagements.create(...) -> EngagementResponse +
client.crm.engagements.create(...)
@@ -31164,14 +31505,12 @@ Creates an `Engagement` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import EngagementRequest +from merge.resources.crm import EngagementRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.create( is_debug_mode=True, run_async=True, @@ -31228,7 +31567,7 @@ client.crm.engagements.create(
-
client.crm.engagements.retrieve(...) -> Engagement +
client.crm.engagements.retrieve(...)
@@ -31256,13 +31595,11 @@ Returns an `Engagement` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.retrieve( id="id", include_remote_data=True, @@ -31292,7 +31629,12 @@ client.crm.engagements.retrieve(
-**expand:** `typing.Optional[typing.Union[EngagementsRetrieveRequestExpandItem, typing.Sequence[EngagementsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EngagementsRetrieveRequestExpandItem, + typing.Sequence[EngagementsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -31336,7 +31678,7 @@ client.crm.engagements.retrieve(
-
client.crm.engagements.partial_update(...) -> EngagementResponse +
client.crm.engagements.partial_update(...)
@@ -31364,14 +31706,12 @@ Updates an `Engagement` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import PatchedEngagementRequest +from merge.resources.crm import PatchedEngagementRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.partial_update( id="id", is_debug_mode=True, @@ -31437,7 +31777,7 @@ client.crm.engagements.partial_update(
-
client.crm.engagements.meta_patch_retrieve(...) -> MetaResponse +
client.crm.engagements.meta_patch_retrieve(...)
@@ -31465,13 +31805,11 @@ Returns metadata for `Engagement` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.meta_patch_retrieve( id="id", ) @@ -31510,7 +31848,7 @@ client.crm.engagements.meta_patch_retrieve(
-
client.crm.engagements.meta_post_retrieve() -> MetaResponse +
client.crm.engagements.meta_post_retrieve()
@@ -31538,13 +31876,11 @@ Returns metadata for `Engagement` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.meta_post_retrieve() ``` @@ -31573,7 +31909,7 @@ client.crm.engagements.meta_post_retrieve()
-
client.crm.engagements.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.engagements.remote_field_classes_list(...)
@@ -31601,13 +31937,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.engagements.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -31710,7 +32044,7 @@ client.crm.engagements.remote_field_classes_list(
## Crm FieldMapping -
client.crm.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.crm.field_mapping.field_mappings_retrieve(...)
@@ -31738,13 +32072,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -31783,7 +32115,7 @@ client.crm.field_mapping.field_mappings_retrieve(
-
client.crm.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.crm.field_mapping.field_mappings_create(...)
@@ -31811,21 +32143,17 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -31861,7 +32189,7 @@ client.crm.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -31929,7 +32257,7 @@ client.crm.field_mapping.field_mappings_create(
-
client.crm.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.crm.field_mapping.field_mappings_destroy(...)
@@ -31957,13 +32285,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -32002,7 +32328,7 @@ client.crm.field_mapping.field_mappings_destroy(
-
client.crm.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.crm.field_mapping.field_mappings_partial_update(...)
@@ -32030,13 +32356,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -32072,7 +32396,7 @@ client.crm.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -32116,7 +32440,7 @@ client.crm.field_mapping.field_mappings_partial_update(
-
client.crm.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.crm.field_mapping.remote_fields_retrieve(...)
@@ -32144,13 +32468,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -32198,7 +32520,7 @@ client.crm.field_mapping.remote_fields_retrieve(
-
client.crm.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.crm.field_mapping.target_fields_retrieve()
@@ -32226,13 +32548,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.field_mapping.target_fields_retrieve() ``` @@ -32262,7 +32582,7 @@ client.crm.field_mapping.target_fields_retrieve()
## Crm GenerateKey -
client.crm.generate_key.create(...) -> RemoteKey +
client.crm.generate_key.create(...)
@@ -32290,13 +32610,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.generate_key.create( name="Remote Deployment Key 1", ) @@ -32336,7 +32654,7 @@ client.crm.generate_key.create(
## Crm Issues -
client.crm.issues.list(...) -> PaginatedIssueList +
client.crm.issues.list(...)
@@ -32363,30 +32681,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.crm.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -32435,7 +32761,7 @@ client.crm.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -32443,7 +32769,7 @@ client.crm.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -32467,7 +32793,7 @@ client.crm.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -32475,7 +32801,7 @@ client.crm.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -32532,7 +32858,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.crm.issues.retrieve(...) -> Issue +
client.crm.issues.retrieve(...)
@@ -32560,13 +32886,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.issues.retrieve( id="id", ) @@ -32606,7 +32930,7 @@ client.crm.issues.retrieve(
## Crm Leads -
client.crm.leads.list(...) -> PaginatedLeadList +
client.crm.leads.list(...)
@@ -32633,28 +32957,35 @@ Returns a list of `Lead` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.leads.list( converted_account_id="converted_account_id", converted_contact_id="converted_contact_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_addresses="email_addresses", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), owner_id="owner_id", page_size=1, phone_numbers="phone_numbers", @@ -32691,7 +33022,7 @@ client.crm.leads.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -32699,7 +33030,7 @@ client.crm.leads.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -32723,7 +33054,11 @@ client.crm.leads.list(
-**expand:** `typing.Optional[typing.Union[LeadsListRequestExpandItem, typing.Sequence[LeadsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + LeadsListRequestExpandItem, typing.Sequence[LeadsListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -32763,7 +33098,7 @@ client.crm.leads.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -32771,7 +33106,7 @@ client.crm.leads.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -32823,7 +33158,7 @@ client.crm.leads.list(
-
client.crm.leads.create(...) -> LeadResponse +
client.crm.leads.create(...)
@@ -32851,14 +33186,12 @@ Creates a `Lead` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import LeadRequest +from merge.resources.crm import LeadRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.leads.create( is_debug_mode=True, run_async=True, @@ -32915,7 +33248,7 @@ client.crm.leads.create(
-
client.crm.leads.retrieve(...) -> Lead +
client.crm.leads.retrieve(...)
@@ -32943,13 +33276,11 @@ Returns a `Lead` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.leads.retrieve( id="id", include_remote_data=True, @@ -32979,7 +33310,12 @@ client.crm.leads.retrieve(
-**expand:** `typing.Optional[typing.Union[LeadsRetrieveRequestExpandItem, typing.Sequence[LeadsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + LeadsRetrieveRequestExpandItem, + typing.Sequence[LeadsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -33023,7 +33359,7 @@ client.crm.leads.retrieve(
-
client.crm.leads.meta_post_retrieve() -> MetaResponse +
client.crm.leads.meta_post_retrieve()
@@ -33051,13 +33387,11 @@ Returns metadata for `Lead` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.leads.meta_post_retrieve() ``` @@ -33086,7 +33420,7 @@ client.crm.leads.meta_post_retrieve()
-
client.crm.leads.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.leads.remote_field_classes_list(...)
@@ -33114,13 +33448,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.leads.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -33223,7 +33555,7 @@ client.crm.leads.remote_field_classes_list(
## Crm LinkToken -
client.crm.link_token.create(...) -> LinkToken +
client.crm.link_token.create(...)
@@ -33251,21 +33583,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.crm import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -33306,7 +33634,7 @@ client.crm.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -33346,7 +33674,7 @@ client.crm.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -33354,7 +33682,14 @@ client.crm.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -33383,7 +33718,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -33404,7 +33739,7 @@ The following subset of IETF language tags can be used to configure localization
## Crm LinkedAccounts -
client.crm.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.crm.linked_accounts.list(...)
@@ -33432,15 +33767,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.crm.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -33596,7 +33932,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing`
## Crm Notes -
client.crm.notes.list(...) -> PaginatedNoteList +
client.crm.notes.list(...)
@@ -33623,27 +33959,34 @@ Returns a list of `Note` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.notes.list( account_id="account_id", contact_id="contact_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), opportunity_id="opportunity_id", owner_id="owner_id", page_size=1, @@ -33680,7 +34023,7 @@ client.crm.notes.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -33688,7 +34031,7 @@ client.crm.notes.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -33704,7 +34047,11 @@ client.crm.notes.list(
-**expand:** `typing.Optional[typing.Union[NotesListRequestExpandItem, typing.Sequence[NotesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + NotesListRequestExpandItem, typing.Sequence[NotesListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -33744,7 +34091,7 @@ client.crm.notes.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -33752,7 +34099,7 @@ client.crm.notes.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -33804,7 +34151,7 @@ client.crm.notes.list(
-
client.crm.notes.create(...) -> NoteResponse +
client.crm.notes.create(...)
@@ -33832,14 +34179,12 @@ Creates a `Note` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import NoteRequest +from merge.resources.crm import NoteRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.notes.create( is_debug_mode=True, run_async=True, @@ -33896,7 +34241,7 @@ client.crm.notes.create(
-
client.crm.notes.retrieve(...) -> Note +
client.crm.notes.retrieve(...)
@@ -33924,13 +34269,11 @@ Returns a `Note` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.notes.retrieve( id="id", include_remote_data=True, @@ -33960,7 +34303,12 @@ client.crm.notes.retrieve(
-**expand:** `typing.Optional[typing.Union[NotesRetrieveRequestExpandItem, typing.Sequence[NotesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + NotesRetrieveRequestExpandItem, + typing.Sequence[NotesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -34004,7 +34352,7 @@ client.crm.notes.retrieve(
-
client.crm.notes.meta_post_retrieve() -> MetaResponse +
client.crm.notes.meta_post_retrieve()
@@ -34032,13 +34380,11 @@ Returns metadata for `Note` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.notes.meta_post_retrieve() ``` @@ -34067,7 +34413,7 @@ client.crm.notes.meta_post_retrieve()
-
client.crm.notes.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.notes.remote_field_classes_list(...)
@@ -34095,13 +34441,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.notes.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -34204,7 +34548,7 @@ client.crm.notes.remote_field_classes_list(
## Crm Opportunities -
client.crm.opportunities.list(...) -> PaginatedOpportunityList +
client.crm.opportunities.list(...)
@@ -34231,34 +34575,44 @@ Returns a list of `Opportunity` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.crm.resources.opportunities import ( + OpportunitiesListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.crm.opportunities.list( account_id="account_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), owner_id="owner_id", page_size=1, - remote_created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - remote_fields="status", + remote_created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), remote_id="remote_id", - show_enum_origins="status", stage_id="stage_id", - status="LOST", + status=OpportunitiesListRequestStatus.LOST, ) ``` @@ -34283,7 +34637,7 @@ client.crm.opportunities.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -34291,7 +34645,7 @@ client.crm.opportunities.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -34307,7 +34661,12 @@ client.crm.opportunities.list(
-**expand:** `typing.Optional[typing.Union[OpportunitiesListRequestExpandItem, typing.Sequence[OpportunitiesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + OpportunitiesListRequestExpandItem, + typing.Sequence[OpportunitiesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -34347,7 +34706,7 @@ client.crm.opportunities.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -34355,7 +34714,7 @@ client.crm.opportunities.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -34379,7 +34738,7 @@ client.crm.opportunities.list(
-**remote_created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return opportunities created in the third party platform after this datetime. +**remote_created_after:** `typing.Optional[dt.datetime]` — If provided, will only return opportunities created in the third party platform after this datetime.
@@ -34387,7 +34746,7 @@ client.crm.opportunities.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -34403,7 +34762,7 @@ client.crm.opportunities.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -34445,7 +34804,7 @@ If provided, will only return opportunities with this status. Options: ('OPEN',
-
client.crm.opportunities.create(...) -> OpportunityResponse +
client.crm.opportunities.create(...)
@@ -34473,14 +34832,12 @@ Creates an `Opportunity` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import OpportunityRequest +from merge.resources.crm import OpportunityRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.create( is_debug_mode=True, run_async=True, @@ -34537,7 +34894,7 @@ client.crm.opportunities.create(
-
client.crm.opportunities.retrieve(...) -> Opportunity +
client.crm.opportunities.retrieve(...)
@@ -34565,20 +34922,16 @@ Returns an `Opportunity` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="status", - show_enum_origins="status", ) ``` @@ -34603,7 +34956,12 @@ client.crm.opportunities.retrieve(
-**expand:** `typing.Optional[typing.Union[OpportunitiesRetrieveRequestExpandItem, typing.Sequence[OpportunitiesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + OpportunitiesRetrieveRequestExpandItem, + typing.Sequence[OpportunitiesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -34635,7 +34993,7 @@ client.crm.opportunities.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["status"]]` — Deprecated. Use show_enum_origins.
@@ -34643,7 +35001,7 @@ client.crm.opportunities.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["status"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -34663,7 +35021,7 @@ client.crm.opportunities.retrieve(
-
client.crm.opportunities.partial_update(...) -> OpportunityResponse +
client.crm.opportunities.partial_update(...)
@@ -34691,14 +35049,12 @@ Updates an `Opportunity` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import PatchedOpportunityRequest +from merge.resources.crm import PatchedOpportunityRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.partial_update( id="id", is_debug_mode=True, @@ -34764,7 +35120,7 @@ client.crm.opportunities.partial_update(
-
client.crm.opportunities.meta_patch_retrieve(...) -> MetaResponse +
client.crm.opportunities.meta_patch_retrieve(...)
@@ -34792,13 +35148,11 @@ Returns metadata for `Opportunity` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.meta_patch_retrieve( id="id", ) @@ -34837,7 +35191,7 @@ client.crm.opportunities.meta_patch_retrieve(
-
client.crm.opportunities.meta_post_retrieve() -> MetaResponse +
client.crm.opportunities.meta_post_retrieve()
@@ -34865,13 +35219,11 @@ Returns metadata for `Opportunity` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.meta_post_retrieve() ``` @@ -34900,7 +35252,7 @@ client.crm.opportunities.meta_post_retrieve()
-
client.crm.opportunities.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.opportunities.remote_field_classes_list(...)
@@ -34928,13 +35280,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.opportunities.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -35037,7 +35387,7 @@ client.crm.opportunities.remote_field_classes_list(
## Crm Passthrough -
client.crm.passthrough.create(...) -> RemoteResponse +
client.crm.passthrough.create(...)
@@ -35065,17 +35415,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import DataPassthroughRequest +from merge.resources.crm import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -35115,7 +35463,7 @@ client.crm.passthrough.create(
## Crm RegenerateKey -
client.crm.regenerate_key.create(...) -> RemoteKey +
client.crm.regenerate_key.create(...)
@@ -35143,13 +35491,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -35189,7 +35535,7 @@ client.crm.regenerate_key.create(
## Crm Stages -
client.crm.stages.list(...) -> PaginatedStageList +
client.crm.stages.list(...)
@@ -35216,25 +35562,32 @@ Returns a list of `Stage` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.stages.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -35253,7 +35606,7 @@ client.crm.stages.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -35261,7 +35614,7 @@ client.crm.stages.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -35309,7 +35662,7 @@ client.crm.stages.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -35317,7 +35670,7 @@ client.crm.stages.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -35353,7 +35706,7 @@ client.crm.stages.list(
-
client.crm.stages.retrieve(...) -> Stage +
client.crm.stages.retrieve(...)
@@ -35381,13 +35734,11 @@ Returns a `Stage` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.stages.retrieve( id="id", include_remote_data=True, @@ -35453,7 +35804,7 @@ client.crm.stages.retrieve(
-
client.crm.stages.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.stages.remote_field_classes_list(...)
@@ -35481,13 +35832,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.stages.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -35590,7 +35939,7 @@ client.crm.stages.remote_field_classes_list(
## Crm SyncStatus -
client.crm.sync_status.list(...) -> PaginatedSyncStatusList +
client.crm.sync_status.list(...)
@@ -35618,13 +35967,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -35673,7 +36020,7 @@ client.crm.sync_status.list(
## Crm ForceResync -
client.crm.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.crm.force_resync.sync_status_resync_create()
@@ -35701,13 +36048,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.force_resync.sync_status_resync_create() ``` @@ -35737,7 +36082,7 @@ client.crm.force_resync.sync_status_resync_create()
## Crm Tasks -
client.crm.tasks.list(...) -> PaginatedTaskList +
client.crm.tasks.list(...)
@@ -35764,25 +36109,32 @@ Returns a list of `Task` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -35801,7 +36153,7 @@ client.crm.tasks.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -35809,7 +36161,7 @@ client.crm.tasks.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -35825,7 +36177,11 @@ client.crm.tasks.list(
-**expand:** `typing.Optional[typing.Union[TasksListRequestExpandItem, typing.Sequence[TasksListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TasksListRequestExpandItem, typing.Sequence[TasksListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -35865,7 +36221,7 @@ client.crm.tasks.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -35873,7 +36229,7 @@ client.crm.tasks.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -35909,7 +36265,7 @@ client.crm.tasks.list(
-
client.crm.tasks.create(...) -> TaskResponse +
client.crm.tasks.create(...)
@@ -35937,14 +36293,12 @@ Creates a `Task` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import TaskRequest +from merge.resources.crm import TaskRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.create( is_debug_mode=True, run_async=True, @@ -36001,7 +36355,7 @@ client.crm.tasks.create(
-
client.crm.tasks.retrieve(...) -> Task +
client.crm.tasks.retrieve(...)
@@ -36029,13 +36383,11 @@ Returns a `Task` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.retrieve( id="id", include_remote_data=True, @@ -36065,7 +36417,12 @@ client.crm.tasks.retrieve(
-**expand:** `typing.Optional[typing.Union[TasksRetrieveRequestExpandItem, typing.Sequence[TasksRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TasksRetrieveRequestExpandItem, + typing.Sequence[TasksRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -36109,7 +36466,7 @@ client.crm.tasks.retrieve(
-
client.crm.tasks.partial_update(...) -> TaskResponse +
client.crm.tasks.partial_update(...)
@@ -36137,14 +36494,12 @@ Updates a `Task` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import PatchedTaskRequest +from merge.resources.crm import PatchedTaskRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.partial_update( id="id", is_debug_mode=True, @@ -36210,7 +36565,7 @@ client.crm.tasks.partial_update(
-
client.crm.tasks.meta_patch_retrieve(...) -> MetaResponse +
client.crm.tasks.meta_patch_retrieve(...)
@@ -36238,13 +36593,11 @@ Returns metadata for `Task` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.meta_patch_retrieve( id="id", ) @@ -36283,7 +36636,7 @@ client.crm.tasks.meta_patch_retrieve(
-
client.crm.tasks.meta_post_retrieve() -> MetaResponse +
client.crm.tasks.meta_post_retrieve()
@@ -36311,13 +36664,11 @@ Returns metadata for `Task` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.meta_post_retrieve() ``` @@ -36346,7 +36697,7 @@ client.crm.tasks.meta_post_retrieve()
-
client.crm.tasks.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.tasks.remote_field_classes_list(...)
@@ -36374,13 +36725,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.tasks.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -36483,7 +36832,7 @@ client.crm.tasks.remote_field_classes_list(
## Crm Users -
client.crm.users.list(...) -> PaginatedUserList +
client.crm.users.list(...)
@@ -36510,26 +36859,33 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email="email", include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -36548,7 +36904,7 @@ client.crm.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -36556,7 +36912,7 @@ client.crm.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -36612,7 +36968,7 @@ client.crm.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -36620,7 +36976,7 @@ client.crm.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -36656,7 +37012,7 @@ client.crm.users.list(
-
client.crm.users.retrieve(...) -> User +
client.crm.users.retrieve(...)
@@ -36684,13 +37040,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.users.retrieve( id="id", include_remote_data=True, @@ -36756,7 +37110,7 @@ client.crm.users.retrieve(
-
client.crm.users.ignore_create(...) +
client.crm.users.ignore_create(...)
@@ -36784,18 +37138,16 @@ Ignores a specific row based on the `model_id` in the url. These records will ha ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.crm import IgnoreCommonModelRequest +from merge.resources.crm import IgnoreCommonModelRequest, ReasonEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.users.ignore_create( model_id="model_id", request=IgnoreCommonModelRequest( - reason="GENERAL_CUSTOMER_REQUEST", + reason=ReasonEnum.GENERAL_CUSTOMER_REQUEST, ), ) @@ -36841,7 +37193,7 @@ client.crm.users.ignore_create(
-
client.crm.users.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.crm.users.remote_field_classes_list(...)
@@ -36869,13 +37221,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.users.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, @@ -36978,7 +37328,7 @@ client.crm.users.remote_field_classes_list(
## Crm WebhookReceivers -
client.crm.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.crm.webhook_receivers.list()
@@ -37006,13 +37356,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.webhook_receivers.list() ``` @@ -37041,7 +37389,7 @@ client.crm.webhook_receivers.list()
-
client.crm.webhook_receivers.create(...) -> WebhookReceiver +
client.crm.webhook_receivers.create(...)
@@ -37069,13 +37417,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.crm.webhook_receivers.create( event="event", is_active=True, @@ -37132,7 +37478,7 @@ client.crm.webhook_receivers.create(
## Hris AccountDetails -
client.hris.account_details.retrieve() -> AccountDetails +
client.hris.account_details.retrieve()
@@ -37160,13 +37506,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.account_details.retrieve() ``` @@ -37196,7 +37540,7 @@ client.hris.account_details.retrieve()
## Hris AccountToken -
client.hris.account_token.retrieve(...) -> AccountToken +
client.hris.account_token.retrieve(...)
@@ -37224,13 +37568,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.account_token.retrieve( public_token="public_token", ) @@ -37269,7 +37611,7 @@ client.hris.account_token.retrieve(
-
client.hris.account_token.regenerate_create() -> RegenerateAccountToken +
client.hris.account_token.regenerate_create()
@@ -37297,13 +37639,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.account_token.regenerate_create() ``` @@ -37333,7 +37673,7 @@ client.hris.account_token.regenerate_create()
## Hris AsyncPassthrough -
client.hris.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.hris.async_passthrough.create(...)
@@ -37361,17 +37701,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import DataPassthroughRequest +from merge.resources.hris import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -37410,7 +37748,7 @@ client.hris.async_passthrough.create(
-
client.hris.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.hris.async_passthrough.retrieve(...)
@@ -37438,13 +37776,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -37484,7 +37820,7 @@ client.hris.async_passthrough.retrieve(
## Hris AuditTrail -
client.hris.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.hris.audit_trail.list(...)
@@ -37512,13 +37848,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -37603,7 +37937,7 @@ client.hris.audit_trail.list(
## Hris AvailableActions -
client.hris.available_actions.retrieve() -> AvailableActions +
client.hris.available_actions.retrieve()
@@ -37631,13 +37965,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.available_actions.retrieve() ``` @@ -37667,7 +37999,7 @@ client.hris.available_actions.retrieve()
## Hris BankInfo -
client.hris.bank_info.list(...) -> PaginatedBankInfoList +
client.hris.bank_info.list(...)
@@ -37694,32 +38026,41 @@ Returns a list of `BankInfo` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.bank_info import ( + BankInfoListRequestAccountType, + BankInfoListRequestOrderBy, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.bank_info.list( - account_type="CHECKING", + account_type=BankInfoListRequestAccountType.CHECKING, bank_name="bank_name", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - order_by="-remote_created_at", + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + order_by=BankInfoListRequestOrderBy.REMOTE_CREATED_AT_DESCENDING, page_size=1, - remote_fields="account_type", remote_id="remote_id", - show_enum_origins="account_type", ) ``` @@ -37757,7 +38098,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -37765,7 +38106,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -37789,7 +38130,11 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -37821,7 +38166,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -37829,7 +38174,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -37853,7 +38198,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["account_type"]]` — Deprecated. Use show_enum_origins.
@@ -37869,7 +38214,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["account_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -37889,7 +38234,7 @@ If provided, will only return BankInfo's with this account type. Options: ('SAVI
-
client.hris.bank_info.retrieve(...) -> BankInfo +
client.hris.bank_info.retrieve(...)
@@ -37917,19 +38262,15 @@ Returns a `BankInfo` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.bank_info.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="account_type", - show_enum_origins="account_type", ) ``` @@ -37954,7 +38295,11 @@ client.hris.bank_info.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -37978,7 +38323,7 @@ client.hris.bank_info.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["account_type"]]` — Deprecated. Use show_enum_origins.
@@ -37986,7 +38331,7 @@ client.hris.bank_info.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["account_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -38007,7 +38352,7 @@ client.hris.bank_info.retrieve(
## Hris Benefits -
client.hris.benefits.list(...) -> PaginatedBenefitList +
client.hris.benefits.list(...)
@@ -38034,25 +38379,32 @@ Returns a list of `Benefit` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.benefits.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -38071,7 +38423,7 @@ client.hris.benefits.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -38079,7 +38431,7 @@ client.hris.benefits.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -38103,7 +38455,11 @@ client.hris.benefits.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -38135,7 +38491,7 @@ client.hris.benefits.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -38143,7 +38499,7 @@ client.hris.benefits.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -38179,7 +38535,7 @@ client.hris.benefits.list(
-
client.hris.benefits.retrieve(...) -> Benefit +
client.hris.benefits.retrieve(...)
@@ -38207,13 +38563,11 @@ Returns a `Benefit` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.benefits.retrieve( id="id", include_remote_data=True, @@ -38242,7 +38596,11 @@ client.hris.benefits.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -38279,7 +38637,7 @@ client.hris.benefits.retrieve(
## Hris Companies -
client.hris.companies.list(...) -> PaginatedCompanyList +
client.hris.companies.list(...)
@@ -38306,24 +38664,31 @@ Returns a list of `Company` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.companies.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -38342,7 +38707,7 @@ client.hris.companies.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -38350,7 +38715,7 @@ client.hris.companies.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -38390,7 +38755,7 @@ client.hris.companies.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -38398,7 +38763,7 @@ client.hris.companies.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -38434,7 +38799,7 @@ client.hris.companies.list(
-
client.hris.companies.retrieve(...) -> Company +
client.hris.companies.retrieve(...)
@@ -38462,13 +38827,11 @@ Returns a `Company` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.companies.retrieve( id="id", include_remote_data=True, @@ -38526,7 +38889,7 @@ client.hris.companies.retrieve(
## Hris Scopes -
client.hris.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.hris.scopes.default_scopes_retrieve()
@@ -38554,13 +38917,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.scopes.default_scopes_retrieve() ``` @@ -38589,7 +38950,7 @@ client.hris.scopes.default_scopes_retrieve()
-
client.hris.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.hris.scopes.linked_account_scopes_retrieve()
@@ -38617,13 +38978,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.scopes.linked_account_scopes_retrieve() ``` @@ -38652,7 +39011,7 @@ client.hris.scopes.linked_account_scopes_retrieve()
-
client.hris.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.hris.scopes.linked_account_scopes_create(...)
@@ -38680,14 +39039,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.hris import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -38698,16 +39059,11 @@ client.hris.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -38717,7 +39073,7 @@ client.hris.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -38735,7 +39091,7 @@ client.hris.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -38756,7 +39112,7 @@ client.hris.scopes.linked_account_scopes_create(
## Hris DeleteAccount -
client.hris.delete_account.delete() +
client.hris.delete_account.delete()
@@ -38784,13 +39140,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.delete_account.delete() ``` @@ -38820,7 +39174,7 @@ client.hris.delete_account.delete()
## Hris Dependents -
client.hris.dependents.list(...) -> PaginatedDependentList +
client.hris.dependents.list(...)
@@ -38847,26 +39201,33 @@ Returns a list of `Dependent` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.dependents.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", include_deleted_data=True, include_remote_data=True, include_sensitive_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -38885,7 +39246,7 @@ client.hris.dependents.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -38893,7 +39254,7 @@ client.hris.dependents.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -38949,7 +39310,7 @@ client.hris.dependents.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -38957,7 +39318,7 @@ client.hris.dependents.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -38993,7 +39354,7 @@ client.hris.dependents.list(
-
client.hris.dependents.retrieve(...) -> Dependent +
client.hris.dependents.retrieve(...)
@@ -39021,13 +39382,11 @@ Returns a `Dependent` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.dependents.retrieve( id="id", include_remote_data=True, @@ -39094,7 +39453,7 @@ client.hris.dependents.retrieve(
## Hris EmployeePayrollRuns -
client.hris.employee_payroll_runs.list(...) -> PaginatedEmployeePayrollRunList +
client.hris.employee_payroll_runs.list(...)
@@ -39121,32 +39480,47 @@ Returns a list of `EmployeePayrollRun` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employee_payroll_runs.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", - ended_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - ended_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + ended_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + ended_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, payroll_run_id="payroll_run_id", remote_id="remote_id", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -39163,7 +39537,7 @@ client.hris.employee_payroll_runs.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -39171,7 +39545,7 @@ client.hris.employee_payroll_runs.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -39195,7 +39569,7 @@ client.hris.employee_payroll_runs.list(
-**ended_after:** `typing.Optional[datetime.datetime]` — If provided, will only return employee payroll runs ended after this datetime. +**ended_after:** `typing.Optional[dt.datetime]` — If provided, will only return employee payroll runs ended after this datetime.
@@ -39203,7 +39577,7 @@ client.hris.employee_payroll_runs.list(
-**ended_before:** `typing.Optional[datetime.datetime]` — If provided, will only return employee payroll runs ended before this datetime. +**ended_before:** `typing.Optional[dt.datetime]` — If provided, will only return employee payroll runs ended before this datetime.
@@ -39211,7 +39585,12 @@ client.hris.employee_payroll_runs.list(
-**expand:** `typing.Optional[typing.Union[EmployeePayrollRunsListRequestExpandItem, typing.Sequence[EmployeePayrollRunsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmployeePayrollRunsListRequestExpandItem, + typing.Sequence[EmployeePayrollRunsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -39243,7 +39622,7 @@ client.hris.employee_payroll_runs.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -39251,7 +39630,7 @@ client.hris.employee_payroll_runs.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -39283,7 +39662,7 @@ client.hris.employee_payroll_runs.list(
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return employee payroll runs started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return employee payroll runs started after this datetime.
@@ -39291,7 +39670,7 @@ client.hris.employee_payroll_runs.list(
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return employee payroll runs started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return employee payroll runs started before this datetime.
@@ -39311,7 +39690,7 @@ client.hris.employee_payroll_runs.list(
-
client.hris.employee_payroll_runs.retrieve(...) -> EmployeePayrollRun +
client.hris.employee_payroll_runs.retrieve(...)
@@ -39339,13 +39718,11 @@ Returns an `EmployeePayrollRun` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employee_payroll_runs.retrieve( id="id", include_remote_data=True, @@ -39374,7 +39751,12 @@ client.hris.employee_payroll_runs.retrieve(
-**expand:** `typing.Optional[typing.Union[EmployeePayrollRunsRetrieveRequestExpandItem, typing.Sequence[EmployeePayrollRunsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmployeePayrollRunsRetrieveRequestExpandItem, + typing.Sequence[EmployeePayrollRunsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -39411,7 +39793,7 @@ client.hris.employee_payroll_runs.retrieve(
## Hris Employees -
client.hris.employees.list(...) -> PaginatedEmployeeList +
client.hris.employees.list(...)
@@ -39438,23 +39820,31 @@ Returns a list of `Employee` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.employees import ( + EmployeesListRequestEmploymentStatus, + EmployeesListRequestRemoteFields, + EmployeesListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.employees.list( company_id="company_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", display_full_name="display_full_name", employee_number="employee_number", - employment_status="ACTIVE", + employment_status=EmployeesListRequestEmploymentStatus.ACTIVE, employment_type="employment_type", first_name="first_name", groups="groups", @@ -39466,19 +39856,31 @@ client.hris.employees.list( job_title="job_title", last_name="last_name", manager_id="manager_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, pay_group_id="pay_group_id", personal_email="personal_email", - remote_fields="employment_status", + remote_fields=EmployeesListRequestRemoteFields.EMPLOYMENT_STATUS, remote_id="remote_id", - show_enum_origins="employment_status", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + show_enum_origins=EmployeesListRequestShowEnumOrigins.EMPLOYMENT_STATUS, + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), team_id="team_id", - terminated_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - terminated_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + terminated_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + terminated_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), work_email="work_email", work_location_id="work_location_id", ) @@ -39505,7 +39907,7 @@ client.hris.employees.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -39513,7 +39915,7 @@ client.hris.employees.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -39567,7 +39969,12 @@ If provided, will only return employees with this employment status.
-**expand:** `typing.Optional[typing.Union[EmployeesListRequestExpandItem, typing.Sequence[EmployeesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmployeesListRequestExpandItem, + typing.Sequence[EmployeesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -39655,7 +40062,7 @@ If provided, will only return employees with this employment status.
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -39663,7 +40070,7 @@ If provided, will only return employees with this employment status.
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -39719,7 +40126,7 @@ If provided, will only return employees with this employment status.
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return employees that started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return employees that started after this datetime.
@@ -39727,7 +40134,7 @@ If provided, will only return employees with this employment status.
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return employees that started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return employees that started before this datetime.
@@ -39743,7 +40150,7 @@ If provided, will only return employees with this employment status.
-**terminated_after:** `typing.Optional[datetime.datetime]` — If provided, will only return employees that were terminated after this datetime. +**terminated_after:** `typing.Optional[dt.datetime]` — If provided, will only return employees that were terminated after this datetime.
@@ -39751,7 +40158,7 @@ If provided, will only return employees with this employment status.
-**terminated_before:** `typing.Optional[datetime.datetime]` — If provided, will only return employees that were terminated before this datetime. +**terminated_before:** `typing.Optional[dt.datetime]` — If provided, will only return employees that were terminated before this datetime.
@@ -39787,7 +40194,7 @@ If provided, will only return employees with this employment status.
-
client.hris.employees.create(...) -> EmployeeResponse +
client.hris.employees.create(...)
@@ -39815,14 +40222,12 @@ Creates an `Employee` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import EmployeeRequest +from merge.resources.hris import EmployeeRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employees.create( is_debug_mode=True, run_async=True, @@ -39879,7 +40284,7 @@ client.hris.employees.create(
-
client.hris.employees.retrieve(...) -> Employee +
client.hris.employees.retrieve(...)
@@ -39907,20 +40312,22 @@ Returns an `Employee` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.employees import ( + EmployeesRetrieveRequestRemoteFields, + EmployeesRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employees.retrieve( id="id", include_remote_data=True, include_sensitive_fields=True, include_shell_data=True, - remote_fields="employment_status", - show_enum_origins="employment_status", + remote_fields=EmployeesRetrieveRequestRemoteFields.EMPLOYMENT_STATUS, + show_enum_origins=EmployeesRetrieveRequestShowEnumOrigins.EMPLOYMENT_STATUS, ) ``` @@ -39945,7 +40352,12 @@ client.hris.employees.retrieve(
-**expand:** `typing.Optional[typing.Union[EmployeesRetrieveRequestExpandItem, typing.Sequence[EmployeesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmployeesRetrieveRequestExpandItem, + typing.Sequence[EmployeesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -40005,7 +40417,7 @@ client.hris.employees.retrieve(
-
client.hris.employees.ignore_create(...) +
client.hris.employees.ignore_create(...)
@@ -40033,18 +40445,16 @@ Ignores a specific row based on the `model_id` in the url. These records will ha ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import IgnoreCommonModelRequest +from merge.resources.hris import IgnoreCommonModelRequest, ReasonEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employees.ignore_create( model_id="model_id", request=IgnoreCommonModelRequest( - reason="GENERAL_CUSTOMER_REQUEST", + reason=ReasonEnum.GENERAL_CUSTOMER_REQUEST, ), ) @@ -40090,7 +40500,7 @@ client.hris.employees.ignore_create(
-
client.hris.employees.meta_post_retrieve() -> MetaResponse +
client.hris.employees.meta_post_retrieve()
@@ -40118,13 +40528,11 @@ Returns metadata for `Employee` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employees.meta_post_retrieve() ``` @@ -40154,7 +40562,7 @@ client.hris.employees.meta_post_retrieve()
## Hris EmployerBenefits -
client.hris.employer_benefits.list(...) -> PaginatedEmployerBenefitList +
client.hris.employer_benefits.list(...)
@@ -40181,24 +40589,31 @@ Returns a list of `EmployerBenefit` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employer_benefits.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -40217,7 +40632,7 @@ client.hris.employer_benefits.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -40225,7 +40640,7 @@ client.hris.employer_benefits.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -40265,7 +40680,7 @@ client.hris.employer_benefits.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -40273,7 +40688,7 @@ client.hris.employer_benefits.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -40309,7 +40724,7 @@ client.hris.employer_benefits.list(
-
client.hris.employer_benefits.retrieve(...) -> EmployerBenefit +
client.hris.employer_benefits.retrieve(...)
@@ -40337,13 +40752,11 @@ Returns an `EmployerBenefit` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employer_benefits.retrieve( id="id", include_remote_data=True, @@ -40401,7 +40814,7 @@ client.hris.employer_benefits.retrieve(
## Hris Employments -
client.hris.employments.list(...) -> PaginatedEmploymentList +
client.hris.employments.list(...)
@@ -40428,30 +40841,42 @@ Returns a list of `Employment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.employments import ( + EmploymentsListRequestOrderBy, + EmploymentsListRequestRemoteFields, + EmploymentsListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.employments.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - order_by="-effective_date", + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + order_by=EmploymentsListRequestOrderBy.EFFECTIVE_DATE_DESCENDING, page_size=1, - remote_fields="employment_type", + remote_fields=EmploymentsListRequestRemoteFields.EMPLOYMENT_TYPE, remote_id="remote_id", - show_enum_origins="employment_type", + show_enum_origins=EmploymentsListRequestShowEnumOrigins.EMPLOYMENT_TYPE, ) ``` @@ -40468,7 +40893,7 @@ client.hris.employments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -40476,7 +40901,7 @@ client.hris.employments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -40500,7 +40925,12 @@ client.hris.employments.list(
-**expand:** `typing.Optional[typing.Union[EmploymentsListRequestExpandItem, typing.Sequence[EmploymentsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmploymentsListRequestExpandItem, + typing.Sequence[EmploymentsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -40532,7 +40962,7 @@ client.hris.employments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -40540,7 +40970,7 @@ client.hris.employments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -40600,7 +41030,7 @@ client.hris.employments.list(
-
client.hris.employments.retrieve(...) -> Employment +
client.hris.employments.retrieve(...)
@@ -40628,19 +41058,21 @@ Returns an `Employment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.employments import ( + EmploymentsRetrieveRequestRemoteFields, + EmploymentsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.employments.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="employment_type", - show_enum_origins="employment_type", + remote_fields=EmploymentsRetrieveRequestRemoteFields.EMPLOYMENT_TYPE, + show_enum_origins=EmploymentsRetrieveRequestShowEnumOrigins.EMPLOYMENT_TYPE, ) ``` @@ -40665,7 +41097,12 @@ client.hris.employments.retrieve(
-**expand:** `typing.Optional[typing.Union[EmploymentsRetrieveRequestExpandItem, typing.Sequence[EmploymentsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmploymentsRetrieveRequestExpandItem, + typing.Sequence[EmploymentsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -40718,7 +41155,7 @@ client.hris.employments.retrieve(
## Hris FieldMapping -
client.hris.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.hris.field_mapping.field_mappings_retrieve(...)
@@ -40746,13 +41183,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -40791,7 +41226,7 @@ client.hris.field_mapping.field_mappings_retrieve(
-
client.hris.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.hris.field_mapping.field_mappings_create(...)
@@ -40819,20 +41254,16 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -40868,7 +41299,7 @@ client.hris.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -40928,7 +41359,7 @@ client.hris.field_mapping.field_mappings_create(
-
client.hris.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.hris.field_mapping.field_mappings_destroy(...)
@@ -40956,13 +41387,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -41001,7 +41430,7 @@ client.hris.field_mapping.field_mappings_destroy(
-
client.hris.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.hris.field_mapping.field_mappings_partial_update(...)
@@ -41029,13 +41458,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -41071,7 +41498,7 @@ client.hris.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -41115,7 +41542,7 @@ client.hris.field_mapping.field_mappings_partial_update(
-
client.hris.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.hris.field_mapping.remote_fields_retrieve(...)
@@ -41143,13 +41570,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -41197,7 +41622,7 @@ client.hris.field_mapping.remote_fields_retrieve(
-
client.hris.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.hris.field_mapping.target_fields_retrieve()
@@ -41225,13 +41650,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.field_mapping.target_fields_retrieve() ``` @@ -41261,7 +41684,7 @@ client.hris.field_mapping.target_fields_retrieve()
## Hris GenerateKey -
client.hris.generate_key.create(...) -> RemoteKey +
client.hris.generate_key.create(...)
@@ -41289,13 +41712,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.generate_key.create( name="Remote Deployment Key 1", ) @@ -41335,7 +41756,7 @@ client.hris.generate_key.create(
## Hris Groups -
client.hris.groups.list(...) -> PaginatedGroupList +
client.hris.groups.list(...)
@@ -41362,30 +41783,35 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, is_commonly_used_as_team="is_commonly_used_as_team", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), names="names", page_size=1, - remote_fields="type", remote_id="remote_id", - show_enum_origins="type", types="types", ) @@ -41403,7 +41829,7 @@ client.hris.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -41411,7 +41837,7 @@ client.hris.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -41459,7 +41885,7 @@ client.hris.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -41467,7 +41893,7 @@ client.hris.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -41491,7 +41917,7 @@ client.hris.groups.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -41507,7 +41933,7 @@ client.hris.groups.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -41535,7 +41961,7 @@ client.hris.groups.list(
-
client.hris.groups.retrieve(...) -> Group +
client.hris.groups.retrieve(...)
@@ -41563,19 +41989,15 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.groups.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="type", - show_enum_origins="type", ) ``` @@ -41616,7 +42038,7 @@ client.hris.groups.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -41624,7 +42046,7 @@ client.hris.groups.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -41644,7 +42066,7 @@ client.hris.groups.retrieve(
-
client.hris.groups.types_list(...) -> GroupsTypesListResponse +
client.hris.groups.types_list(...)
@@ -41672,13 +42094,11 @@ Returns a list of distinct group type values from the Groups common model. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.groups.types_list( include_deleted_data=True, show_enum_origins="show_enum_origins", @@ -41727,7 +42147,7 @@ client.hris.groups.types_list(
## Hris Issues -
client.hris.issues.list(...) -> PaginatedIssueList +
client.hris.issues.list(...)
@@ -41754,30 +42174,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.hris.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -41826,7 +42254,7 @@ client.hris.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -41834,7 +42262,7 @@ client.hris.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -41858,7 +42286,7 @@ client.hris.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -41866,7 +42294,7 @@ client.hris.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -41923,7 +42351,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.hris.issues.retrieve(...) -> Issue +
client.hris.issues.retrieve(...)
@@ -41951,13 +42379,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.issues.retrieve( id="id", ) @@ -41997,7 +42423,7 @@ client.hris.issues.retrieve(
## Hris LinkToken -
client.hris.link_token.create(...) -> LinkToken +
client.hris.link_token.create(...)
@@ -42025,21 +42451,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -42080,7 +42502,7 @@ client.hris.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -42120,7 +42542,7 @@ client.hris.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -42128,7 +42550,14 @@ client.hris.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -42157,7 +42586,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -42186,7 +42615,7 @@ The following subset of IETF language tags can be used to configure localization
## Hris LinkedAccounts -
client.hris.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.hris.linked_accounts.list(...)
@@ -42214,15 +42643,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -42378,7 +42808,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing`
## Hris Locations -
client.hris.locations.list(...) -> PaginatedLocationList +
client.hris.locations.list(...)
@@ -42405,29 +42835,41 @@ Returns a list of `Location` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.locations import ( + LocationsListRequestLocationType, + LocationsListRequestRemoteFields, + LocationsListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.locations.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - location_type="HOME", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + location_type=LocationsListRequestLocationType.HOME, + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="country", + remote_fields=LocationsListRequestRemoteFields.COUNTRY, remote_id="remote_id", - show_enum_origins="country", + show_enum_origins=LocationsListRequestShowEnumOrigins.COUNTRY, ) ``` @@ -42444,7 +42886,7 @@ client.hris.locations.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -42452,7 +42894,7 @@ client.hris.locations.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -42505,7 +42947,7 @@ If provided, will only return locations with this location type
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -42513,7 +42955,7 @@ If provided, will only return locations with this location type
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -42565,7 +43007,7 @@ If provided, will only return locations with this location type
-
client.hris.locations.retrieve(...) -> Location +
client.hris.locations.retrieve(...)
@@ -42593,19 +43035,21 @@ Returns a `Location` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.locations import ( + LocationsRetrieveRequestRemoteFields, + LocationsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.locations.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="country", - show_enum_origins="country", + remote_fields=LocationsRetrieveRequestRemoteFields.COUNTRY, + show_enum_origins=LocationsRetrieveRequestShowEnumOrigins.COUNTRY, ) ``` @@ -42675,7 +43119,7 @@ client.hris.locations.retrieve(
## Hris Passthrough -
client.hris.passthrough.create(...) -> RemoteResponse +
client.hris.passthrough.create(...)
@@ -42703,17 +43147,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import DataPassthroughRequest +from merge.resources.hris import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -42753,7 +43195,7 @@ client.hris.passthrough.create(
## Hris PayGroups -
client.hris.pay_groups.list(...) -> PaginatedPayGroupList +
client.hris.pay_groups.list(...)
@@ -42780,24 +43222,31 @@ Returns a list of `PayGroup` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.pay_groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -42816,7 +43265,7 @@ client.hris.pay_groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -42824,7 +43273,7 @@ client.hris.pay_groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -42864,7 +43313,7 @@ client.hris.pay_groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -42872,7 +43321,7 @@ client.hris.pay_groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -42908,7 +43357,7 @@ client.hris.pay_groups.list(
-
client.hris.pay_groups.retrieve(...) -> PayGroup +
client.hris.pay_groups.retrieve(...)
@@ -42936,13 +43385,11 @@ Returns a `PayGroup` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.pay_groups.retrieve( id="id", include_remote_data=True, @@ -43000,7 +43447,7 @@ client.hris.pay_groups.retrieve(
## Hris PayrollRuns -
client.hris.payroll_runs.list(...) -> PaginatedPayrollRunList +
client.hris.payroll_runs.list(...)
@@ -43027,33 +43474,53 @@ Returns a list of `PayrollRun` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.payroll_runs import ( + PayrollRunsListRequestRemoteFields, + PayrollRunsListRequestRunType, + PayrollRunsListRequestShowEnumOrigins, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.payroll_runs.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", - ended_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - ended_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + ended_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + ended_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="run_state", + remote_fields=PayrollRunsListRequestRemoteFields.RUN_STATE, remote_id="remote_id", - run_type="CORRECTION", - show_enum_origins="run_state", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + run_type=PayrollRunsListRequestRunType.CORRECTION, + show_enum_origins=PayrollRunsListRequestShowEnumOrigins.RUN_STATE, + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -43070,7 +43537,7 @@ client.hris.payroll_runs.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -43078,7 +43545,7 @@ client.hris.payroll_runs.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -43094,7 +43561,7 @@ client.hris.payroll_runs.list(
-**ended_after:** `typing.Optional[datetime.datetime]` — If provided, will only return payroll runs ended after this datetime. +**ended_after:** `typing.Optional[dt.datetime]` — If provided, will only return payroll runs ended after this datetime.
@@ -43102,7 +43569,7 @@ client.hris.payroll_runs.list(
-**ended_before:** `typing.Optional[datetime.datetime]` — If provided, will only return payroll runs ended before this datetime. +**ended_before:** `typing.Optional[dt.datetime]` — If provided, will only return payroll runs ended before this datetime.
@@ -43134,7 +43601,7 @@ client.hris.payroll_runs.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -43142,7 +43609,7 @@ client.hris.payroll_runs.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -43198,7 +43665,7 @@ If provided, will only return PayrollRun's with this status. Options: ('REGULAR'
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return payroll runs started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return payroll runs started after this datetime.
@@ -43206,7 +43673,7 @@ If provided, will only return PayrollRun's with this status. Options: ('REGULAR'
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return payroll runs started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return payroll runs started before this datetime.
@@ -43226,7 +43693,7 @@ If provided, will only return PayrollRun's with this status. Options: ('REGULAR'
-
client.hris.payroll_runs.retrieve(...) -> PayrollRun +
client.hris.payroll_runs.retrieve(...)
@@ -43254,19 +43721,21 @@ Returns a `PayrollRun` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.payroll_runs import ( + PayrollRunsRetrieveRequestRemoteFields, + PayrollRunsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.payroll_runs.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="run_state", - show_enum_origins="run_state", + remote_fields=PayrollRunsRetrieveRequestRemoteFields.RUN_STATE, + show_enum_origins=PayrollRunsRetrieveRequestShowEnumOrigins.RUN_STATE, ) ``` @@ -43336,7 +43805,7 @@ client.hris.payroll_runs.retrieve(
## Hris RegenerateKey -
client.hris.regenerate_key.create(...) -> RemoteKey +
client.hris.regenerate_key.create(...)
@@ -43364,13 +43833,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -43410,7 +43877,7 @@ client.hris.regenerate_key.create(
## Hris SyncStatus -
client.hris.sync_status.list(...) -> PaginatedSyncStatusList +
client.hris.sync_status.list(...)
@@ -43438,13 +43905,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -43493,7 +43958,7 @@ client.hris.sync_status.list(
## Hris ForceResync -
client.hris.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.hris.force_resync.sync_status_resync_create()
@@ -43521,13 +43986,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.force_resync.sync_status_resync_create() ``` @@ -43557,7 +44020,7 @@ client.hris.force_resync.sync_status_resync_create()
## Hris Teams -
client.hris.teams.list(...) -> PaginatedTeamList +
client.hris.teams.list(...)
@@ -43584,24 +44047,31 @@ Returns a list of `Team` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.teams.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, parent_team_id="parent_team_id", remote_id="remote_id", @@ -43621,7 +44091,7 @@ client.hris.teams.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -43629,7 +44099,7 @@ client.hris.teams.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -43645,7 +44115,12 @@ client.hris.teams.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["parent_team"], + typing.Sequence[typing.Literal["parent_team"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -43677,7 +44152,7 @@ client.hris.teams.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -43685,7 +44160,7 @@ client.hris.teams.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -43729,7 +44204,7 @@ client.hris.teams.list(
-
client.hris.teams.retrieve(...) -> Team +
client.hris.teams.retrieve(...)
@@ -43757,13 +44232,11 @@ Returns a `Team` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.teams.retrieve( id="id", include_remote_data=True, @@ -43792,7 +44265,12 @@ client.hris.teams.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["parent_team"], + typing.Sequence[typing.Literal["parent_team"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -43829,7 +44307,7 @@ client.hris.teams.retrieve(
## Hris TimeOff -
client.hris.time_off.list(...) -> PaginatedTimeOffList +
client.hris.time_off.list(...)
@@ -43856,36 +44334,57 @@ Returns a list of `TimeOff` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.time_off import ( + TimeOffListRequestRemoteFields, + TimeOffListRequestRequestType, + TimeOffListRequestShowEnumOrigins, + TimeOffListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.time_off.list( approver_id="approver_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", - ended_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - ended_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + ended_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + ended_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="request_type", + remote_fields=TimeOffListRequestRemoteFields.REQUEST_TYPE, remote_id="remote_id", - request_type="BEREAVEMENT", - show_enum_origins="request_type", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - status="APPROVED", + request_type=TimeOffListRequestRequestType.BEREAVEMENT, + show_enum_origins=TimeOffListRequestShowEnumOrigins.REQUEST_TYPE, + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + status=TimeOffListRequestStatus.APPROVED, ) ``` @@ -43910,7 +44409,7 @@ client.hris.time_off.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -43918,7 +44417,7 @@ client.hris.time_off.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -43942,7 +44441,7 @@ client.hris.time_off.list(
-**ended_after:** `typing.Optional[datetime.datetime]` — If provided, will only return employees that ended after this datetime. +**ended_after:** `typing.Optional[dt.datetime]` — If provided, will only return employees that ended after this datetime.
@@ -43950,7 +44449,7 @@ client.hris.time_off.list(
-**ended_before:** `typing.Optional[datetime.datetime]` — If provided, will only return time-offs that ended before this datetime. +**ended_before:** `typing.Optional[dt.datetime]` — If provided, will only return time-offs that ended before this datetime.
@@ -43958,7 +44457,12 @@ client.hris.time_off.list(
-**expand:** `typing.Optional[typing.Union[TimeOffListRequestExpandItem, typing.Sequence[TimeOffListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TimeOffListRequestExpandItem, + typing.Sequence[TimeOffListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -43990,7 +44494,7 @@ client.hris.time_off.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -43998,7 +44502,7 @@ client.hris.time_off.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -44055,7 +44559,7 @@ If provided, will only return TimeOff with this request type. Options: ('VACATIO
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return time-offs that started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return time-offs that started after this datetime.
@@ -44063,7 +44567,7 @@ If provided, will only return TimeOff with this request type. Options: ('VACATIO
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return time-offs that started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return time-offs that started before this datetime.
@@ -44099,7 +44603,7 @@ If provided, will only return TimeOff with this status. Options: ('REQUESTED', '
-
client.hris.time_off.create(...) -> TimeOffResponse +
client.hris.time_off.create(...)
@@ -44127,14 +44631,12 @@ Creates a `TimeOff` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import TimeOffRequest +from merge.resources.hris import TimeOffRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.time_off.create( is_debug_mode=True, run_async=True, @@ -44191,7 +44693,7 @@ client.hris.time_off.create(
-
client.hris.time_off.retrieve(...) -> TimeOff +
client.hris.time_off.retrieve(...)
@@ -44219,19 +44721,21 @@ Returns a `TimeOff` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.hris.resources.time_off import ( + TimeOffRetrieveRequestRemoteFields, + TimeOffRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.time_off.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="request_type", - show_enum_origins="request_type", + remote_fields=TimeOffRetrieveRequestRemoteFields.REQUEST_TYPE, + show_enum_origins=TimeOffRetrieveRequestShowEnumOrigins.REQUEST_TYPE, ) ``` @@ -44256,7 +44760,12 @@ client.hris.time_off.retrieve(
-**expand:** `typing.Optional[typing.Union[TimeOffRetrieveRequestExpandItem, typing.Sequence[TimeOffRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TimeOffRetrieveRequestExpandItem, + typing.Sequence[TimeOffRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -44308,7 +44817,7 @@ client.hris.time_off.retrieve(
-
client.hris.time_off.meta_post_retrieve() -> MetaResponse +
client.hris.time_off.meta_post_retrieve()
@@ -44336,13 +44845,11 @@ Returns metadata for `TimeOff` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.time_off.meta_post_retrieve() ``` @@ -44372,7 +44879,7 @@ client.hris.time_off.meta_post_retrieve()
## Hris TimeOffBalances -
client.hris.time_off_balances.list(...) -> PaginatedTimeOffBalanceList +
client.hris.time_off_balances.list(...)
@@ -44399,30 +44906,38 @@ Returns a list of `TimeOffBalance` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.time_off_balances import ( + TimeOffBalancesListRequestPolicyType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.time_off_balances.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - policy_type="BEREAVEMENT", - remote_fields="policy_type", + policy_type=TimeOffBalancesListRequestPolicyType.BEREAVEMENT, remote_id="remote_id", - show_enum_origins="policy_type", ) ``` @@ -44439,7 +44954,7 @@ client.hris.time_off_balances.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -44447,7 +44962,7 @@ client.hris.time_off_balances.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -44471,7 +44986,11 @@ client.hris.time_off_balances.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -44503,7 +45022,7 @@ client.hris.time_off_balances.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -44511,7 +45030,7 @@ client.hris.time_off_balances.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -44544,7 +45063,7 @@ If provided, will only return TimeOffBalance with this policy type. Options: ('V
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["policy_type"]]` — Deprecated. Use show_enum_origins.
@@ -44560,7 +45079,7 @@ If provided, will only return TimeOffBalance with this policy type. Options: ('V
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["policy_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -44580,7 +45099,7 @@ If provided, will only return TimeOffBalance with this policy type. Options: ('V
-
client.hris.time_off_balances.retrieve(...) -> TimeOffBalance +
client.hris.time_off_balances.retrieve(...)
@@ -44608,19 +45127,15 @@ Returns a `TimeOffBalance` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.time_off_balances.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="policy_type", - show_enum_origins="policy_type", ) ``` @@ -44645,7 +45160,11 @@ client.hris.time_off_balances.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -44669,7 +45188,7 @@ client.hris.time_off_balances.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["policy_type"]]` — Deprecated. Use show_enum_origins.
@@ -44677,7 +45196,7 @@ client.hris.time_off_balances.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["policy_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -44698,7 +45217,7 @@ client.hris.time_off_balances.retrieve(
## Hris TimesheetEntries -
client.hris.timesheet_entries.list(...) -> PaginatedTimesheetEntryList +
client.hris.timesheet_entries.list(...)
@@ -44725,32 +45244,50 @@ Returns a list of `TimesheetEntry` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.hris.resources.timesheet_entries import ( + TimesheetEntriesListRequestOrderBy, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.hris.timesheet_entries.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", employee_id="employee_id", - ended_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - ended_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + ended_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + ended_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - order_by="-start_time", + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + order_by=TimesheetEntriesListRequestOrderBy.START_TIME_DESCENDING, page_size=1, remote_id="remote_id", - started_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - started_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + started_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + started_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -44767,7 +45304,7 @@ client.hris.timesheet_entries.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -44775,7 +45312,7 @@ client.hris.timesheet_entries.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -44799,7 +45336,7 @@ client.hris.timesheet_entries.list(
-**ended_after:** `typing.Optional[datetime.datetime]` — If provided, will only return timesheet entries ended after this datetime. +**ended_after:** `typing.Optional[dt.datetime]` — If provided, will only return timesheet entries ended after this datetime.
@@ -44807,7 +45344,7 @@ client.hris.timesheet_entries.list(
-**ended_before:** `typing.Optional[datetime.datetime]` — If provided, will only return timesheet entries ended before this datetime. +**ended_before:** `typing.Optional[dt.datetime]` — If provided, will only return timesheet entries ended before this datetime.
@@ -44815,7 +45352,11 @@ client.hris.timesheet_entries.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -44847,7 +45388,7 @@ client.hris.timesheet_entries.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -44855,7 +45396,7 @@ client.hris.timesheet_entries.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -44887,7 +45428,7 @@ client.hris.timesheet_entries.list(
-**started_after:** `typing.Optional[datetime.datetime]` — If provided, will only return timesheet entries started after this datetime. +**started_after:** `typing.Optional[dt.datetime]` — If provided, will only return timesheet entries started after this datetime.
@@ -44895,7 +45436,7 @@ client.hris.timesheet_entries.list(
-**started_before:** `typing.Optional[datetime.datetime]` — If provided, will only return timesheet entries started before this datetime. +**started_before:** `typing.Optional[dt.datetime]` — If provided, will only return timesheet entries started before this datetime.
@@ -44915,7 +45456,7 @@ client.hris.timesheet_entries.list(
-
client.hris.timesheet_entries.create(...) -> TimesheetEntryResponse +
client.hris.timesheet_entries.create(...)
@@ -44943,14 +45484,12 @@ Creates a `TimesheetEntry` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.hris import TimesheetEntryRequest +from merge.resources.hris import TimesheetEntryRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.timesheet_entries.create( is_debug_mode=True, run_async=True, @@ -45007,7 +45546,7 @@ client.hris.timesheet_entries.create(
-
client.hris.timesheet_entries.retrieve(...) -> TimesheetEntry +
client.hris.timesheet_entries.retrieve(...)
@@ -45035,13 +45574,11 @@ Returns a `TimesheetEntry` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.timesheet_entries.retrieve( id="id", include_remote_data=True, @@ -45070,7 +45607,11 @@ client.hris.timesheet_entries.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["employee"], typing.Sequence[typing.Literal["employee"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -45106,7 +45647,7 @@ client.hris.timesheet_entries.retrieve(
-
client.hris.timesheet_entries.meta_post_retrieve() -> MetaResponse +
client.hris.timesheet_entries.meta_post_retrieve()
@@ -45134,13 +45675,11 @@ Returns metadata for `TimesheetEntry` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.timesheet_entries.meta_post_retrieve() ``` @@ -45170,7 +45709,7 @@ client.hris.timesheet_entries.meta_post_retrieve()
## Hris WebhookReceivers -
client.hris.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.hris.webhook_receivers.list()
@@ -45198,13 +45737,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.webhook_receivers.list() ``` @@ -45233,7 +45770,7 @@ client.hris.webhook_receivers.list()
-
client.hris.webhook_receivers.create(...) -> WebhookReceiver +
client.hris.webhook_receivers.create(...)
@@ -45261,13 +45798,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.hris.webhook_receivers.create( event="event", is_active=True, @@ -45324,7 +45859,7 @@ client.hris.webhook_receivers.create(
## Ticketing AccountDetails -
client.ticketing.account_details.retrieve() -> AccountDetails +
client.ticketing.account_details.retrieve()
@@ -45352,13 +45887,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.account_details.retrieve() ``` @@ -45388,7 +45921,7 @@ client.ticketing.account_details.retrieve()
## Ticketing AccountToken -
client.ticketing.account_token.retrieve(...) -> AccountToken +
client.ticketing.account_token.retrieve(...)
@@ -45416,13 +45949,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.account_token.retrieve( public_token="public_token", ) @@ -45461,7 +45992,7 @@ client.ticketing.account_token.retrieve(
-
client.ticketing.account_token.regenerate_create() -> RegenerateAccountToken +
client.ticketing.account_token.regenerate_create()
@@ -45489,13 +46020,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.account_token.regenerate_create() ``` @@ -45525,7 +46054,7 @@ client.ticketing.account_token.regenerate_create()
## Ticketing Accounts -
client.ticketing.accounts.list(...) -> PaginatedAccountList +
client.ticketing.accounts.list(...)
@@ -45552,24 +46081,31 @@ Returns a list of `Account` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.accounts.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -45588,7 +46124,7 @@ client.ticketing.accounts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -45596,7 +46132,7 @@ client.ticketing.accounts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -45636,7 +46172,7 @@ client.ticketing.accounts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -45644,7 +46180,7 @@ client.ticketing.accounts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -45680,7 +46216,7 @@ client.ticketing.accounts.list(
-
client.ticketing.accounts.retrieve(...) -> Account +
client.ticketing.accounts.retrieve(...)
@@ -45708,13 +46244,11 @@ Returns an `Account` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.accounts.retrieve( id="id", include_remote_data=True, @@ -45772,7 +46306,7 @@ client.ticketing.accounts.retrieve(
## Ticketing AsyncPassthrough -
client.ticketing.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.ticketing.async_passthrough.create(...)
@@ -45800,17 +46334,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import DataPassthroughRequest +from merge.resources.ticketing import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -45849,7 +46381,7 @@ client.ticketing.async_passthrough.create(
-
client.ticketing.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.ticketing.async_passthrough.retrieve(...)
@@ -45877,13 +46409,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -45923,7 +46453,7 @@ client.ticketing.async_passthrough.retrieve(
## Ticketing Attachments -
client.ticketing.attachments.list(...) -> PaginatedAttachmentList +
client.ticketing.attachments.list(...)
@@ -45950,26 +46480,35 @@ Returns a list of `Attachment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.attachments.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + remote_created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), remote_id="remote_id", ticket_id="ticket_id", ) @@ -45988,7 +46527,7 @@ client.ticketing.attachments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -45996,7 +46535,7 @@ client.ticketing.attachments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -46012,7 +46551,11 @@ client.ticketing.attachments.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["ticket"], typing.Sequence[typing.Literal["ticket"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -46044,7 +46587,7 @@ client.ticketing.attachments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -46052,7 +46595,7 @@ client.ticketing.attachments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -46068,7 +46611,7 @@ client.ticketing.attachments.list(
-**remote_created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return attachments created in the third party platform after this datetime. +**remote_created_after:** `typing.Optional[dt.datetime]` — If provided, will only return attachments created in the third party platform after this datetime.
@@ -46104,7 +46647,7 @@ client.ticketing.attachments.list(
-
client.ticketing.attachments.create(...) -> TicketingAttachmentResponse +
client.ticketing.attachments.create(...)
@@ -46132,14 +46675,12 @@ Creates an `Attachment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import AttachmentRequest +from merge.resources.ticketing import AttachmentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.attachments.create( is_debug_mode=True, run_async=True, @@ -46196,7 +46737,7 @@ client.ticketing.attachments.create(
-
client.ticketing.attachments.retrieve(...) -> Attachment +
client.ticketing.attachments.retrieve(...)
@@ -46224,13 +46765,11 @@ Returns an `Attachment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.attachments.retrieve( id="id", include_remote_data=True, @@ -46259,7 +46798,11 @@ client.ticketing.attachments.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["ticket"], typing.Sequence[typing.Literal["ticket"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -46295,85 +46838,7 @@ client.ticketing.attachments.retrieve(
-
client.ticketing.attachments.download_retrieve(...) -> typing.Iterator[bytes] -
-
- -#### 📝 Description - -
-
- -
-
- -Returns the `File` content with the given `id` as a stream of bytes. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -client.ticketing.attachments.download_retrieve(...) -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `str` - -
-
- -
-
- -**include_shell_data:** `typing.Optional[bool]` — Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null). - -
-
- -
-
- -**mime_type:** `typing.Optional[str]` — If provided, specifies the export format of the file to be downloaded. For information on supported export formats, please refer to our export format help center article. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.ticketing.attachments.meta_post_retrieve() -> MetaResponse +
client.ticketing.attachments.meta_post_retrieve()
@@ -46401,13 +46866,11 @@ Returns metadata for `TicketingAttachment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.attachments.meta_post_retrieve() ``` @@ -46437,7 +46900,7 @@ client.ticketing.attachments.meta_post_retrieve()
## Ticketing AuditTrail -
client.ticketing.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.ticketing.audit_trail.list(...)
@@ -46465,13 +46928,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -46556,7 +47017,7 @@ client.ticketing.audit_trail.list(
## Ticketing AvailableActions -
client.ticketing.available_actions.retrieve() -> AvailableActions +
client.ticketing.available_actions.retrieve()
@@ -46584,13 +47045,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.available_actions.retrieve() ``` @@ -46620,7 +47079,7 @@ client.ticketing.available_actions.retrieve()
## Ticketing Collections -
client.ticketing.collections.list(...) -> PaginatedCollectionList +
client.ticketing.collections.list(...)
@@ -46647,31 +47106,39 @@ Returns a list of `Collection` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.ticketing.resources.collections import ( + CollectionsListRequestCollectionType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.ticketing.collections.list( - collection_type="", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + collection_type=CollectionsListRequestCollectionType.EMPTY, + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, parent_collection_id="parent_collection_id", - remote_fields="collection_type", remote_id="remote_id", - show_enum_origins="collection_type", ) ``` @@ -46696,7 +47163,7 @@ client.ticketing.collections.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -46704,7 +47171,7 @@ client.ticketing.collections.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -46720,7 +47187,12 @@ client.ticketing.collections.list(
-**expand:** `typing.Optional[typing.Union[CollectionsListRequestExpandItem, typing.Sequence[CollectionsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CollectionsListRequestExpandItem, + typing.Sequence[CollectionsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -46752,7 +47224,7 @@ client.ticketing.collections.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -46760,7 +47232,7 @@ client.ticketing.collections.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -46792,7 +47264,7 @@ client.ticketing.collections.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["collection_type"]]` — Deprecated. Use show_enum_origins.
@@ -46808,7 +47280,7 @@ client.ticketing.collections.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["collection_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -46828,7 +47300,7 @@ client.ticketing.collections.list(
-
client.ticketing.collections.viewers_list(...) -> PaginatedViewerList +
client.ticketing.collections.viewers_list(...)
@@ -46856,13 +47328,11 @@ Returns a list of `Viewer` objects that point to a User id or Team id that is ei ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.collections.viewers_list( collection_id="collection_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -46902,7 +47372,12 @@ client.ticketing.collections.viewers_list(
-**expand:** `typing.Optional[typing.Union[CollectionsViewersListRequestExpandItem, typing.Sequence[CollectionsViewersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CollectionsViewersListRequestExpandItem, + typing.Sequence[CollectionsViewersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -46954,7 +47429,7 @@ client.ticketing.collections.viewers_list(
-
client.ticketing.collections.retrieve(...) -> Collection +
client.ticketing.collections.retrieve(...)
@@ -46982,19 +47457,15 @@ Returns a `Collection` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.collections.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="collection_type", - show_enum_origins="collection_type", ) ``` @@ -47019,7 +47490,12 @@ client.ticketing.collections.retrieve(
-**expand:** `typing.Optional[typing.Union[CollectionsRetrieveRequestExpandItem, typing.Sequence[CollectionsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CollectionsRetrieveRequestExpandItem, + typing.Sequence[CollectionsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -47043,7 +47519,7 @@ client.ticketing.collections.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["collection_type"]]` — Deprecated. Use show_enum_origins.
@@ -47051,7 +47527,7 @@ client.ticketing.collections.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["collection_type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -47072,7 +47548,7 @@ client.ticketing.collections.retrieve(
## Ticketing Comments -
client.ticketing.comments.list(...) -> PaginatedCommentList +
client.ticketing.comments.list(...)
@@ -47099,26 +47575,35 @@ Returns a list of `Comment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.comments.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + remote_created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), remote_id="remote_id", ticket_id="ticket_id", ) @@ -47137,7 +47622,7 @@ client.ticketing.comments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -47145,7 +47630,7 @@ client.ticketing.comments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -47161,7 +47646,12 @@ client.ticketing.comments.list(
-**expand:** `typing.Optional[typing.Union[CommentsListRequestExpandItem, typing.Sequence[CommentsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CommentsListRequestExpandItem, + typing.Sequence[CommentsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -47193,7 +47683,7 @@ client.ticketing.comments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -47201,7 +47691,7 @@ client.ticketing.comments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -47217,7 +47707,7 @@ client.ticketing.comments.list(
-**remote_created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return Comments created in the third party platform after this datetime. +**remote_created_after:** `typing.Optional[dt.datetime]` — If provided, will only return Comments created in the third party platform after this datetime.
@@ -47253,7 +47743,7 @@ client.ticketing.comments.list(
-
client.ticketing.comments.create(...) -> CommentResponse +
client.ticketing.comments.create(...)
@@ -47281,14 +47771,12 @@ Creates a `Comment` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import CommentRequest +from merge.resources.ticketing import CommentRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.comments.create( is_debug_mode=True, run_async=True, @@ -47345,7 +47833,7 @@ client.ticketing.comments.create(
-
client.ticketing.comments.retrieve(...) -> Comment +
client.ticketing.comments.retrieve(...)
@@ -47373,13 +47861,11 @@ Returns a `Comment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.comments.retrieve( id="id", include_remote_data=True, @@ -47408,7 +47894,12 @@ client.ticketing.comments.retrieve(
-**expand:** `typing.Optional[typing.Union[CommentsRetrieveRequestExpandItem, typing.Sequence[CommentsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + CommentsRetrieveRequestExpandItem, + typing.Sequence[CommentsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -47444,7 +47935,7 @@ client.ticketing.comments.retrieve(
-
client.ticketing.comments.meta_post_retrieve() -> MetaResponse +
client.ticketing.comments.meta_post_retrieve()
@@ -47472,13 +47963,11 @@ Returns metadata for `Comment` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.comments.meta_post_retrieve() ``` @@ -47508,7 +47997,7 @@ client.ticketing.comments.meta_post_retrieve()
## Ticketing Contacts -
client.ticketing.contacts.list(...) -> PaginatedContactList +
client.ticketing.contacts.list(...)
@@ -47535,25 +48024,32 @@ Returns a list of `Contact` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.contacts.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -47572,7 +48068,7 @@ client.ticketing.contacts.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -47580,7 +48076,7 @@ client.ticketing.contacts.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -47604,7 +48100,11 @@ client.ticketing.contacts.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["account"], typing.Sequence[typing.Literal["account"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -47636,7 +48136,7 @@ client.ticketing.contacts.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -47644,7 +48144,7 @@ client.ticketing.contacts.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -47680,7 +48180,7 @@ client.ticketing.contacts.list(
-
client.ticketing.contacts.create(...) -> TicketingContactResponse +
client.ticketing.contacts.create(...)
@@ -47708,14 +48208,12 @@ Creates a `Contact` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import ContactRequest +from merge.resources.ticketing import ContactRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.contacts.create( is_debug_mode=True, run_async=True, @@ -47772,7 +48270,7 @@ client.ticketing.contacts.create(
-
client.ticketing.contacts.retrieve(...) -> Contact +
client.ticketing.contacts.retrieve(...)
@@ -47800,13 +48298,11 @@ Returns a `Contact` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.contacts.retrieve( id="id", include_remote_data=True, @@ -47835,7 +48331,11 @@ client.ticketing.contacts.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["account"], typing.Sequence[typing.Literal["account"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -47871,7 +48371,7 @@ client.ticketing.contacts.retrieve(
-
client.ticketing.contacts.meta_post_retrieve() -> MetaResponse +
client.ticketing.contacts.meta_post_retrieve()
@@ -47899,13 +48399,11 @@ Returns metadata for `TicketingContact` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.contacts.meta_post_retrieve() ``` @@ -47935,7 +48433,7 @@ client.ticketing.contacts.meta_post_retrieve()
## Ticketing Scopes -
client.ticketing.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.ticketing.scopes.default_scopes_retrieve()
@@ -47963,13 +48461,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.scopes.default_scopes_retrieve() ``` @@ -47998,7 +48494,7 @@ client.ticketing.scopes.default_scopes_retrieve()
-
client.ticketing.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.ticketing.scopes.linked_account_scopes_retrieve()
@@ -48026,13 +48522,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.scopes.linked_account_scopes_retrieve() ``` @@ -48061,7 +48555,7 @@ client.ticketing.scopes.linked_account_scopes_retrieve()
-
client.ticketing.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.ticketing.scopes.linked_account_scopes_create(...)
@@ -48089,14 +48583,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.ticketing import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -48107,16 +48603,11 @@ client.ticketing.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -48126,7 +48617,7 @@ client.ticketing.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -48144,7 +48635,7 @@ client.ticketing.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -48165,7 +48656,7 @@ client.ticketing.scopes.linked_account_scopes_create(
## Ticketing DeleteAccount -
client.ticketing.delete_account.delete() +
client.ticketing.delete_account.delete()
@@ -48193,13 +48684,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.delete_account.delete() ``` @@ -48229,7 +48718,7 @@ client.ticketing.delete_account.delete()
## Ticketing FieldMapping -
client.ticketing.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.ticketing.field_mapping.field_mappings_retrieve(...)
@@ -48257,13 +48746,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -48302,7 +48789,7 @@ client.ticketing.field_mapping.field_mappings_retrieve(
-
client.ticketing.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.ticketing.field_mapping.field_mappings_create(...)
@@ -48330,21 +48817,17 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -48380,7 +48863,7 @@ client.ticketing.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -48448,7 +48931,7 @@ client.ticketing.field_mapping.field_mappings_create(
-
client.ticketing.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.ticketing.field_mapping.field_mappings_destroy(...)
@@ -48476,13 +48959,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -48521,7 +49002,7 @@ client.ticketing.field_mapping.field_mappings_destroy(
-
client.ticketing.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.ticketing.field_mapping.field_mappings_partial_update(...)
@@ -48549,13 +49030,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -48591,7 +49070,7 @@ client.ticketing.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -48635,7 +49114,7 @@ client.ticketing.field_mapping.field_mappings_partial_update(
-
client.ticketing.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.ticketing.field_mapping.remote_fields_retrieve(...)
@@ -48663,13 +49142,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -48717,7 +49194,7 @@ client.ticketing.field_mapping.remote_fields_retrieve(
-
client.ticketing.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.ticketing.field_mapping.target_fields_retrieve()
@@ -48745,13 +49222,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.field_mapping.target_fields_retrieve() ``` @@ -48781,7 +49256,7 @@ client.ticketing.field_mapping.target_fields_retrieve()
## Ticketing GenerateKey -
client.ticketing.generate_key.create(...) -> RemoteKey +
client.ticketing.generate_key.create(...)
@@ -48809,13 +49284,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.generate_key.create( name="Remote Deployment Key 1", ) @@ -48855,7 +49328,7 @@ client.ticketing.generate_key.create(
## Ticketing Issues -
client.ticketing.issues.list(...) -> PaginatedIssueList +
client.ticketing.issues.list(...)
@@ -48882,30 +49355,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.ticketing.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -48954,7 +49435,7 @@ client.ticketing.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -48962,7 +49443,7 @@ client.ticketing.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -48986,7 +49467,7 @@ client.ticketing.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -48994,7 +49475,7 @@ client.ticketing.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -49051,7 +49532,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.ticketing.issues.retrieve(...) -> Issue +
client.ticketing.issues.retrieve(...)
@@ -49079,13 +49560,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.issues.retrieve( id="id", ) @@ -49125,7 +49604,7 @@ client.ticketing.issues.retrieve(
## Ticketing LinkToken -
client.ticketing.link_token.create(...) -> LinkToken +
client.ticketing.link_token.create(...)
@@ -49153,21 +49632,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ticketing import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -49208,7 +49683,7 @@ client.ticketing.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -49248,7 +49723,7 @@ client.ticketing.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -49256,7 +49731,14 @@ client.ticketing.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -49285,7 +49767,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -49306,7 +49788,7 @@ The following subset of IETF language tags can be used to configure localization
## Ticketing LinkedAccounts -
client.ticketing.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.ticketing.linked_accounts.list(...)
@@ -49334,15 +49816,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ticketing.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -49498,7 +49981,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing`
## Ticketing Passthrough -
client.ticketing.passthrough.create(...) -> RemoteResponse +
client.ticketing.passthrough.create(...)
@@ -49526,17 +50009,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import DataPassthroughRequest +from merge.resources.ticketing import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -49576,7 +50057,7 @@ client.ticketing.passthrough.create(
## Ticketing Projects -
client.ticketing.projects.list(...) -> PaginatedProjectList +
client.ticketing.projects.list(...)
@@ -49603,24 +50084,31 @@ Returns a list of `Project` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.projects.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -49639,7 +50127,7 @@ client.ticketing.projects.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -49647,7 +50135,7 @@ client.ticketing.projects.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -49687,7 +50175,7 @@ client.ticketing.projects.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -49695,7 +50183,7 @@ client.ticketing.projects.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -49731,7 +50219,7 @@ client.ticketing.projects.list(
-
client.ticketing.projects.retrieve(...) -> Project +
client.ticketing.projects.retrieve(...)
@@ -49759,13 +50247,11 @@ Returns a `Project` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.projects.retrieve( id="id", include_remote_data=True, @@ -49822,7 +50308,7 @@ client.ticketing.projects.retrieve(
-
client.ticketing.projects.users_list(...) -> PaginatedUserList +
client.ticketing.projects.users_list(...)
@@ -49850,13 +50336,11 @@ Returns a list of `User` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.projects.users_list( parent_id="parent_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -49896,7 +50380,12 @@ client.ticketing.projects.users_list(
-**expand:** `typing.Optional[typing.Union[ProjectsUsersListRequestExpandItem, typing.Sequence[ProjectsUsersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ProjectsUsersListRequestExpandItem, + typing.Sequence[ProjectsUsersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -49949,7 +50438,7 @@ client.ticketing.projects.users_list(
## Ticketing RegenerateKey -
client.ticketing.regenerate_key.create(...) -> RemoteKey +
client.ticketing.regenerate_key.create(...)
@@ -49977,13 +50466,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -50023,7 +50510,7 @@ client.ticketing.regenerate_key.create(
## Ticketing Roles -
client.ticketing.roles.list(...) -> PaginatedRoleList +
client.ticketing.roles.list(...)
@@ -50050,24 +50537,31 @@ Returns a list of `Role` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.roles.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -50086,7 +50580,7 @@ client.ticketing.roles.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -50094,7 +50588,7 @@ client.ticketing.roles.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -50134,7 +50628,7 @@ client.ticketing.roles.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -50142,7 +50636,7 @@ client.ticketing.roles.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -50178,7 +50672,7 @@ client.ticketing.roles.list(
-
client.ticketing.roles.retrieve(...) -> Role +
client.ticketing.roles.retrieve(...)
@@ -50206,13 +50700,11 @@ Returns a `Role` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.roles.retrieve( id="id", include_remote_data=True, @@ -50270,7 +50762,7 @@ client.ticketing.roles.retrieve(
## Ticketing SyncStatus -
client.ticketing.sync_status.list(...) -> PaginatedSyncStatusList +
client.ticketing.sync_status.list(...)
@@ -50298,13 +50790,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -50353,7 +50843,7 @@ client.ticketing.sync_status.list(
## Ticketing ForceResync -
client.ticketing.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.ticketing.force_resync.sync_status_resync_create()
@@ -50381,13 +50871,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.force_resync.sync_status_resync_create() ``` @@ -50417,7 +50905,7 @@ client.ticketing.force_resync.sync_status_resync_create()
## Ticketing Tags -
client.ticketing.tags.list(...) -> PaginatedTagList +
client.ticketing.tags.list(...)
@@ -50444,24 +50932,31 @@ Returns a list of `Tag` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tags.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -50480,7 +50975,7 @@ client.ticketing.tags.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -50488,7 +50983,7 @@ client.ticketing.tags.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -50528,7 +51023,7 @@ client.ticketing.tags.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -50536,7 +51031,7 @@ client.ticketing.tags.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -50572,7 +51067,7 @@ client.ticketing.tags.list(
-
client.ticketing.tags.retrieve(...) -> Tag +
client.ticketing.tags.retrieve(...)
@@ -50600,13 +51095,11 @@ Returns a `Tag` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tags.retrieve( id="id", include_remote_data=True, @@ -50664,7 +51157,7 @@ client.ticketing.tags.retrieve(
## Ticketing Teams -
client.ticketing.teams.list(...) -> PaginatedTeamList +
client.ticketing.teams.list(...)
@@ -50691,24 +51184,31 @@ Returns a list of `Team` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.teams.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -50727,7 +51227,7 @@ client.ticketing.teams.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -50735,7 +51235,7 @@ client.ticketing.teams.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -50775,7 +51275,7 @@ client.ticketing.teams.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -50783,7 +51283,7 @@ client.ticketing.teams.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -50819,7 +51319,7 @@ client.ticketing.teams.list(
-
client.ticketing.teams.retrieve(...) -> Team +
client.ticketing.teams.retrieve(...)
@@ -50847,13 +51347,11 @@ Returns a `Team` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.teams.retrieve( id="id", include_remote_data=True, @@ -50911,7 +51409,7 @@ client.ticketing.teams.retrieve(
## Ticketing Tickets -
client.ticketing.tickets.list(...) -> PaginatedTicketList +
client.ticketing.tickets.list(...)
@@ -50938,48 +51436,77 @@ Returns a list of `Ticket` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.ticketing.resources.tickets import ( + TicketsListRequestPriority, + TicketsListRequestRemoteFields, + TicketsListRequestShowEnumOrigins, + TicketsListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.ticketing.tickets.list( account_id="account_id", assignee_ids="assignee_ids", collection_ids="collection_ids", - completed_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - completed_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + completed_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + completed_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), contact_id="contact_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), creator_id="creator_id", creator_ids="creator_ids", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", - due_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - due_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + due_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + due_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_deleted_data=True, include_remote_data=True, include_remote_fields=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, parent_ticket_id="parent_ticket_id", - priority="HIGH", - remote_created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - remote_created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - remote_fields="priority", + priority=TicketsListRequestPriority.HIGH, + remote_created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + remote_created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + remote_fields=TicketsListRequestRemoteFields.PRIORITY, remote_id="remote_id", remote_ids="remote_ids", - remote_updated_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - remote_updated_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - show_enum_origins="priority", - status="", + remote_updated_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + remote_updated_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + show_enum_origins=TicketsListRequestShowEnumOrigins.PRIORITY, + status=TicketsListRequestStatus.EMPTY, tags="tags", ticket_type="ticket_type", ticket_url="ticket_url", @@ -51023,7 +51550,7 @@ client.ticketing.tickets.list(
-**completed_after:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets completed after this datetime. +**completed_after:** `typing.Optional[dt.datetime]` — If provided, will only return tickets completed after this datetime.
@@ -51031,7 +51558,7 @@ client.ticketing.tickets.list(
-**completed_before:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets completed before this datetime. +**completed_before:** `typing.Optional[dt.datetime]` — If provided, will only return tickets completed before this datetime.
@@ -51047,7 +51574,7 @@ client.ticketing.tickets.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -51055,7 +51582,7 @@ client.ticketing.tickets.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -51087,7 +51614,7 @@ client.ticketing.tickets.list(
-**due_after:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets due after this datetime. +**due_after:** `typing.Optional[dt.datetime]` — If provided, will only return tickets due after this datetime.
@@ -51095,7 +51622,7 @@ client.ticketing.tickets.list(
-**due_before:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets due before this datetime. +**due_before:** `typing.Optional[dt.datetime]` — If provided, will only return tickets due before this datetime.
@@ -51103,7 +51630,12 @@ client.ticketing.tickets.list(
-**expand:** `typing.Optional[typing.Union[TicketsListRequestExpandItem, typing.Sequence[TicketsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TicketsListRequestExpandItem, + typing.Sequence[TicketsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -51143,7 +51675,7 @@ client.ticketing.tickets.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -51151,7 +51683,7 @@ client.ticketing.tickets.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -51198,7 +51730,7 @@ If provided, will only return tickets of this priority.
-**remote_created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets created in the third party platform after this datetime. +**remote_created_after:** `typing.Optional[dt.datetime]` — If provided, will only return tickets created in the third party platform after this datetime.
@@ -51206,7 +51738,7 @@ If provided, will only return tickets of this priority.
-**remote_created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets created in the third party platform before this datetime. +**remote_created_before:** `typing.Optional[dt.datetime]` — If provided, will only return tickets created in the third party platform before this datetime.
@@ -51238,7 +51770,7 @@ If provided, will only return tickets of this priority.
-**remote_updated_after:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets updated in the third party platform after this datetime. +**remote_updated_after:** `typing.Optional[dt.datetime]` — If provided, will only return tickets updated in the third party platform after this datetime.
@@ -51246,7 +51778,7 @@ If provided, will only return tickets of this priority.
-**remote_updated_before:** `typing.Optional[datetime.datetime]` — If provided, will only return tickets updated in the third party platform before this datetime. +**remote_updated_before:** `typing.Optional[dt.datetime]` — If provided, will only return tickets updated in the third party platform before this datetime.
@@ -51306,7 +51838,7 @@ If provided, will only return tickets of this priority.
-
client.ticketing.tickets.create(...) -> TicketResponse +
client.ticketing.tickets.create(...)
@@ -51334,14 +51866,12 @@ Creates a `Ticket` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import TicketRequest +from merge.resources.ticketing import TicketRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.create( is_debug_mode=True, run_async=True, @@ -51398,7 +51928,7 @@ client.ticketing.tickets.create(
-
client.ticketing.tickets.retrieve(...) -> Ticket +
client.ticketing.tickets.retrieve(...)
@@ -51426,20 +51956,22 @@ Returns a `Ticket` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.ticketing.resources.tickets import ( + TicketsRetrieveRequestRemoteFields, + TicketsRetrieveRequestShowEnumOrigins, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.retrieve( id="id", include_remote_data=True, include_remote_fields=True, include_shell_data=True, - remote_fields="priority", - show_enum_origins="priority", + remote_fields=TicketsRetrieveRequestRemoteFields.PRIORITY, + show_enum_origins=TicketsRetrieveRequestShowEnumOrigins.PRIORITY, ) ``` @@ -51464,7 +51996,12 @@ client.ticketing.tickets.retrieve(
-**expand:** `typing.Optional[typing.Union[TicketsRetrieveRequestExpandItem, typing.Sequence[TicketsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TicketsRetrieveRequestExpandItem, + typing.Sequence[TicketsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -51524,7 +52061,7 @@ client.ticketing.tickets.retrieve(
-
client.ticketing.tickets.partial_update(...) -> TicketResponse +
client.ticketing.tickets.partial_update(...)
@@ -51552,14 +52089,12 @@ Updates a `Ticket` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.ticketing import PatchedTicketRequest +from merge.resources.ticketing import PatchedTicketRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.partial_update( id="id", is_debug_mode=True, @@ -51625,7 +52160,7 @@ client.ticketing.tickets.partial_update(
-
client.ticketing.tickets.viewers_list(...) -> PaginatedViewerList +
client.ticketing.tickets.viewers_list(...)
@@ -51653,13 +52188,11 @@ Returns a list of `Viewer` objects that point to a User id or Team id that is ei ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.viewers_list( ticket_id="ticket_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -51699,7 +52232,12 @@ client.ticketing.tickets.viewers_list(
-**expand:** `typing.Optional[typing.Union[TicketsViewersListRequestExpandItem, typing.Sequence[TicketsViewersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + TicketsViewersListRequestExpandItem, + typing.Sequence[TicketsViewersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -51751,165 +52289,7 @@ client.ticketing.tickets.viewers_list(
-
client.ticketing.tickets.live_search_retrieve(...) -> typing.Iterator[bytes] -
-
- -#### 📝 Description - -
-
- -
-
- -Returns a list of `Ticket` objects. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -client.ticketing.tickets.live_search_retrieve(...) -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**assignee_ids:** `typing.Optional[str]` — Filter tickets by assignee IDs (comma-separated) - -
-
- -
-
- -**assignees:** `typing.Optional[str]` — Filter tickets by assignee names (comma-separated) - -
-
- -
-
- -**collection_ids:** `typing.Optional[str]` — Filter tickets by collection IDs (comma-separated) - -
-
- -
-
- -**collections:** `typing.Optional[str]` — Filter tickets by collection names (comma-separated) - -
-
- -
-
- -**include_deleted_data:** `typing.Optional[bool]` — Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). - -
-
- -
-
- -**include_remote_fields:** `typing.Optional[bool]` — Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format. - -
-
- -
-
- -**include_shell_data:** `typing.Optional[bool]` — Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null). - -
-
- -
-
- -**name:** `typing.Optional[str]` — Filter tickets by name/title - -
-
- -
-
- -**remote_cursor:** `typing.Optional[str]` — Pagination cursor for remote data - -
-
- -
-
- -**remote_fields:** `typing.Optional[TicketsLiveSearchRetrieveRequestRemoteFields]` — Deprecated. Use show_enum_origins. - -
-
- -
-
- -**show_enum_origins:** `typing.Optional[TicketsLiveSearchRetrieveRequestShowEnumOrigins]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) - -
-
- -
-
- -**status:** `typing.Optional[str]` — Filter tickets by status - -
-
- -
-
- -**ticket_url:** `typing.Optional[str]` — Filter tickets by URL - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.ticketing.tickets.meta_patch_retrieve(...) -> MetaResponse +
client.ticketing.tickets.meta_patch_retrieve(...)
@@ -51937,13 +52317,11 @@ Returns metadata for `Ticket` PATCHs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.meta_patch_retrieve( id="id", ) @@ -51982,7 +52360,7 @@ client.ticketing.tickets.meta_patch_retrieve(
-
client.ticketing.tickets.meta_post_retrieve(...) -> MetaResponse +
client.ticketing.tickets.meta_post_retrieve(...)
@@ -52010,13 +52388,11 @@ Returns metadata for `Ticket` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.meta_post_retrieve( collection_id="collection_id", ticket_type="ticket_type", @@ -52064,7 +52440,7 @@ client.ticketing.tickets.meta_post_retrieve(
-
client.ticketing.tickets.remote_field_classes_list(...) -> PaginatedRemoteFieldClassList +
client.ticketing.tickets.remote_field_classes_list(...)
@@ -52092,13 +52468,11 @@ Returns a list of `RemoteFieldClass` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.tickets.remote_field_classes_list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", ids="ids", @@ -52201,7 +52575,7 @@ client.ticketing.tickets.remote_field_classes_list(
## Ticketing Users -
client.ticketing.users.list(...) -> PaginatedUserList +
client.ticketing.users.list(...)
@@ -52228,26 +52602,33 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.users.list( collections="collections", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", roles="roles", @@ -52277,7 +52658,7 @@ client.ticketing.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -52285,7 +52666,7 @@ client.ticketing.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -52309,7 +52690,11 @@ client.ticketing.users.list(
-**expand:** `typing.Optional[typing.Union[UsersListRequestExpandItem, typing.Sequence[UsersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + UsersListRequestExpandItem, typing.Sequence[UsersListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -52341,7 +52726,7 @@ client.ticketing.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -52349,7 +52734,7 @@ client.ticketing.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -52409,7 +52794,7 @@ client.ticketing.users.list(
-
client.ticketing.users.retrieve(...) -> User +
client.ticketing.users.retrieve(...)
@@ -52437,13 +52822,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.users.retrieve( id="id", include_remote_data=True, @@ -52472,7 +52855,12 @@ client.ticketing.users.retrieve(
-**expand:** `typing.Optional[typing.Union[UsersRetrieveRequestExpandItem, typing.Sequence[UsersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + UsersRetrieveRequestExpandItem, + typing.Sequence[UsersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -52509,7 +52897,7 @@ client.ticketing.users.retrieve(
## Ticketing WebhookReceivers -
client.ticketing.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.ticketing.webhook_receivers.list()
@@ -52537,13 +52925,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.webhook_receivers.list() ``` @@ -52572,7 +52958,7 @@ client.ticketing.webhook_receivers.list()
-
client.ticketing.webhook_receivers.create(...) -> WebhookReceiver +
client.ticketing.webhook_receivers.create(...)
@@ -52600,13 +52986,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.ticketing.webhook_receivers.create( event="event", is_active=True, @@ -52663,7 +53047,7 @@ client.ticketing.webhook_receivers.create(
## Calendar AccountDetails -
client.calendar.account_details.retrieve() -> AccountDetails +
client.calendar.account_details.retrieve()
@@ -52691,13 +53075,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.account_details.retrieve() ``` @@ -52727,7 +53109,7 @@ client.calendar.account_details.retrieve()
## Calendar AccountToken -
client.calendar.account_token.retrieve(...) -> AccountToken +
client.calendar.account_token.retrieve(...)
@@ -52755,13 +53137,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.account_token.retrieve( public_token="public_token", ) @@ -52800,7 +53180,7 @@ client.calendar.account_token.retrieve(
-
client.calendar.account_token.regenerate_create() -> RegenerateAccountToken +
client.calendar.account_token.regenerate_create()
@@ -52828,13 +53208,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.account_token.regenerate_create() ``` @@ -52864,7 +53242,7 @@ client.calendar.account_token.regenerate_create()
## Calendar AsyncPassthrough -
client.calendar.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.calendar.async_passthrough.create(...)
@@ -52892,17 +53270,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.calendar import DataPassthroughRequest +from merge.resources.calendar import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -52941,7 +53317,7 @@ client.calendar.async_passthrough.create(
-
client.calendar.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.calendar.async_passthrough.retrieve(...)
@@ -52969,13 +53345,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -53015,7 +53389,7 @@ client.calendar.async_passthrough.retrieve(
## Calendar AuditTrail -
client.calendar.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.calendar.audit_trail.list(...)
@@ -53043,13 +53417,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -53134,7 +53506,7 @@ client.calendar.audit_trail.list(
## Calendar AvailableActions -
client.calendar.available_actions.retrieve() -> AvailableActions +
client.calendar.available_actions.retrieve()
@@ -53162,13 +53534,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.available_actions.retrieve() ``` @@ -53198,7 +53568,7 @@ client.calendar.available_actions.retrieve()
## Calendar Calendars -
client.calendar.calendars.list(...) -> PaginatedCalendarList +
client.calendar.calendars.list(...)
@@ -53225,29 +53595,39 @@ Returns a list of `Calendar` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.calendar.resources.calendars import ( + CalendarsListRequestType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.calendar.calendars.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", owner_email_address="owner_email_address", page_size=1, remote_id="remote_id", - type="", + type=CalendarsListRequestType.EMPTY, ) ``` @@ -53264,7 +53644,7 @@ client.calendar.calendars.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -53272,7 +53652,7 @@ client.calendar.calendars.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -53288,7 +53668,12 @@ client.calendar.calendars.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["permissions"], + typing.Sequence[typing.Literal["permissions"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -53320,7 +53705,7 @@ client.calendar.calendars.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -53328,7 +53713,7 @@ client.calendar.calendars.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -53388,7 +53773,7 @@ client.calendar.calendars.list(
-
client.calendar.calendars.retrieve(...) -> Calendar +
client.calendar.calendars.retrieve(...)
@@ -53416,13 +53801,11 @@ Returns a `Calendar` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.calendars.retrieve( id="id", include_remote_data=True, @@ -53451,7 +53834,12 @@ client.calendar.calendars.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["permissions"], + typing.Sequence[typing.Literal["permissions"]], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -53488,7 +53876,7 @@ client.calendar.calendars.retrieve(
## Calendar Scopes -
client.calendar.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.calendar.scopes.default_scopes_retrieve()
@@ -53516,13 +53904,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.scopes.default_scopes_retrieve() ``` @@ -53551,7 +53937,7 @@ client.calendar.scopes.default_scopes_retrieve()
-
client.calendar.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.calendar.scopes.linked_account_scopes_retrieve()
@@ -53579,13 +53965,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.scopes.linked_account_scopes_retrieve() ``` @@ -53614,7 +53998,7 @@ client.calendar.scopes.linked_account_scopes_retrieve()
-
client.calendar.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.calendar.scopes.linked_account_scopes_create(...)
@@ -53642,14 +54026,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.calendar import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.calendar import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -53660,16 +54046,11 @@ client.calendar.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -53679,7 +54060,7 @@ client.calendar.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -53697,7 +54078,7 @@ client.calendar.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -53718,7 +54099,7 @@ client.calendar.scopes.linked_account_scopes_create(
## Calendar DeleteAccount -
client.calendar.delete_account.delete() +
client.calendar.delete_account.delete()
@@ -53746,13 +54127,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.delete_account.delete() ``` @@ -53782,7 +54161,7 @@ client.calendar.delete_account.delete()
## Calendar Events -
client.calendar.events.list(...) -> PaginatedEventList +
client.calendar.events.list(...)
@@ -53809,19 +54188,22 @@ Returns a list of `Event` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.events.list( calendar_id="calendar_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_cancelled="include_cancelled", include_deleted_data=True, @@ -53829,14 +54211,22 @@ client.calendar.events.list( include_shell_data=True, invitee_id="invitee_id", is_private="is_private", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", series_id="series_id", - starts_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - starts_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + starts_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + starts_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -53861,7 +54251,7 @@ client.calendar.events.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -53869,7 +54259,7 @@ client.calendar.events.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -53885,7 +54275,12 @@ client.calendar.events.list(
-**expand:** `typing.Optional[typing.Union[EventsListRequestExpandItem, typing.Sequence[EventsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EventsListRequestExpandItem, + typing.Sequence[EventsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -53941,7 +54336,7 @@ client.calendar.events.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -53949,7 +54344,7 @@ client.calendar.events.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -53989,7 +54384,7 @@ client.calendar.events.list(
-**starts_after:** `typing.Optional[datetime.datetime]` — If provided, will only return Events with a start date after this datetime. +**starts_after:** `typing.Optional[dt.datetime]` — If provided, will only return Events with a start date after this datetime.
@@ -53997,7 +54392,7 @@ client.calendar.events.list(
-**starts_before:** `typing.Optional[datetime.datetime]` — If provided, will only return Events with a start date before this datetime. +**starts_before:** `typing.Optional[dt.datetime]` — If provided, will only return Events with a start date before this datetime.
@@ -54017,7 +54412,7 @@ client.calendar.events.list(
-
client.calendar.events.invitees_list(...) -> PaginatedInviteeList +
client.calendar.events.invitees_list(...)
@@ -54045,13 +54440,11 @@ Returns a list of `Invitee` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.events.invitees_list( event_id="event_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -54091,7 +54484,12 @@ client.calendar.events.invitees_list(
-**expand:** `typing.Optional[typing.Union[EventsInviteesListRequestExpandItem, typing.Sequence[EventsInviteesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EventsInviteesListRequestExpandItem, + typing.Sequence[EventsInviteesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -54143,7 +54541,7 @@ client.calendar.events.invitees_list(
-
client.calendar.events.locations_list(...) -> PaginatedLocationList +
client.calendar.events.locations_list(...)
@@ -54171,13 +54569,11 @@ Returns a list of `Location` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.events.locations_list( event_id="event_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -54217,7 +54613,11 @@ client.calendar.events.locations_list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["event"], typing.Sequence[typing.Literal["event"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -54269,7 +54669,7 @@ client.calendar.events.locations_list(
-
client.calendar.events.retrieve(...) -> Event +
client.calendar.events.retrieve(...)
@@ -54297,13 +54697,11 @@ Returns an `Event` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.events.retrieve( id="id", include_remote_data=True, @@ -54332,7 +54730,12 @@ client.calendar.events.retrieve(
-**expand:** `typing.Optional[typing.Union[EventsRetrieveRequestExpandItem, typing.Sequence[EventsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EventsRetrieveRequestExpandItem, + typing.Sequence[EventsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -54369,7 +54772,7 @@ client.calendar.events.retrieve(
## Calendar FieldMapping -
client.calendar.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.calendar.field_mapping.field_mappings_retrieve(...)
@@ -54397,13 +54800,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -54442,7 +54843,7 @@ client.calendar.field_mapping.field_mappings_retrieve(
-
client.calendar.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.calendar.field_mapping.field_mappings_create(...)
@@ -54470,19 +54871,15 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -54502,7 +54899,7 @@ client.calendar.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -54610,7 +55007,7 @@ client.calendar.field_mapping.field_mappings_create(
-
client.calendar.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.calendar.field_mapping.field_mappings_destroy(...)
@@ -54638,13 +55035,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -54683,7 +55078,7 @@ client.calendar.field_mapping.field_mappings_destroy(
-
client.calendar.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.calendar.field_mapping.field_mappings_partial_update(...)
@@ -54711,13 +55106,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -54753,7 +55146,7 @@ client.calendar.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -54805,7 +55198,7 @@ client.calendar.field_mapping.field_mappings_partial_update(
-
client.calendar.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.calendar.field_mapping.remote_fields_retrieve(...)
@@ -54833,13 +55226,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -54887,7 +55278,7 @@ client.calendar.field_mapping.remote_fields_retrieve(
-
client.calendar.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.calendar.field_mapping.target_fields_retrieve()
@@ -54915,13 +55306,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.target_fields_retrieve() ``` @@ -54950,7 +55339,7 @@ client.calendar.field_mapping.target_fields_retrieve()
-
client.calendar.field_mapping.target_fields_create(...) -> ExternalTargetFieldApiResponse +
client.calendar.field_mapping.target_fields_create(...)
@@ -54978,13 +55367,11 @@ Create a new organization-wide Target Field. Target Fields are custom fields tha ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.field_mapping.target_fields_create( name="employee_favorite_team", common_model="Employee", @@ -55041,7 +55428,7 @@ client.calendar.field_mapping.target_fields_create(
## Calendar GenerateKey -
client.calendar.generate_key.create(...) -> RemoteKey +
client.calendar.generate_key.create(...)
@@ -55069,13 +55456,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.generate_key.create( name="Remote Deployment Key 1", ) @@ -55115,7 +55500,7 @@ client.calendar.generate_key.create(
## Calendar Groups -
client.calendar.groups.list(...) -> PaginatedGroupList +
client.calendar.groups.list(...)
@@ -55142,26 +55527,33 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.groups.list( child_group_id="child_group_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -55190,7 +55582,7 @@ client.calendar.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -55198,7 +55590,7 @@ client.calendar.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -55222,7 +55614,12 @@ client.calendar.groups.list(
-**expand:** `typing.Optional[typing.Union[GroupsListRequestExpandItem, typing.Sequence[GroupsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsListRequestExpandItem, + typing.Sequence[GroupsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -55254,7 +55651,7 @@ client.calendar.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -55262,7 +55659,7 @@ client.calendar.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -55314,7 +55711,7 @@ client.calendar.groups.list(
-
client.calendar.groups.retrieve(...) -> Group +
client.calendar.groups.retrieve(...)
@@ -55342,13 +55739,11 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.groups.retrieve( id="id", include_remote_data=True, @@ -55377,7 +55772,12 @@ client.calendar.groups.retrieve(
-**expand:** `typing.Optional[typing.Union[GroupsRetrieveRequestExpandItem, typing.Sequence[GroupsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsRetrieveRequestExpandItem, + typing.Sequence[GroupsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -55414,7 +55814,7 @@ client.calendar.groups.retrieve(
## Calendar Issues -
client.calendar.issues.list(...) -> PaginatedIssueList +
client.calendar.issues.list(...)
@@ -55441,30 +55841,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.calendar.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -55513,7 +55921,7 @@ client.calendar.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -55521,7 +55929,7 @@ client.calendar.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -55545,7 +55953,7 @@ client.calendar.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -55553,7 +55961,7 @@ client.calendar.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -55605,7 +56013,7 @@ client.calendar.issues.list(
-
client.calendar.issues.retrieve(...) -> Issue +
client.calendar.issues.retrieve(...)
@@ -55633,13 +56041,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.issues.retrieve( id="id", ) @@ -55679,7 +56085,7 @@ client.calendar.issues.retrieve(
## Calendar LinkToken -
client.calendar.link_token.create(...) -> LinkToken +
client.calendar.link_token.create(...)
@@ -55707,21 +56113,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.calendar import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -55762,7 +56164,7 @@ client.calendar.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -55802,7 +56204,7 @@ client.calendar.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -55810,7 +56212,14 @@ client.calendar.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -55834,7 +56243,7 @@ client.calendar.link_token.create(
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -55887,7 +56296,7 @@ client.calendar.link_token.create(
## Calendar LinkedAccounts -
client.calendar.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.calendar.linked_accounts.list(...)
@@ -55915,15 +56324,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.calendar.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -56068,7 +56478,7 @@ client.calendar.linked_accounts.list(
-
client.calendar.linked_accounts.partial_update(...) -> LinkedAccountPatchResponse +
client.calendar.linked_accounts.partial_update(...)
@@ -56096,13 +56506,11 @@ Update a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.linked_accounts.partial_update( linked_account_id="linked_account_id", ) @@ -56150,7 +56558,7 @@ client.calendar.linked_accounts.partial_update(
## Calendar Passthrough -
client.calendar.passthrough.create(...) -> RemoteResponse +
client.calendar.passthrough.create(...)
@@ -56178,17 +56586,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.calendar import DataPassthroughRequest +from merge.resources.calendar import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -56228,7 +56634,7 @@ client.calendar.passthrough.create(
## Calendar RegenerateKey -
client.calendar.regenerate_key.create(...) -> RemoteKey +
client.calendar.regenerate_key.create(...)
@@ -56256,13 +56662,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -56302,7 +56706,7 @@ client.calendar.regenerate_key.create(
## Calendar Series -
client.calendar.series.list(...) -> PaginatedSeriesList +
client.calendar.series.list(...)
@@ -56329,30 +56733,41 @@ Returns a list of `Series` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.series.list( calendar_id="calendar_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), organizer_email_address="organizer_email_address", page_size=1, remote_id="remote_id", - starts_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - starts_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + starts_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + starts_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), ) ``` @@ -56377,7 +56792,7 @@ client.calendar.series.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -56385,7 +56800,7 @@ client.calendar.series.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -56401,7 +56816,11 @@ client.calendar.series.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["calendar"], typing.Sequence[typing.Literal["calendar"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -56433,7 +56852,7 @@ client.calendar.series.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -56441,7 +56860,7 @@ client.calendar.series.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -56473,7 +56892,7 @@ client.calendar.series.list(
-**starts_after:** `typing.Optional[datetime.datetime]` — If provided, will only return Series with a start date after this datetime. +**starts_after:** `typing.Optional[dt.datetime]` — If provided, will only return Series with a start date after this datetime.
@@ -56481,7 +56900,7 @@ client.calendar.series.list(
-**starts_before:** `typing.Optional[datetime.datetime]` — If provided, will only return Series with a start date before this datetime. +**starts_before:** `typing.Optional[dt.datetime]` — If provided, will only return Series with a start date before this datetime.
@@ -56501,7 +56920,7 @@ client.calendar.series.list(
-
client.calendar.series.retrieve(...) -> Series +
client.calendar.series.retrieve(...)
@@ -56529,13 +56948,11 @@ Returns a `Series` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.series.retrieve( id="id", include_remote_data=True, @@ -56564,7 +56981,11 @@ client.calendar.series.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["calendar"], typing.Sequence[typing.Literal["calendar"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -56601,7 +57022,7 @@ client.calendar.series.retrieve(
## Calendar SyncStatus -
client.calendar.sync_status.list(...) -> PaginatedSyncStatusList +
client.calendar.sync_status.list(...)
@@ -56629,13 +57050,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -56684,7 +57103,7 @@ client.calendar.sync_status.list(
## Calendar ForceResync -
client.calendar.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.calendar.force_resync.sync_status_resync_create()
@@ -56712,13 +57131,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.force_resync.sync_status_resync_create() ``` @@ -56748,7 +57165,7 @@ client.calendar.force_resync.sync_status_resync_create()
## Calendar Users -
client.calendar.users.list(...) -> PaginatedUserList +
client.calendar.users.list(...)
@@ -56775,25 +57192,32 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -56813,7 +57237,7 @@ client.calendar.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -56821,7 +57245,7 @@ client.calendar.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -56845,7 +57269,11 @@ client.calendar.users.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["groups"], typing.Sequence[typing.Literal["groups"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -56877,7 +57305,7 @@ client.calendar.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -56885,7 +57313,7 @@ client.calendar.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -56929,7 +57357,7 @@ client.calendar.users.list(
-
client.calendar.users.retrieve(...) -> User +
client.calendar.users.retrieve(...)
@@ -56957,13 +57385,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.users.retrieve( id="id", include_remote_data=True, @@ -56992,7 +57418,11 @@ client.calendar.users.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["groups"], typing.Sequence[typing.Literal["groups"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -57029,7 +57459,7 @@ client.calendar.users.retrieve(
## Calendar WebhookReceivers -
client.calendar.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.calendar.webhook_receivers.list()
@@ -57057,13 +57487,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.webhook_receivers.list() ``` @@ -57092,7 +57520,7 @@ client.calendar.webhook_receivers.list()
-
client.calendar.webhook_receivers.create(...) -> WebhookReceiver +
client.calendar.webhook_receivers.create(...)
@@ -57120,13 +57548,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.calendar.webhook_receivers.create( event="event", is_active=True, @@ -57183,7 +57609,7 @@ client.calendar.webhook_receivers.create(
## Chat AccountDetails -
client.chat.account_details.retrieve() -> AccountDetails +
client.chat.account_details.retrieve()
@@ -57211,13 +57637,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.account_details.retrieve() ``` @@ -57247,7 +57671,7 @@ client.chat.account_details.retrieve()
## Chat AccountToken -
client.chat.account_token.retrieve(...) -> AccountToken +
client.chat.account_token.retrieve(...)
@@ -57275,13 +57699,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.account_token.retrieve( public_token="public_token", ) @@ -57320,7 +57742,7 @@ client.chat.account_token.retrieve(
-
client.chat.account_token.regenerate_create() -> RegenerateAccountToken +
client.chat.account_token.regenerate_create()
@@ -57348,13 +57770,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.account_token.regenerate_create() ``` @@ -57384,7 +57804,7 @@ client.chat.account_token.regenerate_create()
## Chat AsyncPassthrough -
client.chat.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.chat.async_passthrough.create(...)
@@ -57412,17 +57832,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.chat import DataPassthroughRequest +from merge.resources.chat import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -57461,7 +57879,7 @@ client.chat.async_passthrough.create(
-
client.chat.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.chat.async_passthrough.retrieve(...)
@@ -57489,13 +57907,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -57535,7 +57951,7 @@ client.chat.async_passthrough.retrieve(
## Chat AuditTrail -
client.chat.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.chat.audit_trail.list(...)
@@ -57563,13 +57979,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -57654,7 +58068,7 @@ client.chat.audit_trail.list(
## Chat AvailableActions -
client.chat.available_actions.retrieve() -> AvailableActions +
client.chat.available_actions.retrieve()
@@ -57682,13 +58096,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.available_actions.retrieve() ``` @@ -57718,7 +58130,7 @@ client.chat.available_actions.retrieve()
## Chat Conversations -
client.chat.conversations.list(...) -> PaginatedConversationList +
client.chat.conversations.list(...)
@@ -57745,24 +58157,31 @@ Returns a list of `Conversation` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.conversations.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -57781,7 +58200,7 @@ client.chat.conversations.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -57789,7 +58208,7 @@ client.chat.conversations.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -57805,7 +58224,11 @@ client.chat.conversations.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["members"], typing.Sequence[typing.Literal["members"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -57837,7 +58260,7 @@ client.chat.conversations.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -57845,7 +58268,7 @@ client.chat.conversations.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -57881,7 +58304,7 @@ client.chat.conversations.list(
-
client.chat.conversations.members_list(...) -> PaginatedMemberList +
client.chat.conversations.members_list(...)
@@ -57909,13 +58332,11 @@ Returns a list of `Member` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.conversations.members_list( conversation_id="conversation_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", @@ -57955,7 +58376,12 @@ client.chat.conversations.members_list(
-**expand:** `typing.Optional[typing.Union[ConversationsMembersListRequestExpandItem, typing.Sequence[ConversationsMembersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ConversationsMembersListRequestExpandItem, + typing.Sequence[ConversationsMembersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -58007,7 +58433,7 @@ client.chat.conversations.members_list(
-
client.chat.conversations.retrieve(...) -> Conversation +
client.chat.conversations.retrieve(...)
@@ -58035,13 +58461,11 @@ Returns a `Conversation` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.conversations.retrieve( id="id", include_remote_data=True, @@ -58070,7 +58494,11 @@ client.chat.conversations.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["members"], typing.Sequence[typing.Literal["members"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -58107,7 +58535,7 @@ client.chat.conversations.retrieve(
## Chat Scopes -
client.chat.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.chat.scopes.default_scopes_retrieve()
@@ -58135,13 +58563,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.scopes.default_scopes_retrieve() ``` @@ -58170,7 +58596,7 @@ client.chat.scopes.default_scopes_retrieve()
-
client.chat.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.chat.scopes.linked_account_scopes_retrieve()
@@ -58198,13 +58624,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.scopes.linked_account_scopes_retrieve() ``` @@ -58233,7 +58657,7 @@ client.chat.scopes.linked_account_scopes_retrieve()
-
client.chat.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.chat.scopes.linked_account_scopes_create(...)
@@ -58261,14 +58685,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.chat import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.chat import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -58279,16 +58705,11 @@ client.chat.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -58298,7 +58719,7 @@ client.chat.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -58316,7 +58737,7 @@ client.chat.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -58337,7 +58758,7 @@ client.chat.scopes.linked_account_scopes_create(
## Chat DeleteAccount -
client.chat.delete_account.delete() +
client.chat.delete_account.delete()
@@ -58365,13 +58786,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.delete_account.delete() ``` @@ -58401,7 +58820,7 @@ client.chat.delete_account.delete()
## Chat FieldMapping -
client.chat.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.chat.field_mapping.field_mappings_retrieve(...)
@@ -58429,13 +58848,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -58474,7 +58891,7 @@ client.chat.field_mapping.field_mappings_retrieve(
-
client.chat.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.chat.field_mapping.field_mappings_create(...)
@@ -58502,19 +58919,15 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -58534,7 +58947,7 @@ client.chat.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -58642,7 +59055,7 @@ client.chat.field_mapping.field_mappings_create(
-
client.chat.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.chat.field_mapping.field_mappings_destroy(...)
@@ -58670,13 +59083,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -58715,7 +59126,7 @@ client.chat.field_mapping.field_mappings_destroy(
-
client.chat.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.chat.field_mapping.field_mappings_partial_update(...)
@@ -58743,13 +59154,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -58785,7 +59194,7 @@ client.chat.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -58837,7 +59246,7 @@ client.chat.field_mapping.field_mappings_partial_update(
-
client.chat.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.chat.field_mapping.remote_fields_retrieve(...)
@@ -58865,13 +59274,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -58919,7 +59326,7 @@ client.chat.field_mapping.remote_fields_retrieve(
-
client.chat.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.chat.field_mapping.target_fields_retrieve()
@@ -58947,13 +59354,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.target_fields_retrieve() ``` @@ -58982,7 +59387,7 @@ client.chat.field_mapping.target_fields_retrieve()
-
client.chat.field_mapping.target_fields_create(...) -> ExternalTargetFieldApiResponse +
client.chat.field_mapping.target_fields_create(...)
@@ -59010,13 +59415,11 @@ Create a new organization-wide Target Field. Target Fields are custom fields tha ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.field_mapping.target_fields_create( name="employee_favorite_team", common_model="Employee", @@ -59073,7 +59476,7 @@ client.chat.field_mapping.target_fields_create(
## Chat GenerateKey -
client.chat.generate_key.create(...) -> RemoteKey +
client.chat.generate_key.create(...)
@@ -59101,13 +59504,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.generate_key.create( name="Remote Deployment Key 1", ) @@ -59147,7 +59548,7 @@ client.chat.generate_key.create(
## Chat Groups -
client.chat.groups.list(...) -> PaginatedGroupList +
client.chat.groups.list(...)
@@ -59174,24 +59575,31 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -59210,7 +59618,7 @@ client.chat.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -59218,7 +59626,7 @@ client.chat.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -59234,7 +59642,11 @@ client.chat.groups.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["users"], typing.Sequence[typing.Literal["users"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -59266,7 +59678,7 @@ client.chat.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -59274,7 +59686,7 @@ client.chat.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -59310,7 +59722,7 @@ client.chat.groups.list(
-
client.chat.groups.retrieve(...) -> Group +
client.chat.groups.retrieve(...)
@@ -59338,13 +59750,11 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.groups.retrieve( id="id", include_remote_data=True, @@ -59373,7 +59783,11 @@ client.chat.groups.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["users"], typing.Sequence[typing.Literal["users"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -59410,7 +59824,7 @@ client.chat.groups.retrieve(
## Chat Issues -
client.chat.issues.list(...) -> PaginatedIssueList +
client.chat.issues.list(...)
@@ -59437,30 +59851,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.chat.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -59509,7 +59931,7 @@ client.chat.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -59517,7 +59939,7 @@ client.chat.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -59541,7 +59963,7 @@ client.chat.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -59549,7 +59971,7 @@ client.chat.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -59601,7 +60023,7 @@ client.chat.issues.list(
-
client.chat.issues.retrieve(...) -> Issue +
client.chat.issues.retrieve(...)
@@ -59629,13 +60051,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.issues.retrieve( id="id", ) @@ -59675,7 +60095,7 @@ client.chat.issues.retrieve(
## Chat LinkToken -
client.chat.link_token.create(...) -> LinkToken +
client.chat.link_token.create(...)
@@ -59703,21 +60123,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.chat import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -59758,7 +60174,7 @@ client.chat.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -59798,7 +60214,7 @@ client.chat.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -59806,7 +60222,14 @@ client.chat.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -59830,7 +60253,7 @@ client.chat.link_token.create(
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -59875,7 +60298,7 @@ client.chat.link_token.create(
## Chat LinkedAccounts -
client.chat.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.chat.linked_accounts.list(...)
@@ -59903,15 +60326,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.chat.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -60057,7 +60481,7 @@ client.chat.linked_accounts.list(
## Chat Messages -
client.chat.messages.list(...) -> PaginatedMessageList +
client.chat.messages.list(...)
@@ -60084,26 +60508,34 @@ Returns a list of `Message` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.chat.resources.messages import MessagesListRequestOrderBy + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.messages.list( conversation_id="conversation_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - order_by="-remote_created_at", + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + order_by=MessagesListRequestOrderBy.REMOTE_CREATED_AT_DESCENDING, page_size=1, remote_id="remote_id", root_message="root_message", @@ -60131,7 +60563,7 @@ client.chat.messages.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -60139,7 +60571,7 @@ client.chat.messages.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -60179,7 +60611,7 @@ client.chat.messages.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -60187,7 +60619,7 @@ client.chat.messages.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -60239,7 +60671,7 @@ client.chat.messages.list(
-
client.chat.messages.retrieve(...) -> Message +
client.chat.messages.retrieve(...)
@@ -60267,13 +60699,11 @@ Returns a `Message` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.messages.retrieve( id="id", include_remote_data=True, @@ -60330,7 +60760,7 @@ client.chat.messages.retrieve(
-
client.chat.messages.replies_list(...) -> PaginatedMessageList +
client.chat.messages.replies_list(...)
@@ -60358,20 +60788,21 @@ Returns a list of `Message` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.chat.resources.messages import ( + MessagesRepliesListRequestOrderBy, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.messages.replies_list( message_id="message_id", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - order_by="-remote_created_at", + order_by=MessagesRepliesListRequestOrderBy.REMOTE_CREATED_AT_DESCENDING, page_size=1, ) @@ -60458,7 +60889,7 @@ client.chat.messages.replies_list(
## Chat Passthrough -
client.chat.passthrough.create(...) -> RemoteResponse +
client.chat.passthrough.create(...)
@@ -60486,17 +60917,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.chat import DataPassthroughRequest +from merge.resources.chat import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -60536,7 +60965,7 @@ client.chat.passthrough.create(
## Chat RegenerateKey -
client.chat.regenerate_key.create(...) -> RemoteKey +
client.chat.regenerate_key.create(...)
@@ -60564,13 +60993,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -60610,7 +61037,7 @@ client.chat.regenerate_key.create(
## Chat SyncStatus -
client.chat.sync_status.list(...) -> PaginatedSyncStatusList +
client.chat.sync_status.list(...)
@@ -60638,13 +61065,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -60693,7 +61118,7 @@ client.chat.sync_status.list(
## Chat ForceResync -
client.chat.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.chat.force_resync.sync_status_resync_create()
@@ -60721,13 +61146,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.force_resync.sync_status_resync_create() ``` @@ -60757,7 +61180,7 @@ client.chat.force_resync.sync_status_resync_create()
## Chat Users -
client.chat.users.list(...) -> PaginatedUserList +
client.chat.users.list(...)
@@ -60784,24 +61207,31 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -60820,7 +61250,7 @@ client.chat.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -60828,7 +61258,7 @@ client.chat.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -60844,7 +61274,11 @@ client.chat.users.list(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["groups"], typing.Sequence[typing.Literal["groups"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -60876,7 +61310,7 @@ client.chat.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -60884,7 +61318,7 @@ client.chat.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -60920,7 +61354,7 @@ client.chat.users.list(
-
client.chat.users.retrieve(...) -> User +
client.chat.users.retrieve(...)
@@ -60948,13 +61382,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.users.retrieve( id="id", include_remote_data=True, @@ -60983,7 +61415,11 @@ client.chat.users.retrieve(
-**expand:** `typing.Optional[typing.Union[typing.Literal, typing.Sequence[typing.Literal]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + typing.Literal["groups"], typing.Sequence[typing.Literal["groups"]] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -61020,7 +61456,7 @@ client.chat.users.retrieve(
## Chat WebhookReceivers -
client.chat.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.chat.webhook_receivers.list()
@@ -61048,13 +61484,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.webhook_receivers.list() ``` @@ -61083,7 +61517,7 @@ client.chat.webhook_receivers.list()
-
client.chat.webhook_receivers.create(...) -> WebhookReceiver +
client.chat.webhook_receivers.create(...)
@@ -61111,13 +61545,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.chat.webhook_receivers.create( event="event", is_active=True, @@ -61174,7 +61606,7 @@ client.chat.webhook_receivers.create(
## Email AccountDetails -
client.email.account_details.retrieve() -> AccountDetails +
client.email.account_details.retrieve()
@@ -61202,13 +61634,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.account_details.retrieve() ``` @@ -61238,7 +61668,7 @@ client.email.account_details.retrieve()
## Email AccountToken -
client.email.account_token.retrieve(...) -> AccountToken +
client.email.account_token.retrieve(...)
@@ -61266,13 +61696,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.account_token.retrieve( public_token="public_token", ) @@ -61311,7 +61739,7 @@ client.email.account_token.retrieve(
-
client.email.account_token.regenerate_create() -> RegenerateAccountToken +
client.email.account_token.regenerate_create()
@@ -61339,13 +61767,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.account_token.regenerate_create() ``` @@ -61375,7 +61801,7 @@ client.email.account_token.regenerate_create()
## Email AsyncPassthrough -
client.email.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.email.async_passthrough.create(...)
@@ -61403,17 +61829,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.email import DataPassthroughRequest +from merge.resources.email import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -61452,7 +61876,7 @@ client.email.async_passthrough.create(
-
client.email.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.email.async_passthrough.retrieve(...)
@@ -61480,13 +61904,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -61526,7 +61948,7 @@ client.email.async_passthrough.retrieve(
## Email AuditTrail -
client.email.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.email.audit_trail.list(...)
@@ -61554,13 +61976,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -61645,7 +62065,7 @@ client.email.audit_trail.list(
## Email AvailableActions -
client.email.available_actions.retrieve() -> AvailableActions +
client.email.available_actions.retrieve()
@@ -61673,13 +62093,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.available_actions.retrieve() ``` @@ -61709,7 +62127,7 @@ client.email.available_actions.retrieve()
## Email Scopes -
client.email.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.email.scopes.default_scopes_retrieve()
@@ -61737,13 +62155,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.scopes.default_scopes_retrieve() ``` @@ -61772,7 +62188,7 @@ client.email.scopes.default_scopes_retrieve()
-
client.email.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.email.scopes.linked_account_scopes_retrieve()
@@ -61800,13 +62216,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.scopes.linked_account_scopes_retrieve() ``` @@ -61835,7 +62249,7 @@ client.email.scopes.linked_account_scopes_retrieve()
-
client.email.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.email.scopes.linked_account_scopes_create(...)
@@ -61863,14 +62277,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.email import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.email import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -61881,16 +62297,11 @@ client.email.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -61900,7 +62311,7 @@ client.email.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -61918,7 +62329,7 @@ client.email.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -61939,7 +62350,7 @@ client.email.scopes.linked_account_scopes_create(
## Email DeleteAccount -
client.email.delete_account.delete() +
client.email.delete_account.delete()
@@ -61967,13 +62378,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.delete_account.delete() ``` @@ -62003,7 +62412,7 @@ client.email.delete_account.delete()
## Email EmailAddresses -
client.email.email_addresses.list(...) -> PaginatedEmailAddressList +
client.email.email_addresses.list(...)
@@ -62030,25 +62439,32 @@ Returns a list of `EmailAddress` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.email_addresses.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -62067,7 +62483,7 @@ client.email.email_addresses.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -62075,7 +62491,7 @@ client.email.email_addresses.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -62099,7 +62515,12 @@ client.email.email_addresses.list(
-**expand:** `typing.Optional[typing.Union[EmailAddressesListRequestExpandItem, typing.Sequence[EmailAddressesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmailAddressesListRequestExpandItem, + typing.Sequence[EmailAddressesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -62131,7 +62552,7 @@ client.email.email_addresses.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -62139,7 +62560,7 @@ client.email.email_addresses.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -62175,7 +62596,7 @@ client.email.email_addresses.list(
-
client.email.email_addresses.retrieve(...) -> EmailAddress +
client.email.email_addresses.retrieve(...)
@@ -62203,13 +62624,11 @@ Returns an `EmailAddress` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.email_addresses.retrieve( id="id", include_remote_data=True, @@ -62238,7 +62657,12 @@ client.email.email_addresses.retrieve(
-**expand:** `typing.Optional[typing.Union[EmailAddressesRetrieveRequestExpandItem, typing.Sequence[EmailAddressesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + EmailAddressesRetrieveRequestExpandItem, + typing.Sequence[EmailAddressesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -62275,7 +62699,7 @@ client.email.email_addresses.retrieve(
## Email FieldMapping -
client.email.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.email.field_mapping.field_mappings_retrieve(...)
@@ -62303,13 +62727,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -62348,7 +62770,7 @@ client.email.field_mapping.field_mappings_retrieve(
-
client.email.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.email.field_mapping.field_mappings_create(...)
@@ -62376,19 +62798,15 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -62408,7 +62826,7 @@ client.email.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -62516,7 +62934,7 @@ client.email.field_mapping.field_mappings_create(
-
client.email.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.email.field_mapping.field_mappings_destroy(...)
@@ -62544,13 +62962,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -62589,7 +63005,7 @@ client.email.field_mapping.field_mappings_destroy(
-
client.email.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.email.field_mapping.field_mappings_partial_update(...)
@@ -62617,13 +63033,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -62659,7 +63073,7 @@ client.email.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -62711,7 +63125,7 @@ client.email.field_mapping.field_mappings_partial_update(
-
client.email.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.email.field_mapping.remote_fields_retrieve(...)
@@ -62739,13 +63153,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -62793,7 +63205,7 @@ client.email.field_mapping.remote_fields_retrieve(
-
client.email.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.email.field_mapping.target_fields_retrieve()
@@ -62821,13 +63233,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.target_fields_retrieve() ``` @@ -62856,7 +63266,7 @@ client.email.field_mapping.target_fields_retrieve()
-
client.email.field_mapping.target_fields_create(...) -> ExternalTargetFieldApiResponse +
client.email.field_mapping.target_fields_create(...)
@@ -62884,13 +63294,11 @@ Create a new organization-wide Target Field. Target Fields are custom fields tha ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.field_mapping.target_fields_create( name="employee_favorite_team", common_model="Employee", @@ -62947,7 +63355,7 @@ client.email.field_mapping.target_fields_create(
## Email Folders -
client.email.folders.list(...) -> PaginatedFolderList +
client.email.folders.list(...)
@@ -62974,24 +63382,31 @@ Returns a list of `Folder` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.folders.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -63011,7 +63426,7 @@ client.email.folders.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -63019,7 +63434,7 @@ client.email.folders.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -63035,7 +63450,12 @@ client.email.folders.list(
-**expand:** `typing.Optional[typing.Union[FoldersListRequestExpandItem, typing.Sequence[FoldersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FoldersListRequestExpandItem, + typing.Sequence[FoldersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -63067,7 +63487,7 @@ client.email.folders.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -63075,7 +63495,7 @@ client.email.folders.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -63119,7 +63539,7 @@ client.email.folders.list(
-
client.email.folders.retrieve(...) -> Folder +
client.email.folders.retrieve(...)
@@ -63147,13 +63567,11 @@ Returns a `Folder` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.folders.retrieve( id="id", include_remote_data=True, @@ -63182,7 +63600,12 @@ client.email.folders.retrieve(
-**expand:** `typing.Optional[typing.Union[FoldersRetrieveRequestExpandItem, typing.Sequence[FoldersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FoldersRetrieveRequestExpandItem, + typing.Sequence[FoldersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -63219,7 +63642,7 @@ client.email.folders.retrieve(
## Email GenerateKey -
client.email.generate_key.create(...) -> RemoteKey +
client.email.generate_key.create(...)
@@ -63247,13 +63670,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.generate_key.create( name="Remote Deployment Key 1", ) @@ -63293,7 +63714,7 @@ client.email.generate_key.create(
## Email Groups -
client.email.groups.list(...) -> PaginatedGroupList +
client.email.groups.list(...)
@@ -63320,24 +63741,31 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", user_id="user_id", @@ -63357,7 +63785,7 @@ client.email.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -63365,7 +63793,7 @@ client.email.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -63381,7 +63809,12 @@ client.email.groups.list(
-**expand:** `typing.Optional[typing.Union[GroupsListRequestExpandItem, typing.Sequence[GroupsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsListRequestExpandItem, + typing.Sequence[GroupsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -63413,7 +63846,7 @@ client.email.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -63421,7 +63854,7 @@ client.email.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -63465,7 +63898,7 @@ client.email.groups.list(
-
client.email.groups.retrieve(...) -> Group +
client.email.groups.retrieve(...)
@@ -63493,13 +63926,11 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.groups.retrieve( id="id", include_remote_data=True, @@ -63528,7 +63959,12 @@ client.email.groups.retrieve(
-**expand:** `typing.Optional[typing.Union[GroupsRetrieveRequestExpandItem, typing.Sequence[GroupsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsRetrieveRequestExpandItem, + typing.Sequence[GroupsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -63565,7 +64001,7 @@ client.email.groups.retrieve(
## Email Issues -
client.email.issues.list(...) -> PaginatedIssueList +
client.email.issues.list(...)
@@ -63592,30 +64028,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.email.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -63664,7 +64108,7 @@ client.email.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -63672,7 +64116,7 @@ client.email.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -63696,7 +64140,7 @@ client.email.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -63704,7 +64148,7 @@ client.email.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -63756,7 +64200,7 @@ client.email.issues.list(
-
client.email.issues.retrieve(...) -> Issue +
client.email.issues.retrieve(...)
@@ -63784,13 +64228,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.issues.retrieve( id="id", ) @@ -63830,7 +64272,7 @@ client.email.issues.retrieve(
## Email LinkToken -
client.email.link_token.create(...) -> LinkToken +
client.email.link_token.create(...)
@@ -63858,21 +64300,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.email import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -63913,7 +64351,7 @@ client.email.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -63953,7 +64391,7 @@ client.email.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -63961,7 +64399,14 @@ client.email.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -63985,7 +64430,7 @@ client.email.link_token.create(
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -64030,7 +64475,7 @@ client.email.link_token.create(
## Email LinkedAccounts -
client.email.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.email.linked_accounts.list(...)
@@ -64058,15 +64503,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.email.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -64212,7 +64658,7 @@ client.email.linked_accounts.list(
## Email Mailboxes -
client.email.mailboxes.list(...) -> PaginatedMailboxList +
client.email.mailboxes.list(...)
@@ -64239,29 +64685,34 @@ Returns a list of `Mailbox` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.mailboxes.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, primary_email_address_id="primary_email_address_id", - remote_fields="type", remote_id="remote_id", - show_enum_origins="type", user_id="user_id", ) @@ -64279,7 +64730,7 @@ client.email.mailboxes.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -64287,7 +64738,7 @@ client.email.mailboxes.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -64303,7 +64754,12 @@ client.email.mailboxes.list(
-**expand:** `typing.Optional[typing.Union[MailboxesListRequestExpandItem, typing.Sequence[MailboxesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + MailboxesListRequestExpandItem, + typing.Sequence[MailboxesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -64335,7 +64791,7 @@ client.email.mailboxes.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -64343,7 +64799,7 @@ client.email.mailboxes.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -64367,7 +64823,7 @@ client.email.mailboxes.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -64383,7 +64839,7 @@ client.email.mailboxes.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -64411,7 +64867,7 @@ client.email.mailboxes.list(
-
client.email.mailboxes.retrieve(...) -> Mailbox +
client.email.mailboxes.retrieve(...)
@@ -64439,19 +64895,15 @@ Returns a `Mailbox` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.mailboxes.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="type", - show_enum_origins="type", ) ``` @@ -64476,7 +64928,12 @@ client.email.mailboxes.retrieve(
-**expand:** `typing.Optional[typing.Union[MailboxesRetrieveRequestExpandItem, typing.Sequence[MailboxesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + MailboxesRetrieveRequestExpandItem, + typing.Sequence[MailboxesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -64500,7 +64957,7 @@ client.email.mailboxes.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -64508,7 +64965,7 @@ client.email.mailboxes.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -64529,7 +64986,7 @@ client.email.mailboxes.retrieve(
## Email Messages -
client.email.messages.list(...) -> PaginatedMessageList +
client.email.messages.list(...)
@@ -64556,28 +65013,35 @@ Returns a list of `Message` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.messages.list( bcc_address_id="bcc_address_id", cc_address_id="cc_address_id", - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", from_address_id="from_address_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, mailbox_id="mailbox_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", thread_id="thread_id", @@ -64614,7 +65078,7 @@ client.email.messages.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -64622,7 +65086,7 @@ client.email.messages.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -64638,7 +65102,12 @@ client.email.messages.list(
-**expand:** `typing.Optional[typing.Union[MessagesListRequestExpandItem, typing.Sequence[MessagesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + MessagesListRequestExpandItem, + typing.Sequence[MessagesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -64686,7 +65155,7 @@ client.email.messages.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -64694,7 +65163,7 @@ client.email.messages.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -64746,7 +65215,7 @@ client.email.messages.list(
-
client.email.messages.retrieve(...) -> Message +
client.email.messages.retrieve(...)
@@ -64774,13 +65243,11 @@ Returns a `Message` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.messages.retrieve( id="id", include_remote_data=True, @@ -64809,7 +65276,12 @@ client.email.messages.retrieve(
-**expand:** `typing.Optional[typing.Union[MessagesRetrieveRequestExpandItem, typing.Sequence[MessagesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + MessagesRetrieveRequestExpandItem, + typing.Sequence[MessagesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -64846,7 +65318,7 @@ client.email.messages.retrieve(
## Email Passthrough -
client.email.passthrough.create(...) -> RemoteResponse +
client.email.passthrough.create(...)
@@ -64874,17 +65346,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.email import DataPassthroughRequest +from merge.resources.email import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -64924,7 +65394,7 @@ client.email.passthrough.create(
## Email RegenerateKey -
client.email.regenerate_key.create(...) -> RemoteKey +
client.email.regenerate_key.create(...)
@@ -64952,13 +65422,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -64998,7 +65466,7 @@ client.email.regenerate_key.create(
## Email SyncStatus -
client.email.sync_status.list(...) -> PaginatedSyncStatusList +
client.email.sync_status.list(...)
@@ -65026,13 +65494,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -65081,7 +65547,7 @@ client.email.sync_status.list(
## Email ForceResync -
client.email.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.email.force_resync.sync_status_resync_create()
@@ -65109,13 +65575,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.force_resync.sync_status_resync_create() ``` @@ -65145,7 +65609,7 @@ client.email.force_resync.sync_status_resync_create()
## Email Users -
client.email.users.list(...) -> PaginatedUserList +
client.email.users.list(...)
@@ -65172,18 +65636,21 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address_id="email_address_id", group_id="group_id", @@ -65191,12 +65658,14 @@ client.email.users.list( include_remote_data=True, include_shell_data=True, mailbox_id="mailbox_id", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, - remote_fields="type", remote_id="remote_id", - show_enum_origins="type", ) ``` @@ -65213,7 +65682,7 @@ client.email.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -65221,7 +65690,7 @@ client.email.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -65245,7 +65714,11 @@ client.email.users.list(
-**expand:** `typing.Optional[typing.Union[UsersListRequestExpandItem, typing.Sequence[UsersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + UsersListRequestExpandItem, typing.Sequence[UsersListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -65293,7 +65766,7 @@ client.email.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -65301,7 +65774,7 @@ client.email.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -65317,7 +65790,7 @@ client.email.users.list(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -65333,7 +65806,7 @@ client.email.users.list(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -65353,7 +65826,7 @@ client.email.users.list(
-
client.email.users.retrieve(...) -> User +
client.email.users.retrieve(...)
@@ -65381,19 +65854,15 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.users.retrieve( id="id", include_remote_data=True, include_shell_data=True, - remote_fields="type", - show_enum_origins="type", ) ``` @@ -65418,7 +65887,12 @@ client.email.users.retrieve(
-**expand:** `typing.Optional[typing.Union[UsersRetrieveRequestExpandItem, typing.Sequence[UsersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + UsersRetrieveRequestExpandItem, + typing.Sequence[UsersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -65442,7 +65916,7 @@ client.email.users.retrieve(
-**remote_fields:** `typing.Optional[typing.Literal]` — Deprecated. Use show_enum_origins. +**remote_fields:** `typing.Optional[typing.Literal["type"]]` — Deprecated. Use show_enum_origins.
@@ -65450,7 +65924,7 @@ client.email.users.retrieve(
-**show_enum_origins:** `typing.Optional[typing.Literal]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) +**show_enum_origins:** `typing.Optional[typing.Literal["type"]]` — A comma separated list of enum field names for which you'd like the original values to be returned, instead of Merge's normalized enum values. [Learn more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter)
@@ -65471,7 +65945,7 @@ client.email.users.retrieve(
## Email WebhookReceivers -
client.email.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.email.webhook_receivers.list()
@@ -65499,13 +65973,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.webhook_receivers.list() ``` @@ -65534,7 +66006,7 @@ client.email.webhook_receivers.list()
-
client.email.webhook_receivers.create(...) -> WebhookReceiver +
client.email.webhook_receivers.create(...)
@@ -65562,13 +66034,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.email.webhook_receivers.create( event="event", is_active=True, @@ -65625,7 +66095,7 @@ client.email.webhook_receivers.create(
## Filestorage AccountDetails -
client.filestorage.account_details.retrieve() -> AccountDetails +
client.filestorage.account_details.retrieve()
@@ -65653,13 +66123,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.account_details.retrieve() ``` @@ -65689,7 +66157,7 @@ client.filestorage.account_details.retrieve()
## Filestorage AccountToken -
client.filestorage.account_token.retrieve(...) -> AccountToken +
client.filestorage.account_token.retrieve(...)
@@ -65717,13 +66185,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.account_token.retrieve( public_token="public_token", ) @@ -65762,7 +66228,7 @@ client.filestorage.account_token.retrieve(
-
client.filestorage.account_token.regenerate_create() -> RegenerateAccountToken +
client.filestorage.account_token.regenerate_create()
@@ -65790,13 +66256,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.account_token.regenerate_create() ``` @@ -65826,7 +66290,7 @@ client.filestorage.account_token.regenerate_create()
## Filestorage AsyncPassthrough -
client.filestorage.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.filestorage.async_passthrough.create(...)
@@ -65854,17 +66318,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.filestorage import DataPassthroughRequest +from merge.resources.filestorage import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -65903,7 +66365,7 @@ client.filestorage.async_passthrough.create(
-
client.filestorage.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.filestorage.async_passthrough.retrieve(...)
@@ -65931,13 +66393,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -65977,7 +66437,7 @@ client.filestorage.async_passthrough.retrieve(
## Filestorage AuditTrail -
client.filestorage.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.filestorage.audit_trail.list(...)
@@ -66005,13 +66465,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -66096,7 +66554,7 @@ client.filestorage.audit_trail.list(
## Filestorage AvailableActions -
client.filestorage.available_actions.retrieve() -> AvailableActions +
client.filestorage.available_actions.retrieve()
@@ -66124,13 +66582,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.available_actions.retrieve() ``` @@ -66160,7 +66616,7 @@ client.filestorage.available_actions.retrieve()
## Filestorage Scopes -
client.filestorage.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.filestorage.scopes.default_scopes_retrieve()
@@ -66188,13 +66644,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.scopes.default_scopes_retrieve() ``` @@ -66223,7 +66677,7 @@ client.filestorage.scopes.default_scopes_retrieve()
-
client.filestorage.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.filestorage.scopes.linked_account_scopes_retrieve()
@@ -66251,13 +66705,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.scopes.linked_account_scopes_retrieve() ``` @@ -66286,7 +66738,7 @@ client.filestorage.scopes.linked_account_scopes_retrieve()
-
client.filestorage.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.filestorage.scopes.linked_account_scopes_create(...)
@@ -66314,14 +66766,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.filestorage import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.filestorage import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -66332,16 +66786,11 @@ client.filestorage.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -66351,7 +66800,7 @@ client.filestorage.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -66369,7 +66818,7 @@ client.filestorage.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -66390,7 +66839,7 @@ client.filestorage.scopes.linked_account_scopes_create(
## Filestorage DeleteAccount -
client.filestorage.delete_account.delete() +
client.filestorage.delete_account.delete()
@@ -66418,13 +66867,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.delete_account.delete() ``` @@ -66454,7 +66901,7 @@ client.filestorage.delete_account.delete()
## Filestorage Drives -
client.filestorage.drives.list(...) -> PaginatedDriveList +
client.filestorage.drives.list(...)
@@ -66481,24 +66928,31 @@ Returns a list of `Drive` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.drives.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, remote_id="remote_id", @@ -66518,7 +66972,7 @@ client.filestorage.drives.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -66526,7 +66980,7 @@ client.filestorage.drives.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -66566,7 +67020,7 @@ client.filestorage.drives.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -66574,7 +67028,7 @@ client.filestorage.drives.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -66618,7 +67072,7 @@ client.filestorage.drives.list(
-
client.filestorage.drives.retrieve(...) -> Drive +
client.filestorage.drives.retrieve(...)
@@ -66646,13 +67100,11 @@ Returns a `Drive` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.drives.retrieve( id="id", include_remote_data=True, @@ -66710,7 +67162,7 @@ client.filestorage.drives.retrieve(
## Filestorage FieldMapping -
client.filestorage.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.filestorage.field_mapping.field_mappings_retrieve(...)
@@ -66738,13 +67190,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -66783,7 +67233,7 @@ client.filestorage.field_mapping.field_mappings_retrieve(
-
client.filestorage.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.filestorage.field_mapping.field_mappings_create(...)
@@ -66811,21 +67261,17 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, target_field_name="example_target_field_name", target_field_description="this is a example description of the target field", - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -66861,7 +67307,7 @@ client.filestorage.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -66929,7 +67375,7 @@ client.filestorage.field_mapping.field_mappings_create(
-
client.filestorage.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.filestorage.field_mapping.field_mappings_destroy(...)
@@ -66957,13 +67403,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -67002,7 +67446,7 @@ client.filestorage.field_mapping.field_mappings_destroy(
-
client.filestorage.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.filestorage.field_mapping.field_mappings_partial_update(...)
@@ -67030,13 +67474,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -67072,7 +67514,7 @@ client.filestorage.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -67116,7 +67558,7 @@ client.filestorage.field_mapping.field_mappings_partial_update(
-
client.filestorage.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.filestorage.field_mapping.remote_fields_retrieve(...)
@@ -67144,13 +67586,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -67198,7 +67638,7 @@ client.filestorage.field_mapping.remote_fields_retrieve(
-
client.filestorage.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.filestorage.field_mapping.target_fields_retrieve()
@@ -67226,13 +67666,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.field_mapping.target_fields_retrieve() ``` @@ -67262,7 +67700,7 @@ client.filestorage.field_mapping.target_fields_retrieve()
## Filestorage Files -
client.filestorage.files.list(...) -> PaginatedFileList +
client.filestorage.files.list(...)
@@ -67289,18 +67727,22 @@ Returns a list of `File` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.filestorage.resources.files import FilesListRequestOrderBy + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", drive_id="drive_id", folder_id="folder_id", @@ -67308,13 +67750,21 @@ client.filestorage.files.list( include_remote_data=True, include_shell_data=True, mime_type="mime_type", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", - order_by="-created_at", + order_by=FilesListRequestOrderBy.CREATED_AT_DESCENDING, page_size=1, - remote_created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - remote_created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + remote_created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + remote_created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), remote_id="remote_id", ) @@ -67332,7 +67782,7 @@ client.filestorage.files.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -67340,7 +67790,7 @@ client.filestorage.files.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -67364,7 +67814,11 @@ client.filestorage.files.list(
-**expand:** `typing.Optional[typing.Union[FilesListRequestExpandItem, typing.Sequence[FilesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FilesListRequestExpandItem, typing.Sequence[FilesListRequestExpandItem] + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -67412,7 +67866,7 @@ client.filestorage.files.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -67420,7 +67874,7 @@ client.filestorage.files.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -67452,7 +67906,7 @@ client.filestorage.files.list(
-**remote_created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return files created in the third party platform after this datetime. +**remote_created_after:** `typing.Optional[dt.datetime]` — If provided, will only return files created in the third party platform after this datetime.
@@ -67460,7 +67914,7 @@ client.filestorage.files.list(
-**remote_created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return files created in the third party platform before this datetime. +**remote_created_before:** `typing.Optional[dt.datetime]` — If provided, will only return files created in the third party platform before this datetime.
@@ -67488,7 +67942,7 @@ client.filestorage.files.list(
-
client.filestorage.files.create(...) -> FileStorageFileResponse +
client.filestorage.files.create(...)
@@ -67516,14 +67970,12 @@ Creates a `File` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.filestorage import FileRequest +from merge.resources.filestorage import FileRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.create( is_debug_mode=True, run_async=True, @@ -67580,7 +68032,7 @@ client.filestorage.files.create(
-
client.filestorage.files.retrieve(...) -> File +
client.filestorage.files.retrieve(...)
@@ -67608,13 +68060,11 @@ Returns a `File` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.retrieve( id="id", include_remote_data=True, @@ -67643,7 +68093,12 @@ client.filestorage.files.retrieve(
-**expand:** `typing.Optional[typing.Union[FilesRetrieveRequestExpandItem, typing.Sequence[FilesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FilesRetrieveRequestExpandItem, + typing.Sequence[FilesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -67679,85 +68134,7 @@ client.filestorage.files.retrieve(
-
client.filestorage.files.download_retrieve(...) -> typing.Iterator[bytes] -
-
- -#### 📝 Description - -
-
- -
-
- -Returns the `File` content with the given `id` as a stream of bytes. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -client.filestorage.files.download_retrieve(...) -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `str` - -
-
- -
-
- -**include_shell_data:** `typing.Optional[bool]` — Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null). - -
-
- -
-
- -**mime_type:** `typing.Optional[str]` — If provided, specifies the export format of the file to be downloaded. For information on supported export formats, please refer to our export format help center article. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.filestorage.files.download_request_meta_retrieve(...) -> DownloadRequestMeta +
client.filestorage.files.download_request_meta_retrieve(...)
@@ -67785,13 +68162,11 @@ Returns metadata to construct an authenticated file download request for a singu ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.download_request_meta_retrieve( id="id", mime_type="mime_type", @@ -67839,7 +68214,7 @@ client.filestorage.files.download_request_meta_retrieve(
-
client.filestorage.files.download_request_meta_list(...) -> PaginatedDownloadRequestMetaList +
client.filestorage.files.download_request_meta_list(...)
@@ -67867,13 +68242,14 @@ Returns metadata to construct authenticated file download requests, allowing you ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.filestorage.resources.files import ( + FilesDownloadRequestMetaListRequestOrderBy, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.download_request_meta_list( created_after="created_after", created_before="created_before", @@ -67882,7 +68258,7 @@ client.filestorage.files.download_request_meta_list( mime_types="mime_types", modified_after="modified_after", modified_before="modified_before", - order_by="-created_at", + order_by=FilesDownloadRequestMetaListRequestOrderBy.CREATED_AT_DESCENDING, page_size=1, ) @@ -67992,7 +68368,7 @@ client.filestorage.files.download_request_meta_list(
-
client.filestorage.files.meta_post_retrieve() -> MetaResponse +
client.filestorage.files.meta_post_retrieve()
@@ -68020,13 +68396,11 @@ Returns metadata for `FileStorageFile` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.files.meta_post_retrieve() ``` @@ -68056,7 +68430,7 @@ client.filestorage.files.meta_post_retrieve()
## Filestorage Folders -
client.filestorage.folders.list(...) -> PaginatedFolderList +
client.filestorage.folders.list(...)
@@ -68083,25 +68457,32 @@ Returns a list of `Folder` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.folders.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", drive_id="drive_id", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), name="name", page_size=1, parent_folder_id="parent_folder_id", @@ -68122,7 +68503,7 @@ client.filestorage.folders.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -68130,7 +68511,7 @@ client.filestorage.folders.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -68154,7 +68535,12 @@ client.filestorage.folders.list(
-**expand:** `typing.Optional[typing.Union[FoldersListRequestExpandItem, typing.Sequence[FoldersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FoldersListRequestExpandItem, + typing.Sequence[FoldersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -68186,7 +68572,7 @@ client.filestorage.folders.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -68194,7 +68580,7 @@ client.filestorage.folders.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -68246,7 +68632,7 @@ client.filestorage.folders.list(
-
client.filestorage.folders.create(...) -> FileStorageFolderResponse +
client.filestorage.folders.create(...)
@@ -68274,14 +68660,12 @@ Creates a `Folder` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.filestorage import FolderRequest +from merge.resources.filestorage import FolderRequest client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.folders.create( is_debug_mode=True, run_async=True, @@ -68338,7 +68722,7 @@ client.filestorage.folders.create(
-
client.filestorage.folders.retrieve(...) -> Folder +
client.filestorage.folders.retrieve(...)
@@ -68366,13 +68750,11 @@ Returns a `Folder` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.folders.retrieve( id="id", include_remote_data=True, @@ -68401,7 +68783,12 @@ client.filestorage.folders.retrieve(
-**expand:** `typing.Optional[typing.Union[FoldersRetrieveRequestExpandItem, typing.Sequence[FoldersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + FoldersRetrieveRequestExpandItem, + typing.Sequence[FoldersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -68437,7 +68824,7 @@ client.filestorage.folders.retrieve(
-
client.filestorage.folders.meta_post_retrieve() -> MetaResponse +
client.filestorage.folders.meta_post_retrieve()
@@ -68465,13 +68852,11 @@ Returns metadata for `FileStorageFolder` POSTs. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.folders.meta_post_retrieve() ``` @@ -68501,7 +68886,7 @@ client.filestorage.folders.meta_post_retrieve()
## Filestorage GenerateKey -
client.filestorage.generate_key.create(...) -> RemoteKey +
client.filestorage.generate_key.create(...)
@@ -68529,13 +68914,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.generate_key.create( name="Remote Deployment Key 1", ) @@ -68575,7 +68958,7 @@ client.filestorage.generate_key.create(
## Filestorage Groups -
client.filestorage.groups.list(...) -> PaginatedGroupList +
client.filestorage.groups.list(...)
@@ -68602,24 +68985,31 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -68638,7 +69028,7 @@ client.filestorage.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -68646,7 +69036,7 @@ client.filestorage.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -68662,7 +69052,12 @@ client.filestorage.groups.list(
-**expand:** `typing.Optional[typing.Union[GroupsListRequestExpandItem, typing.Sequence[GroupsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsListRequestExpandItem, + typing.Sequence[GroupsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -68694,7 +69089,7 @@ client.filestorage.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -68702,7 +69097,7 @@ client.filestorage.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -68738,7 +69133,7 @@ client.filestorage.groups.list(
-
client.filestorage.groups.retrieve(...) -> Group +
client.filestorage.groups.retrieve(...)
@@ -68766,13 +69161,11 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.groups.retrieve( id="id", include_remote_data=True, @@ -68801,7 +69194,12 @@ client.filestorage.groups.retrieve(
-**expand:** `typing.Optional[typing.Union[GroupsRetrieveRequestExpandItem, typing.Sequence[GroupsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsRetrieveRequestExpandItem, + typing.Sequence[GroupsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -68838,7 +69236,7 @@ client.filestorage.groups.retrieve(
## Filestorage Issues -
client.filestorage.issues.list(...) -> PaginatedIssueList +
client.filestorage.issues.list(...)
@@ -68865,30 +69263,38 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge +from merge.resources.filestorage.resources.issues import IssuesListRequestStatus + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -68937,7 +69343,7 @@ client.filestorage.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -68945,7 +69351,7 @@ client.filestorage.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -68969,7 +69375,7 @@ client.filestorage.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -68977,7 +69383,7 @@ client.filestorage.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -69034,7 +69440,7 @@ Status of the issue. Options: ('ONGOING', 'RESOLVED')
-
client.filestorage.issues.retrieve(...) -> Issue +
client.filestorage.issues.retrieve(...)
@@ -69062,13 +69468,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.issues.retrieve( id="id", ) @@ -69108,7 +69512,7 @@ client.filestorage.issues.retrieve(
## Filestorage LinkToken -
client.filestorage.link_token.create(...) -> LinkToken +
client.filestorage.link_token.create(...)
@@ -69136,21 +69540,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.filestorage import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -69191,7 +69591,7 @@ client.filestorage.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -69231,7 +69631,7 @@ client.filestorage.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -69239,7 +69639,14 @@ client.filestorage.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -69268,7 +69675,7 @@ The following subset of IETF language tags can be used to configure localization
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -69289,7 +69696,7 @@ The following subset of IETF language tags can be used to configure localization
## Filestorage LinkedAccounts -
client.filestorage.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.filestorage.linked_accounts.list(...)
@@ -69317,15 +69724,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.filestorage.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -69481,7 +69889,7 @@ Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, `mktg`, `ticketing`
## Filestorage Passthrough -
client.filestorage.passthrough.create(...) -> RemoteResponse +
client.filestorage.passthrough.create(...)
@@ -69509,17 +69917,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.filestorage import DataPassthroughRequest +from merge.resources.filestorage import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -69559,7 +69965,7 @@ client.filestorage.passthrough.create(
## Filestorage RegenerateKey -
client.filestorage.regenerate_key.create(...) -> RemoteKey +
client.filestorage.regenerate_key.create(...)
@@ -69587,13 +69993,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -69633,7 +70037,7 @@ client.filestorage.regenerate_key.create(
## Filestorage SyncStatus -
client.filestorage.sync_status.list(...) -> PaginatedSyncStatusList +
client.filestorage.sync_status.list(...)
@@ -69661,13 +70065,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -69716,7 +70118,7 @@ client.filestorage.sync_status.list(
## Filestorage ForceResync -
client.filestorage.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.filestorage.force_resync.sync_status_resync_create()
@@ -69744,13 +70146,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.force_resync.sync_status_resync_create() ``` @@ -69780,7 +70180,7 @@ client.filestorage.force_resync.sync_status_resync_create()
## Filestorage Users -
client.filestorage.users.list(...) -> PaginatedUserList +
client.filestorage.users.list(...)
@@ -69807,26 +70207,33 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", email_address="email_address", include_deleted_data=True, include_remote_data=True, include_shell_data=True, is_me="is_me", - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -69845,7 +70252,7 @@ client.filestorage.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -69853,7 +70260,7 @@ client.filestorage.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -69909,7 +70316,7 @@ client.filestorage.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -69917,7 +70324,7 @@ client.filestorage.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -69953,7 +70360,7 @@ client.filestorage.users.list(
-
client.filestorage.users.retrieve(...) -> User +
client.filestorage.users.retrieve(...)
@@ -69981,13 +70388,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.users.retrieve( id="id", include_remote_data=True, @@ -70045,7 +70450,7 @@ client.filestorage.users.retrieve(
## Filestorage WebhookReceivers -
client.filestorage.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.filestorage.webhook_receivers.list()
@@ -70073,13 +70478,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.webhook_receivers.list() ``` @@ -70108,7 +70511,7 @@ client.filestorage.webhook_receivers.list()
-
client.filestorage.webhook_receivers.create(...) -> WebhookReceiver +
client.filestorage.webhook_receivers.create(...)
@@ -70136,13 +70539,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.filestorage.webhook_receivers.create( event="event", is_active=True, @@ -70199,7 +70600,7 @@ client.filestorage.webhook_receivers.create(
## Knowledgebase AccountDetails -
client.knowledgebase.account_details.retrieve() -> AccountDetails +
client.knowledgebase.account_details.retrieve()
@@ -70227,13 +70628,11 @@ Get details for a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.account_details.retrieve() ``` @@ -70263,7 +70662,7 @@ client.knowledgebase.account_details.retrieve()
## Knowledgebase AccountToken -
client.knowledgebase.account_token.retrieve(...) -> AccountToken +
client.knowledgebase.account_token.retrieve(...)
@@ -70291,13 +70690,11 @@ Returns the account token for the end user with the provided public token. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.account_token.retrieve( public_token="public_token", ) @@ -70336,7 +70733,7 @@ client.knowledgebase.account_token.retrieve(
-
client.knowledgebase.account_token.regenerate_create() -> RegenerateAccountToken +
client.knowledgebase.account_token.regenerate_create()
@@ -70364,13 +70761,11 @@ Exchange Linked Account account tokens. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.account_token.regenerate_create() ``` @@ -70400,7 +70795,7 @@ client.knowledgebase.account_token.regenerate_create()
## Knowledgebase Articles -
client.knowledgebase.articles.list(...) -> PaginatedArticleList +
client.knowledgebase.articles.list(...)
@@ -70427,31 +70822,41 @@ Returns a list of `Article` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.knowledgebase.resources.articles import ( + ArticlesListRequestType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.knowledgebase.articles.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, parent_article_id="parent_article_id", parent_container_id="parent_container_id", remote_id="remote_id", root_container_id="root_container_id", status="status", - type="", + type=ArticlesListRequestType.EMPTY, ) ``` @@ -70468,7 +70873,7 @@ client.knowledgebase.articles.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -70476,7 +70881,7 @@ client.knowledgebase.articles.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -70492,7 +70897,12 @@ client.knowledgebase.articles.list(
-**expand:** `typing.Optional[typing.Union[ArticlesListRequestExpandItem, typing.Sequence[ArticlesListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ArticlesListRequestExpandItem, + typing.Sequence[ArticlesListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -70524,7 +70934,7 @@ client.knowledgebase.articles.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -70532,7 +70942,7 @@ client.knowledgebase.articles.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -70608,7 +71018,7 @@ client.knowledgebase.articles.list(
-
client.knowledgebase.articles.retrieve(...) -> Article +
client.knowledgebase.articles.retrieve(...)
@@ -70636,13 +71046,11 @@ Returns an `Article` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.articles.retrieve( id="id", include_remote_data=True, @@ -70671,7 +71079,12 @@ client.knowledgebase.articles.retrieve(
-**expand:** `typing.Optional[typing.Union[ArticlesRetrieveRequestExpandItem, typing.Sequence[ArticlesRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ArticlesRetrieveRequestExpandItem, + typing.Sequence[ArticlesRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -70708,7 +71121,7 @@ client.knowledgebase.articles.retrieve(
## Knowledgebase AsyncPassthrough -
client.knowledgebase.async_passthrough.create(...) -> AsyncPassthroughReciept +
client.knowledgebase.async_passthrough.create(...)
@@ -70736,17 +71149,15 @@ Asynchronously pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.knowledgebase import DataPassthroughRequest +from merge.resources.knowledgebase import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.async_passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -70785,7 +71196,7 @@ client.knowledgebase.async_passthrough.create(
-
client.knowledgebase.async_passthrough.retrieve(...) -> AsyncPassthroughRetrieveResponse +
client.knowledgebase.async_passthrough.retrieve(...)
@@ -70813,13 +71224,11 @@ Retrieves data from earlier async-passthrough POST request ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.async_passthrough.retrieve( async_passthrough_receipt_id="async_passthrough_receipt_id", ) @@ -70859,7 +71268,7 @@ client.knowledgebase.async_passthrough.retrieve(
## Knowledgebase Attachments -
client.knowledgebase.attachments.list(...) -> PaginatedAttachmentList +
client.knowledgebase.attachments.list(...)
@@ -70886,24 +71295,31 @@ Returns a list of `Attachment` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.attachments.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -70922,7 +71338,7 @@ client.knowledgebase.attachments.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -70930,7 +71346,7 @@ client.knowledgebase.attachments.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -70970,7 +71386,7 @@ client.knowledgebase.attachments.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -70978,7 +71394,7 @@ client.knowledgebase.attachments.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -71014,7 +71430,7 @@ client.knowledgebase.attachments.list(
-
client.knowledgebase.attachments.retrieve(...) -> Attachment +
client.knowledgebase.attachments.retrieve(...)
@@ -71042,13 +71458,11 @@ Returns an `Attachment` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.attachments.retrieve( id="id", include_remote_data=True, @@ -71106,7 +71520,7 @@ client.knowledgebase.attachments.retrieve(
## Knowledgebase AuditTrail -
client.knowledgebase.audit_trail.list(...) -> PaginatedAuditLogEventList +
client.knowledgebase.audit_trail.list(...)
@@ -71134,13 +71548,11 @@ Gets a list of audit trail events. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.audit_trail.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", @@ -71225,7 +71637,7 @@ client.knowledgebase.audit_trail.list(
## Knowledgebase AvailableActions -
client.knowledgebase.available_actions.retrieve() -> AvailableActions +
client.knowledgebase.available_actions.retrieve()
@@ -71253,13 +71665,11 @@ Returns a list of models and actions available for an account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.available_actions.retrieve() ``` @@ -71289,7 +71699,7 @@ client.knowledgebase.available_actions.retrieve()
## Knowledgebase Containers -
client.knowledgebase.containers.list(...) -> PaginatedContainerList +
client.knowledgebase.containers.list(...)
@@ -71316,29 +71726,39 @@ Returns a list of `Container` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.knowledgebase.resources.containers import ( + ContainersListRequestType, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.knowledgebase.containers.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, parent_article_id="parent_article_id", parent_container_id="parent_container_id", remote_id="remote_id", - type="", + type=ContainersListRequestType.EMPTY, ) ``` @@ -71355,7 +71775,7 @@ client.knowledgebase.containers.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -71363,7 +71783,7 @@ client.knowledgebase.containers.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -71379,7 +71799,12 @@ client.knowledgebase.containers.list(
-**expand:** `typing.Optional[typing.Union[ContainersListRequestExpandItem, typing.Sequence[ContainersListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContainersListRequestExpandItem, + typing.Sequence[ContainersListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -71411,7 +71836,7 @@ client.knowledgebase.containers.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -71419,7 +71844,7 @@ client.knowledgebase.containers.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -71479,7 +71904,7 @@ client.knowledgebase.containers.list(
-
client.knowledgebase.containers.retrieve(...) -> Container +
client.knowledgebase.containers.retrieve(...)
@@ -71507,13 +71932,11 @@ Returns a `Container` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.containers.retrieve( id="id", include_remote_data=True, @@ -71542,7 +71965,12 @@ client.knowledgebase.containers.retrieve(
-**expand:** `typing.Optional[typing.Union[ContainersRetrieveRequestExpandItem, typing.Sequence[ContainersRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + ContainersRetrieveRequestExpandItem, + typing.Sequence[ContainersRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -71579,7 +72007,7 @@ client.knowledgebase.containers.retrieve(
## Knowledgebase Scopes -
client.knowledgebase.scopes.default_scopes_retrieve() -> CommonModelScopeApi +
client.knowledgebase.scopes.default_scopes_retrieve()
@@ -71607,13 +72035,11 @@ Get the default permissions for Merge Common Models and fields across all Linked ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.scopes.default_scopes_retrieve() ``` @@ -71642,7 +72068,7 @@ client.knowledgebase.scopes.default_scopes_retrieve()
-
client.knowledgebase.scopes.linked_account_scopes_retrieve() -> CommonModelScopeApi +
client.knowledgebase.scopes.linked_account_scopes_retrieve()
@@ -71670,13 +72096,11 @@ Get all available permissions for Merge Common Models and fields for a single Li ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.scopes.linked_account_scopes_retrieve() ``` @@ -71705,7 +72129,7 @@ client.knowledgebase.scopes.linked_account_scopes_retrieve()
-
client.knowledgebase.scopes.linked_account_scopes_create(...) -> CommonModelScopeApi +
client.knowledgebase.scopes.linked_account_scopes_create(...)
@@ -71733,14 +72157,16 @@ Update permissions for any Common Model or field for a single Linked Account. An ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.knowledgebase import IndividualCommonModelScopeDeserializerRequest, ModelPermissionDeserializerRequest, FieldPermissionDeserializerRequest +from merge.resources.knowledgebase import ( + FieldPermissionDeserializerRequest, + IndividualCommonModelScopeDeserializerRequest, + ModelPermissionDeserializerRequest, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.scopes.linked_account_scopes_create( common_models=[ IndividualCommonModelScopeDeserializerRequest( @@ -71751,16 +72177,11 @@ client.knowledgebase.scopes.linked_account_scopes_create( ), "WRITE": ModelPermissionDeserializerRequest( is_enabled=False, - ) + ), }, field_permissions=FieldPermissionDeserializerRequest( - enabled_fields=[ - "avatar", - "home_location" - ], - disabled_fields=[ - "work_location" - ], + enabled_fields=["avatar", "home_location"], + disabled_fields=["work_location"], ), ), IndividualCommonModelScopeDeserializerRequest( @@ -71770,7 +72191,7 @@ client.knowledgebase.scopes.linked_account_scopes_create( is_enabled=False, ) }, - ) + ), ], ) @@ -71788,7 +72209,7 @@ client.knowledgebase.scopes.linked_account_scopes_create(
-**common_models:** `typing.List[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for +**common_models:** `typing.Sequence[IndividualCommonModelScopeDeserializerRequest]` — The common models you want to update the scopes for
@@ -71809,7 +72230,7 @@ client.knowledgebase.scopes.linked_account_scopes_create(
## Knowledgebase DeleteAccount -
client.knowledgebase.delete_account.delete() +
client.knowledgebase.delete_account.delete()
@@ -71837,13 +72258,11 @@ Delete a linked account. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.delete_account.delete() ``` @@ -71873,7 +72292,7 @@ client.knowledgebase.delete_account.delete()
## Knowledgebase FieldMapping -
client.knowledgebase.field_mapping.field_mappings_retrieve(...) -> FieldMappingApiInstanceResponse +
client.knowledgebase.field_mapping.field_mappings_retrieve(...)
@@ -71901,13 +72320,11 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.field_mappings_retrieve( exclude_remote_field_metadata=True, ) @@ -71946,7 +72363,7 @@ client.knowledgebase.field_mapping.field_mappings_retrieve(
-
client.knowledgebase.field_mapping.field_mappings_create(...) -> FieldMappingInstanceResponse +
client.knowledgebase.field_mapping.field_mappings_create(...)
@@ -71974,19 +72391,15 @@ Create new Field Mappings that will be available after the next scheduled sync. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.field_mappings_create( exclude_remote_field_metadata=True, remote_data_iteration_count=1, - remote_field_traversal_path=[ - "example_remote_field" - ], + remote_field_traversal_path=["example_remote_field"], remote_method="GET", remote_url_path="/example-url-path", common_model_name="ExampleCommonModel", @@ -72006,7 +72419,7 @@ client.knowledgebase.field_mapping.field_mappings_create(
-**remote_field_traversal_path:** `typing.List[typing.Any]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Sequence[typing.Optional[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -72114,7 +72527,7 @@ client.knowledgebase.field_mapping.field_mappings_create(
-
client.knowledgebase.field_mapping.field_mappings_destroy(...) -> FieldMappingInstanceResponse +
client.knowledgebase.field_mapping.field_mappings_destroy(...)
@@ -72142,13 +72555,11 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.field_mappings_destroy( field_mapping_id="field_mapping_id", ) @@ -72187,7 +72598,7 @@ client.knowledgebase.field_mapping.field_mappings_destroy(
-
client.knowledgebase.field_mapping.field_mappings_partial_update(...) -> FieldMappingInstanceResponse +
client.knowledgebase.field_mapping.field_mappings_partial_update(...)
@@ -72215,13 +72626,11 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.field_mappings_partial_update( field_mapping_id="field_mapping_id", remote_data_iteration_count=1, @@ -72257,7 +72666,7 @@ client.knowledgebase.field_mapping.field_mappings_partial_update(
-**remote_field_traversal_path:** `typing.Optional[typing.List[typing.Any]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. +**remote_field_traversal_path:** `typing.Optional[typing.Sequence[typing.Optional[typing.Any]]]` — The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint.
@@ -72309,7 +72718,7 @@ client.knowledgebase.field_mapping.field_mappings_partial_update(
-
client.knowledgebase.field_mapping.remote_fields_retrieve(...) -> RemoteFieldApiResponse +
client.knowledgebase.field_mapping.remote_fields_retrieve(...)
@@ -72337,13 +72746,11 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.remote_fields_retrieve( common_models="common_models", include_example_values="include_example_values", @@ -72391,7 +72798,7 @@ client.knowledgebase.field_mapping.remote_fields_retrieve(
-
client.knowledgebase.field_mapping.target_fields_retrieve() -> ExternalTargetFieldApiResponse +
client.knowledgebase.field_mapping.target_fields_retrieve()
@@ -72419,13 +72826,11 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.target_fields_retrieve() ``` @@ -72454,7 +72859,7 @@ client.knowledgebase.field_mapping.target_fields_retrieve()
-
client.knowledgebase.field_mapping.target_fields_create(...) -> ExternalTargetFieldApiResponse +
client.knowledgebase.field_mapping.target_fields_create(...)
@@ -72482,13 +72887,11 @@ Create a new organization-wide Target Field. Target Fields are custom fields tha ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.field_mapping.target_fields_create( name="employee_favorite_team", common_model="Employee", @@ -72545,7 +72948,7 @@ client.knowledgebase.field_mapping.target_fields_create(
## Knowledgebase GenerateKey -
client.knowledgebase.generate_key.create(...) -> RemoteKey +
client.knowledgebase.generate_key.create(...)
@@ -72573,13 +72976,11 @@ Create a remote key. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.generate_key.create( name="Remote Deployment Key 1", ) @@ -72619,7 +73020,7 @@ client.knowledgebase.generate_key.create(
## Knowledgebase Groups -
client.knowledgebase.groups.list(...) -> PaginatedGroupList +
client.knowledgebase.groups.list(...)
@@ -72646,24 +73047,31 @@ Returns a list of `Group` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.groups.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -72682,7 +73090,7 @@ client.knowledgebase.groups.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -72690,7 +73098,7 @@ client.knowledgebase.groups.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -72706,7 +73114,12 @@ client.knowledgebase.groups.list(
-**expand:** `typing.Optional[typing.Union[GroupsListRequestExpandItem, typing.Sequence[GroupsListRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsListRequestExpandItem, + typing.Sequence[GroupsListRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -72738,7 +73151,7 @@ client.knowledgebase.groups.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -72746,7 +73159,7 @@ client.knowledgebase.groups.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -72782,7 +73195,7 @@ client.knowledgebase.groups.list(
-
client.knowledgebase.groups.retrieve(...) -> Group +
client.knowledgebase.groups.retrieve(...)
@@ -72810,13 +73223,11 @@ Returns a `Group` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.groups.retrieve( id="id", include_remote_data=True, @@ -72845,7 +73256,12 @@ client.knowledgebase.groups.retrieve(
-**expand:** `typing.Optional[typing.Union[GroupsRetrieveRequestExpandItem, typing.Sequence[GroupsRetrieveRequestExpandItem]]]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces. +**expand:** `typing.Optional[ + typing.Union[ + GroupsRetrieveRequestExpandItem, + typing.Sequence[GroupsRetrieveRequestExpandItem], + ] +]` — Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
@@ -72882,7 +73298,7 @@ client.knowledgebase.groups.retrieve(
## Knowledgebase Issues -
client.knowledgebase.issues.list(...) -> PaginatedIssueList +
client.knowledgebase.issues.list(...)
@@ -72909,30 +73325,40 @@ Gets all issues for Organization.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime -client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, +from merge import Merge +from merge.resources.knowledgebase.resources.issues import ( + IssuesListRequestStatus, ) +client = Merge( + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", +) client.knowledgebase.issues.list( account_token="account_token", cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_date="end_date", end_user_organization_name="end_user_organization_name", - first_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - first_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + first_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + first_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), include_muted="include_muted", integration_name="integration_name", - last_incident_time_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - last_incident_time_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + last_incident_time_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + last_incident_time_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), linked_account_id="linked_account_id", page_size=1, start_date="start_date", - status="ONGOING", + status=IssuesListRequestStatus.ONGOING, ) ``` @@ -72981,7 +73407,7 @@ client.knowledgebase.issues.list(
-**first_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was after this datetime. +**first_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was after this datetime.
@@ -72989,7 +73415,7 @@ client.knowledgebase.issues.list(
-**first_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose first incident time was before this datetime. +**first_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose first incident time was before this datetime.
@@ -73013,7 +73439,7 @@ client.knowledgebase.issues.list(
-**last_incident_time_after:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was after this datetime. +**last_incident_time_after:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was after this datetime.
@@ -73021,7 +73447,7 @@ client.knowledgebase.issues.list(
-**last_incident_time_before:** `typing.Optional[datetime.datetime]` — If provided, will only return issues whose last incident time was before this datetime. +**last_incident_time_before:** `typing.Optional[dt.datetime]` — If provided, will only return issues whose last incident time was before this datetime.
@@ -73073,7 +73499,7 @@ client.knowledgebase.issues.list(
-
client.knowledgebase.issues.retrieve(...) -> Issue +
client.knowledgebase.issues.retrieve(...)
@@ -73101,13 +73527,11 @@ Get a specific issue. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.issues.retrieve( id="id", ) @@ -73147,7 +73571,7 @@ client.knowledgebase.issues.retrieve(
## Knowledgebase LinkToken -
client.knowledgebase.link_token.create(...) -> LinkToken +
client.knowledgebase.link_token.create(...)
@@ -73175,21 +73599,17 @@ Creates a link token to be used when linking a new end user. The link token expi ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.knowledgebase import CategoriesEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.link_token.create( end_user_email_address="example@gmail.com", end_user_organization_name="Test Organization", end_user_origin_id="12345", - categories=[ - "hris", - "ats" - ], + categories=[CategoriesEnum.HRIS, CategoriesEnum.ATS], ) ``` @@ -73230,7 +73650,7 @@ client.knowledgebase.link_token.create(
-**categories:** `typing.List[CategoriesEnum]` — The integration categories to show in Merge Link. +**categories:** `typing.Sequence[CategoriesEnum]` — The integration categories to show in Merge Link.
@@ -73270,7 +73690,7 @@ client.knowledgebase.link_token.create(
-**common_models:** `typing.Optional[typing.List[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account. +**common_models:** `typing.Optional[typing.Sequence[CommonModelScopesBodyRequest]]` — An array of objects to specify the models and fields that will be disabled for a given Linked Account. Each object uses model_id, enabled_actions, and disabled_fields to specify the model, method, and fields that are scoped for a given Linked Account.
@@ -73278,7 +73698,14 @@ client.knowledgebase.link_token.create(
-**category_common_model_scopes:** `typing.Optional[typing.Dict[str, typing.Optional[typing.List[IndividualCommonModelScopeDeserializerRequest]]]]` — 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. +**category_common_model_scopes:** `typing.Optional[ + typing.Dict[ + str, + typing.Optional[ + typing.Sequence[IndividualCommonModelScopeDeserializerRequest] + ], + ] +]` — 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.
@@ -73302,7 +73729,7 @@ client.knowledgebase.link_token.create(
-**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Any]]` — A JSON object containing integration-specific configuration options. +**integration_specific_config:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — A JSON object containing integration-specific configuration options.
@@ -73347,7 +73774,7 @@ client.knowledgebase.link_token.create(
## Knowledgebase LinkedAccounts -
client.knowledgebase.linked_accounts.list(...) -> PaginatedAccountDetailsAndActionsList +
client.knowledgebase.linked_accounts.list(...)
@@ -73375,15 +73802,16 @@ List linked accounts for your organization. ```python from merge import Merge -from merge.environment import MergeEnvironment +from merge.resources.knowledgebase.resources.linked_accounts import ( + LinkedAccountsListRequestCategory, +) client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.linked_accounts.list( - category="accounting", + category=LinkedAccountsListRequestCategory.ACCOUNTING, cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", end_user_email_address="end_user_email_address", end_user_organization_name="end_user_organization_name", @@ -73529,7 +73957,7 @@ client.knowledgebase.linked_accounts.list(
## Knowledgebase Passthrough -
client.knowledgebase.passthrough.create(...) -> RemoteResponse +
client.knowledgebase.passthrough.create(...)
@@ -73557,17 +73985,15 @@ Pull data from an endpoint not currently supported by Merge. ```python from merge import Merge -from merge.environment import MergeEnvironment -from merge.knowledgebase import DataPassthroughRequest +from merge.resources.knowledgebase import DataPassthroughRequest, MethodEnum client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.passthrough.create( request=DataPassthroughRequest( - method="GET", + method=MethodEnum.GET, path="/scooters", ), ) @@ -73607,7 +74033,7 @@ client.knowledgebase.passthrough.create(
## Knowledgebase RegenerateKey -
client.knowledgebase.regenerate_key.create(...) -> RemoteKey +
client.knowledgebase.regenerate_key.create(...)
@@ -73635,13 +74061,11 @@ Exchange remote keys. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.regenerate_key.create( name="Remote Deployment Key 1", ) @@ -73681,7 +74105,7 @@ client.knowledgebase.regenerate_key.create(
## Knowledgebase SyncStatus -
client.knowledgebase.sync_status.list(...) -> PaginatedSyncStatusList +
client.knowledgebase.sync_status.list(...)
@@ -73709,13 +74133,11 @@ Get sync status for the current sync and the most recently finished sync. `last_ ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.sync_status.list( cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", page_size=1, @@ -73764,7 +74186,7 @@ client.knowledgebase.sync_status.list(
## Knowledgebase ForceResync -
client.knowledgebase.force_resync.sync_status_resync_create() -> typing.List[SyncStatus] +
client.knowledgebase.force_resync.sync_status_resync_create()
@@ -73792,13 +74214,11 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly, ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.force_resync.sync_status_resync_create() ``` @@ -73828,7 +74248,7 @@ client.knowledgebase.force_resync.sync_status_resync_create()
## Knowledgebase Users -
client.knowledgebase.users.list(...) -> PaginatedUserList +
client.knowledgebase.users.list(...)
@@ -73855,24 +74275,31 @@ Returns a list of `User` objects.
```python -from merge import Merge -from merge.environment import MergeEnvironment import datetime +from merge import Merge + client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.users.list( - created_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - created_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + created_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + created_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), cursor="cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", include_deleted_data=True, include_remote_data=True, include_shell_data=True, - modified_after=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), - modified_before=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + modified_after=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), + modified_before=datetime.datetime.fromisoformat( + "2024-01-15 09:30:00+00:00", + ), page_size=1, remote_id="remote_id", ) @@ -73891,7 +74318,7 @@ client.knowledgebase.users.list(
-**created_after:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created after this datetime. +**created_after:** `typing.Optional[dt.datetime]` — If provided, will only return objects created after this datetime.
@@ -73899,7 +74326,7 @@ client.knowledgebase.users.list(
-**created_before:** `typing.Optional[datetime.datetime]` — If provided, will only return objects created before this datetime. +**created_before:** `typing.Optional[dt.datetime]` — If provided, will only return objects created before this datetime.
@@ -73939,7 +74366,7 @@ client.knowledgebase.users.list(
-**modified_after:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge after this date time will be returned. +**modified_after:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge after this date time will be returned.
@@ -73947,7 +74374,7 @@ client.knowledgebase.users.list(
-**modified_before:** `typing.Optional[datetime.datetime]` — If provided, only objects synced by Merge before this date time will be returned. +**modified_before:** `typing.Optional[dt.datetime]` — If provided, only objects synced by Merge before this date time will be returned.
@@ -73983,7 +74410,7 @@ client.knowledgebase.users.list(
-
client.knowledgebase.users.retrieve(...) -> User +
client.knowledgebase.users.retrieve(...)
@@ -74011,13 +74438,11 @@ Returns a `User` object with the given `id`. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.users.retrieve( id="id", include_remote_data=True, @@ -74075,7 +74500,7 @@ client.knowledgebase.users.retrieve(
## Knowledgebase WebhookReceivers -
client.knowledgebase.webhook_receivers.list() -> typing.List[WebhookReceiver] +
client.knowledgebase.webhook_receivers.list()
@@ -74103,13 +74528,11 @@ Returns a list of `WebhookReceiver` objects. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.webhook_receivers.list() ``` @@ -74138,7 +74561,7 @@ client.knowledgebase.webhook_receivers.list()
-
client.knowledgebase.webhook_receivers.create(...) -> WebhookReceiver +
client.knowledgebase.webhook_receivers.create(...)
@@ -74166,13 +74589,11 @@ Creates a `WebhookReceiver` object with the given values. ```python from merge import Merge -from merge.environment import MergeEnvironment client = Merge( - api_key="", - environment=MergeEnvironment.PRODUCTION, + account_token="YOUR_ACCOUNT_TOKEN", + api_key="YOUR_API_KEY", ) - client.knowledgebase.webhook_receivers.create( event="event", is_active=True, diff --git a/src/merge/__init__.py b/src/merge/__init__.py index 579fd2df..1429d35f 100644 --- a/src/merge/__init__.py +++ b/src/merge/__init__.py @@ -34,10 +34,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/client.py b/src/merge/client.py index 288a24a7..44d370b4 100644 --- a/src/merge/client.py +++ b/src/merge/client.py @@ -6,7 +6,6 @@ import httpx from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from .core.logging import LogConfig, Logger from .environment import MergeEnvironment if typing.TYPE_CHECKING: @@ -54,9 +53,6 @@ class Merge: httpx_client : typing.Optional[httpx.Client] The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration. - logging : typing.Optional[typing.Union[LogConfig, Logger]] - Configure logging for the SDK. Accepts a LogConfig dict with 'level' (debug/info/warn/error), 'logger' (custom logger implementation), and 'silent' (boolean, defaults to True) fields. You can also pass a pre-configured Logger instance. - Examples -------- from merge import Merge @@ -78,7 +74,6 @@ def __init__( timeout: typing.Optional[float] = None, follow_redirects: typing.Optional[bool] = True, httpx_client: typing.Optional[httpx.Client] = None, - logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, ): _defaulted_timeout = ( timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read @@ -94,7 +89,6 @@ def __init__( if follow_redirects is not None else httpx.Client(timeout=_defaulted_timeout), timeout=_defaulted_timeout, - logging=logging, ) self._ats: typing.Optional[AtsClient] = None self._accounting: typing.Optional[AccountingClient] = None @@ -220,9 +214,6 @@ class AsyncMerge: httpx_client : typing.Optional[httpx.AsyncClient] The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration. - logging : typing.Optional[typing.Union[LogConfig, Logger]] - Configure logging for the SDK. Accepts a LogConfig dict with 'level' (debug/info/warn/error), 'logger' (custom logger implementation), and 'silent' (boolean, defaults to True) fields. You can also pass a pre-configured Logger instance. - Examples -------- from merge import AsyncMerge @@ -244,7 +235,6 @@ def __init__( timeout: typing.Optional[float] = None, follow_redirects: typing.Optional[bool] = True, httpx_client: typing.Optional[httpx.AsyncClient] = None, - logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, ): _defaulted_timeout = ( timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read @@ -260,7 +250,6 @@ def __init__( if follow_redirects is not None else httpx.AsyncClient(timeout=_defaulted_timeout), timeout=_defaulted_timeout, - logging=logging, ) self._ats: typing.Optional[AsyncAtsClient] = None self._accounting: typing.Optional[AsyncAccountingClient] = None diff --git a/src/merge/core/__init__.py b/src/merge/core/__init__.py index 3b227d7f..18228526 100644 --- a/src/merge/core/__init__.py +++ b/src/merge/core/__init__.py @@ -8,13 +8,11 @@ if typing.TYPE_CHECKING: from .api_error import ApiError from .client_wrapper import AsyncClientWrapper, BaseClientWrapper, SyncClientWrapper - from .datetime_utils import Rfc2822DateTime, parse_rfc2822_datetime, serialize_datetime + from .datetime_utils import serialize_datetime from .file import File, convert_file_dict_to_httpx_tuples, with_content_type from .http_client import AsyncHttpClient, HttpClient from .http_response import AsyncHttpResponse, HttpResponse from .jsonable_encoder import jsonable_encoder - from .logging import ConsoleLogger, ILogger, LogConfig, LogLevel, Logger, create_logger - from .parse_error import ParsingError from .pydantic_utilities import ( IS_PYDANTIC_V2, UniversalBaseModel, @@ -35,19 +33,12 @@ "AsyncHttpClient": ".http_client", "AsyncHttpResponse": ".http_response", "BaseClientWrapper": ".client_wrapper", - "ConsoleLogger": ".logging", "FieldMetadata": ".serialization", "File": ".file", "HttpClient": ".http_client", "HttpResponse": ".http_response", - "ILogger": ".logging", "IS_PYDANTIC_V2": ".pydantic_utilities", - "LogConfig": ".logging", - "LogLevel": ".logging", - "Logger": ".logging", - "ParsingError": ".parse_error", "RequestOptions": ".request_options", - "Rfc2822DateTime": ".datetime_utils", "SyncClientWrapper": ".client_wrapper", "UncheckedBaseModel": ".unchecked_base_model", "UnionMetadata": ".unchecked_base_model", @@ -56,11 +47,9 @@ "construct_type": ".unchecked_base_model", "convert_and_respect_annotation_metadata": ".serialization", "convert_file_dict_to_httpx_tuples": ".file", - "create_logger": ".logging", "encode_query": ".query_encoder", "jsonable_encoder": ".jsonable_encoder", "parse_obj_as": ".pydantic_utilities", - "parse_rfc2822_datetime": ".datetime_utils", "remove_none_from_dict": ".remove_none_from_dict", "serialize_datetime": ".datetime_utils", "universal_field_validator": ".pydantic_utilities", @@ -76,10 +65,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -97,19 +84,12 @@ def __dir__(): "AsyncHttpClient", "AsyncHttpResponse", "BaseClientWrapper", - "ConsoleLogger", "FieldMetadata", "File", "HttpClient", "HttpResponse", - "ILogger", "IS_PYDANTIC_V2", - "LogConfig", - "LogLevel", - "Logger", - "ParsingError", "RequestOptions", - "Rfc2822DateTime", "SyncClientWrapper", "UncheckedBaseModel", "UnionMetadata", @@ -118,11 +98,9 @@ def __dir__(): "construct_type", "convert_and_respect_annotation_metadata", "convert_file_dict_to_httpx_tuples", - "create_logger", "encode_query", "jsonable_encoder", "parse_obj_as", - "parse_rfc2822_datetime", "remove_none_from_dict", "serialize_datetime", "universal_field_validator", diff --git a/src/merge/core/client_wrapper.py b/src/merge/core/client_wrapper.py index 20929ea0..5c579456 100644 --- a/src/merge/core/client_wrapper.py +++ b/src/merge/core/client_wrapper.py @@ -4,7 +4,6 @@ import httpx from .http_client import AsyncHttpClient, HttpClient -from .logging import LogConfig, Logger class BaseClientWrapper: @@ -16,25 +15,19 @@ def __init__( headers: typing.Optional[typing.Dict[str, str]] = None, base_url: str, timeout: typing.Optional[float] = None, - logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, ): self._account_token = account_token self._api_key = api_key self._headers = headers self._base_url = base_url self._timeout = timeout - self._logging = logging def get_headers(self) -> typing.Dict[str, str]: - import platform - headers: typing.Dict[str, str] = { - "User-Agent": "MergePythonClient/4.0.0", + "User-Agent": "MergePythonClient/3.1.1", "X-Fern-Language": "Python", - "X-Fern-Runtime": f"python/{platform.python_version()}", - "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "MergePythonClient", - "X-Fern-SDK-Version": "4.0.0", + "X-Fern-SDK-Version": "3.1.1", **(self.get_custom_headers() or {}), } if self._account_token is not None: @@ -67,23 +60,16 @@ def __init__( headers: typing.Optional[typing.Dict[str, str]] = None, base_url: str, timeout: typing.Optional[float] = None, - logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, httpx_client: httpx.Client, ): super().__init__( - account_token=account_token, - api_key=api_key, - headers=headers, - base_url=base_url, - timeout=timeout, - logging=logging, + account_token=account_token, api_key=api_key, headers=headers, base_url=base_url, timeout=timeout ) self.httpx_client = HttpClient( httpx_client=httpx_client, base_headers=self.get_headers, base_timeout=self.get_timeout, base_url=self.get_base_url, - logging_config=self._logging, ) @@ -96,31 +82,14 @@ def __init__( headers: typing.Optional[typing.Dict[str, str]] = None, base_url: str, timeout: typing.Optional[float] = None, - logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, - async_token: typing.Optional[typing.Callable[[], typing.Awaitable[str]]] = None, httpx_client: httpx.AsyncClient, ): super().__init__( - account_token=account_token, - api_key=api_key, - headers=headers, - base_url=base_url, - timeout=timeout, - logging=logging, + account_token=account_token, api_key=api_key, headers=headers, base_url=base_url, timeout=timeout ) - self._async_token = async_token self.httpx_client = AsyncHttpClient( httpx_client=httpx_client, base_headers=self.get_headers, base_timeout=self.get_timeout, base_url=self.get_base_url, - async_base_headers=self.async_get_headers, - logging_config=self._logging, ) - - async def async_get_headers(self) -> typing.Dict[str, str]: - headers = self.get_headers() - if self._async_token is not None: - token = await self._async_token() - headers["Authorization"] = f"Bearer {token}" - return headers diff --git a/src/merge/core/datetime_utils.py b/src/merge/core/datetime_utils.py index a12b2ad0..7c9864a9 100644 --- a/src/merge/core/datetime_utils.py +++ b/src/merge/core/datetime_utils.py @@ -1,48 +1,6 @@ # This file was auto-generated by Fern from our API Definition. import datetime as dt -from email.utils import parsedate_to_datetime -from typing import Any - -import pydantic - -IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.") - - -def parse_rfc2822_datetime(v: Any) -> dt.datetime: - """ - Parse an RFC 2822 datetime string (e.g., "Wed, 02 Oct 2002 13:00:00 GMT") - into a datetime object. If the value is already a datetime, return it as-is. - Falls back to ISO 8601 parsing if RFC 2822 parsing fails. - """ - if isinstance(v, dt.datetime): - return v - if isinstance(v, str): - try: - return parsedate_to_datetime(v) - except Exception: - pass - # Fallback to ISO 8601 parsing - return dt.datetime.fromisoformat(v.replace("Z", "+00:00")) - raise ValueError(f"Expected str or datetime, got {type(v)}") - - -class Rfc2822DateTime(dt.datetime): - """A datetime subclass that parses RFC 2822 date strings. - - On Pydantic V1, uses __get_validators__ for pre-validation. - On Pydantic V2, uses __get_pydantic_core_schema__ for BeforeValidator-style parsing. - """ - - @classmethod - def __get_validators__(cls): # type: ignore[no-untyped-def] - yield parse_rfc2822_datetime - - @classmethod - def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> Any: # type: ignore[override] - from pydantic_core import core_schema - - return core_schema.no_info_before_validator_function(parse_rfc2822_datetime, core_schema.datetime_schema()) def serialize_datetime(v: dt.datetime) -> str: diff --git a/src/merge/core/enum.py b/src/merge/core/enum.py deleted file mode 100644 index a3d17a67..00000000 --- a/src/merge/core/enum.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -""" -Provides a StrEnum base class that works across Python versions. - -For Python >= 3.11, this re-exports the standard library enum.StrEnum. -For older Python versions, this defines a compatible StrEnum using the -(str, Enum) mixin pattern so that generated SDKs can use a single base -class in all supported Python versions. -""" - -import enum -import sys - -if sys.version_info >= (3, 11): - from enum import StrEnum -else: - - class StrEnum(str, enum.Enum): - pass diff --git a/src/merge/core/http_client.py b/src/merge/core/http_client.py index ee937589..e4173f99 100644 --- a/src/merge/core/http_client.py +++ b/src/merge/core/http_client.py @@ -5,6 +5,7 @@ import re import time import typing +import urllib.parse from contextlib import asynccontextmanager, contextmanager from random import random @@ -12,15 +13,14 @@ from .file import File, convert_file_dict_to_httpx_tuples from .force_multipart import FORCE_MULTIPART from .jsonable_encoder import jsonable_encoder -from .logging import LogConfig, Logger, create_logger from .query_encoder import encode_query -from .remove_none_from_dict import remove_none_from_dict as remove_none_from_dict +from .remove_none_from_dict import remove_none_from_dict from .request_options import RequestOptions from httpx._types import RequestFiles -INITIAL_RETRY_DELAY_SECONDS = 1.0 -MAX_RETRY_DELAY_SECONDS = 60.0 -JITTER_FACTOR = 0.2 # 20% random jitter +INITIAL_RETRY_DELAY_SECONDS = 0.5 +MAX_RETRY_DELAY_SECONDS = 10 +MAX_RETRY_DELAY_SECONDS_FROM_HEADER = 30 def _parse_retry_after(response_headers: httpx.Headers) -> typing.Optional[float]: @@ -64,38 +64,6 @@ def _parse_retry_after(response_headers: httpx.Headers) -> typing.Optional[float return seconds -def _add_positive_jitter(delay: float) -> float: - """Add positive jitter (0-20%) to prevent thundering herd.""" - jitter_multiplier = 1 + random() * JITTER_FACTOR - return delay * jitter_multiplier - - -def _add_symmetric_jitter(delay: float) -> float: - """Add symmetric jitter (±10%) for exponential backoff.""" - jitter_multiplier = 1 + (random() - 0.5) * JITTER_FACTOR - return delay * jitter_multiplier - - -def _parse_x_ratelimit_reset(response_headers: httpx.Headers) -> typing.Optional[float]: - """ - Parse the X-RateLimit-Reset header (Unix timestamp in seconds). - Returns seconds to wait, or None if header is missing/invalid. - """ - reset_time_str = response_headers.get("x-ratelimit-reset") - if reset_time_str is None: - return None - - try: - reset_time = int(reset_time_str) - delay = reset_time - time.time() - if delay > 0: - return delay - except (ValueError, TypeError): - pass - - return None - - def _retry_timeout(response: httpx.Response, retries: int) -> float: """ Determine the amount of time to wait before retrying a request. @@ -103,19 +71,17 @@ def _retry_timeout(response: httpx.Response, retries: int) -> float: with a jitter to determine the number of seconds to wait. """ - # 1. Check Retry-After header first + # If the API asks us to wait a certain amount of time (and it's a reasonable amount), just do what it says. retry_after = _parse_retry_after(response.headers) - if retry_after is not None and retry_after > 0: - return min(retry_after, MAX_RETRY_DELAY_SECONDS) + if retry_after is not None and retry_after <= MAX_RETRY_DELAY_SECONDS_FROM_HEADER: + return retry_after - # 2. Check X-RateLimit-Reset header (with positive jitter) - ratelimit_reset = _parse_x_ratelimit_reset(response.headers) - if ratelimit_reset is not None: - return _add_positive_jitter(min(ratelimit_reset, MAX_RETRY_DELAY_SECONDS)) + # Apply exponential backoff, capped at MAX_RETRY_DELAY_SECONDS. + retry_delay = min(INITIAL_RETRY_DELAY_SECONDS * pow(2.0, retries), MAX_RETRY_DELAY_SECONDS) - # 3. Fall back to exponential backoff (with symmetric jitter) - backoff = min(INITIAL_RETRY_DELAY_SECONDS * pow(2.0, retries), MAX_RETRY_DELAY_SECONDS) - return _add_symmetric_jitter(backoff) + # Add a randomness / jitter to the retry delay to avoid overwhelming the server with retries. + timeout = retry_delay * (1 - 0.25 * random()) + return timeout if timeout >= 0 else 0 def _should_retry(response: httpx.Response) -> bool: @@ -123,71 +89,6 @@ def _should_retry(response: httpx.Response) -> bool: return response.status_code >= 500 or response.status_code in retryable_400s -_SENSITIVE_HEADERS = frozenset( - { - "authorization", - "www-authenticate", - "x-api-key", - "api-key", - "apikey", - "x-api-token", - "x-auth-token", - "auth-token", - "cookie", - "set-cookie", - "proxy-authorization", - "proxy-authenticate", - "x-csrf-token", - "x-xsrf-token", - "x-session-token", - "x-access-token", - } -) - - -def _redact_headers(headers: typing.Dict[str, str]) -> typing.Dict[str, str]: - return {k: ("[REDACTED]" if k.lower() in _SENSITIVE_HEADERS else v) for k, v in headers.items()} - - -def _build_url(base_url: str, path: typing.Optional[str]) -> str: - """ - Build a full URL by joining a base URL with a path. - - This function correctly handles base URLs that contain path prefixes (e.g., tenant-based URLs) - by using string concatenation instead of urllib.parse.urljoin(), which would incorrectly - strip path components when the path starts with '/'. - - Example: - >>> _build_url("https://cloud.example.com/org/tenant/api", "/users") - 'https://cloud.example.com/org/tenant/api/users' - - Args: - base_url: The base URL, which may contain path prefixes. - path: The path to append. Can be None or empty string. - - Returns: - The full URL with base_url and path properly joined. - """ - if not path: - return base_url - return f"{base_url.rstrip('/')}/{path.lstrip('/')}" - - -def _maybe_filter_none_from_multipart_data( - data: typing.Optional[typing.Any], - request_files: typing.Optional[RequestFiles], - force_multipart: typing.Optional[bool], -) -> typing.Optional[typing.Any]: - """ - Filter None values from data body for multipart/form requests. - This prevents httpx from converting None to empty strings in multipart encoding. - Only applies when files are present or force_multipart is True. - """ - if data is not None and isinstance(data, typing.Mapping) and (request_files or force_multipart): - return remove_none_from_dict(data) - return data - - def remove_omit_from_dict( original: typing.Dict[str, typing.Optional[typing.Any]], omit: typing.Optional[typing.Any], @@ -242,19 +143,8 @@ def get_request_body( # If both data and json are None, we send json data in the event extra properties are specified json_body = maybe_filter_request_body(json, request_options, omit) - has_additional_body_parameters = bool( - request_options is not None and request_options.get("additional_body_parameters") - ) - - # Only collapse empty dict to None when the body was not explicitly provided - # and there are no additional body parameters. This preserves explicit empty - # bodies (e.g., when an endpoint has a request body type but all fields are optional). - if json_body == {} and json is None and not has_additional_body_parameters: - json_body = None - if data_body == {} and data is None and not has_additional_body_parameters: - data_body = None - - return json_body, data_body + # If you have an empty JSON body, you should just send None + return (json_body if json_body != {} else None), data_body if data_body != {} else None class HttpClient: @@ -265,13 +155,11 @@ def __init__( base_timeout: typing.Callable[[], typing.Optional[float]], base_headers: typing.Callable[[], typing.Dict[str, str]], base_url: typing.Optional[typing.Callable[[], str]] = None, - logging_config: typing.Optional[typing.Union[LogConfig, Logger]] = None, ): self.base_url = base_url self.base_timeout = base_timeout self.base_headers = base_headers self.httpx_client = httpx_client - self.logger = create_logger(logging_config) def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: base_url = maybe_base_url @@ -300,7 +188,7 @@ def request( ] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, force_multipart: typing.Optional[bool] = None, ) -> httpx.Response: @@ -322,53 +210,35 @@ def request( if (request_files is None or len(request_files) == 0) and force_multipart: request_files = FORCE_MULTIPART - data_body = _maybe_filter_none_from_multipart_data(data_body, request_files, force_multipart) - - # Compute encoded params separately to avoid passing empty list to httpx - # (httpx strips existing query params from URL when params=[] is passed) - _encoded_params = encode_query( - jsonable_encoder( + response = self.httpx_client.request( + method=method, + url=urllib.parse.urljoin(f"{base_url}/", path), + headers=jsonable_encoder( remove_none_from_dict( - remove_omit_from_dict( - { - **(params if params is not None else {}), - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - }, - omit, + { + **self.base_headers(), + **(headers if headers is not None else {}), + **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), + } + ) + ), + params=encode_query( + jsonable_encoder( + remove_none_from_dict( + remove_omit_from_dict( + { + **(params if params is not None else {}), + **( + request_options.get("additional_query_parameters", {}) or {} + if request_options is not None + else {} + ), + }, + omit, + ) ) ) - ) - ) - - _request_url = _build_url(base_url, path) - _request_headers = jsonable_encoder( - remove_none_from_dict( - { - **self.base_headers(), - **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), - } - ) - ) - - if self.logger.is_debug(): - self.logger.debug( - "Making HTTP request", - method=method, - url=_request_url, - headers=_redact_headers(_request_headers), - has_body=json_body is not None or data_body is not None, - ) - - response = self.httpx_client.request( - method=method, - url=_request_url, - headers=_request_headers, - params=_encoded_params if _encoded_params else None, + ), json=json_body, data=data_body, content=content, @@ -376,9 +246,9 @@ def request( timeout=timeout, ) - max_retries: int = request_options.get("max_retries", 2) if request_options is not None else 2 + max_retries: int = request_options.get("max_retries", 0) if request_options is not None else 0 if _should_retry(response=response): - if retries < max_retries: + if max_retries > retries: time.sleep(_retry_timeout(response=response, retries=retries)) return self.request( path=path, @@ -394,24 +264,6 @@ def request( omit=omit, ) - if self.logger.is_debug(): - if 200 <= response.status_code < 400: - self.logger.debug( - "HTTP request succeeded", - method=method, - url=_request_url, - status_code=response.status_code, - ) - - if self.logger.is_error(): - if response.status_code >= 400: - self.logger.error( - "HTTP request failed with error status", - method=method, - url=_request_url, - status_code=response.status_code, - ) - return response @contextmanager @@ -433,7 +285,7 @@ def stream( ] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, force_multipart: typing.Optional[bool] = None, ) -> typing.Iterator[httpx.Response]: @@ -455,52 +307,35 @@ def stream( json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) - data_body = _maybe_filter_none_from_multipart_data(data_body, request_files, force_multipart) - - # Compute encoded params separately to avoid passing empty list to httpx - # (httpx strips existing query params from URL when params=[] is passed) - _encoded_params = encode_query( - jsonable_encoder( + with self.httpx_client.stream( + method=method, + url=urllib.parse.urljoin(f"{base_url}/", path), + headers=jsonable_encoder( remove_none_from_dict( - remove_omit_from_dict( - { - **(params if params is not None else {}), - **( - request_options.get("additional_query_parameters", {}) - if request_options is not None - else {} - ), - }, - omit, + { + **self.base_headers(), + **(headers if headers is not None else {}), + **(request_options.get("additional_headers", {}) if request_options is not None else {}), + } + ) + ), + params=encode_query( + jsonable_encoder( + remove_none_from_dict( + remove_omit_from_dict( + { + **(params if params is not None else {}), + **( + request_options.get("additional_query_parameters", {}) + if request_options is not None + else {} + ), + }, + omit, + ) ) ) - ) - ) - - _request_url = _build_url(base_url, path) - _request_headers = jsonable_encoder( - remove_none_from_dict( - { - **self.base_headers(), - **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) if request_options is not None else {}), - } - ) - ) - - if self.logger.is_debug(): - self.logger.debug( - "Making streaming HTTP request", - method=method, - url=_request_url, - headers=_redact_headers(_request_headers), - ) - - with self.httpx_client.stream( - method=method, - url=_request_url, - headers=_request_headers, - params=_encoded_params if _encoded_params else None, + ), json=json_body, data=data_body, content=content, @@ -518,20 +353,11 @@ def __init__( base_timeout: typing.Callable[[], typing.Optional[float]], base_headers: typing.Callable[[], typing.Dict[str, str]], base_url: typing.Optional[typing.Callable[[], str]] = None, - async_base_headers: typing.Optional[typing.Callable[[], typing.Awaitable[typing.Dict[str, str]]]] = None, - logging_config: typing.Optional[typing.Union[LogConfig, Logger]] = None, ): self.base_url = base_url self.base_timeout = base_timeout self.base_headers = base_headers - self.async_base_headers = async_base_headers self.httpx_client = httpx_client - self.logger = create_logger(logging_config) - - async def _get_headers(self) -> typing.Dict[str, str]: - if self.async_base_headers is not None: - return await self.async_base_headers() - return self.base_headers() def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: base_url = maybe_base_url @@ -560,7 +386,7 @@ async def request( ] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, force_multipart: typing.Optional[bool] = None, ) -> httpx.Response: @@ -582,56 +408,36 @@ async def request( json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) - data_body = _maybe_filter_none_from_multipart_data(data_body, request_files, force_multipart) - - # Get headers (supports async token providers) - _headers = await self._get_headers() - - # Compute encoded params separately to avoid passing empty list to httpx - # (httpx strips existing query params from URL when params=[] is passed) - _encoded_params = encode_query( - jsonable_encoder( + # Add the input to each of these and do None-safety checks + response = await self.httpx_client.request( + method=method, + url=urllib.parse.urljoin(f"{base_url}/", path), + headers=jsonable_encoder( remove_none_from_dict( - remove_omit_from_dict( - { - **(params if params is not None else {}), - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - }, - omit, + { + **self.base_headers(), + **(headers if headers is not None else {}), + **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), + } + ) + ), + params=encode_query( + jsonable_encoder( + remove_none_from_dict( + remove_omit_from_dict( + { + **(params if params is not None else {}), + **( + request_options.get("additional_query_parameters", {}) or {} + if request_options is not None + else {} + ), + }, + omit, + ) ) ) - ) - ) - - _request_url = _build_url(base_url, path) - _request_headers = jsonable_encoder( - remove_none_from_dict( - { - **_headers, - **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}), - } - ) - ) - - if self.logger.is_debug(): - self.logger.debug( - "Making HTTP request", - method=method, - url=_request_url, - headers=_redact_headers(_request_headers), - has_body=json_body is not None or data_body is not None, - ) - - response = await self.httpx_client.request( - method=method, - url=_request_url, - headers=_request_headers, - params=_encoded_params if _encoded_params else None, + ), json=json_body, data=data_body, content=content, @@ -639,9 +445,9 @@ async def request( timeout=timeout, ) - max_retries: int = request_options.get("max_retries", 2) if request_options is not None else 2 + max_retries: int = request_options.get("max_retries", 0) if request_options is not None else 0 if _should_retry(response=response): - if retries < max_retries: + if max_retries > retries: await asyncio.sleep(_retry_timeout(response=response, retries=retries)) return await self.request( path=path, @@ -656,25 +462,6 @@ async def request( retries=retries + 1, omit=omit, ) - - if self.logger.is_debug(): - if 200 <= response.status_code < 400: - self.logger.debug( - "HTTP request succeeded", - method=method, - url=_request_url, - status_code=response.status_code, - ) - - if self.logger.is_error(): - if response.status_code >= 400: - self.logger.error( - "HTTP request failed with error status", - method=method, - url=_request_url, - status_code=response.status_code, - ) - return response @asynccontextmanager @@ -696,7 +483,7 @@ async def stream( ] = None, headers: typing.Optional[typing.Dict[str, typing.Any]] = None, request_options: typing.Optional[RequestOptions] = None, - retries: int = 0, + retries: int = 2, omit: typing.Optional[typing.Any] = None, force_multipart: typing.Optional[bool] = None, ) -> typing.AsyncIterator[httpx.Response]: @@ -718,55 +505,35 @@ async def stream( json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) - data_body = _maybe_filter_none_from_multipart_data(data_body, request_files, force_multipart) - - # Get headers (supports async token providers) - _headers = await self._get_headers() - - # Compute encoded params separately to avoid passing empty list to httpx - # (httpx strips existing query params from URL when params=[] is passed) - _encoded_params = encode_query( - jsonable_encoder( + async with self.httpx_client.stream( + method=method, + url=urllib.parse.urljoin(f"{base_url}/", path), + headers=jsonable_encoder( remove_none_from_dict( - remove_omit_from_dict( - { - **(params if params is not None else {}), - **( - request_options.get("additional_query_parameters", {}) - if request_options is not None - else {} - ), - }, - omit=omit, + { + **self.base_headers(), + **(headers if headers is not None else {}), + **(request_options.get("additional_headers", {}) if request_options is not None else {}), + } + ) + ), + params=encode_query( + jsonable_encoder( + remove_none_from_dict( + remove_omit_from_dict( + { + **(params if params is not None else {}), + **( + request_options.get("additional_query_parameters", {}) + if request_options is not None + else {} + ), + }, + omit=omit, + ) ) ) - ) - ) - - _request_url = _build_url(base_url, path) - _request_headers = jsonable_encoder( - remove_none_from_dict( - { - **_headers, - **(headers if headers is not None else {}), - **(request_options.get("additional_headers", {}) if request_options is not None else {}), - } - ) - ) - - if self.logger.is_debug(): - self.logger.debug( - "Making streaming HTTP request", - method=method, - url=_request_url, - headers=_redact_headers(_request_headers), - ) - - async with self.httpx_client.stream( - method=method, - url=_request_url, - headers=_request_headers, - params=_encoded_params if _encoded_params else None, + ), json=json_body, data=data_body, content=content, diff --git a/src/merge/core/http_response.py b/src/merge/core/http_response.py index 00bb1096..2479747e 100644 --- a/src/merge/core/http_response.py +++ b/src/merge/core/http_response.py @@ -9,7 +9,7 @@ class BaseHttpResponse: - """Minimalist HTTP response wrapper that exposes response headers and status code.""" + """Minimalist HTTP response wrapper that exposes response headers.""" _response: httpx.Response @@ -20,10 +20,6 @@ def __init__(self, response: httpx.Response): def headers(self) -> Dict[str, str]: return dict(self._response.headers) - @property - def status_code(self) -> int: - return self._response.status_code - class HttpResponse(Generic[T], BaseHttpResponse): """HTTP response wrapper that exposes response headers and data.""" diff --git a/src/merge/core/http_sse/__init__.py b/src/merge/core/http_sse/__init__.py deleted file mode 100644 index 730e5a33..00000000 --- a/src/merge/core/http_sse/__init__.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from ._api import EventSource, aconnect_sse, connect_sse - from ._exceptions import SSEError - from ._models import ServerSentEvent -_dynamic_imports: typing.Dict[str, str] = { - "EventSource": "._api", - "SSEError": "._exceptions", - "ServerSentEvent": "._models", - "aconnect_sse": "._api", - "connect_sse": "._api", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = ["EventSource", "SSEError", "ServerSentEvent", "aconnect_sse", "connect_sse"] diff --git a/src/merge/core/http_sse/_api.py b/src/merge/core/http_sse/_api.py deleted file mode 100644 index f900b3b6..00000000 --- a/src/merge/core/http_sse/_api.py +++ /dev/null @@ -1,112 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import re -from contextlib import asynccontextmanager, contextmanager -from typing import Any, AsyncGenerator, AsyncIterator, Iterator, cast - -import httpx -from ._decoders import SSEDecoder -from ._exceptions import SSEError -from ._models import ServerSentEvent - - -class EventSource: - def __init__(self, response: httpx.Response) -> None: - self._response = response - - def _check_content_type(self) -> None: - content_type = self._response.headers.get("content-type", "").partition(";")[0] - if "text/event-stream" not in content_type: - raise SSEError( - f"Expected response header Content-Type to contain 'text/event-stream', got {content_type!r}" - ) - - def _get_charset(self) -> str: - """Extract charset from Content-Type header, fallback to UTF-8.""" - content_type = self._response.headers.get("content-type", "") - - # Parse charset parameter using regex - charset_match = re.search(r"charset=([^;\s]+)", content_type, re.IGNORECASE) - if charset_match: - charset = charset_match.group(1).strip("\"'") - # Validate that it's a known encoding - try: - # Test if the charset is valid by trying to encode/decode - "test".encode(charset).decode(charset) - return charset - except (LookupError, UnicodeError): - # If charset is invalid, fall back to UTF-8 - pass - - # Default to UTF-8 if no charset specified or invalid charset - return "utf-8" - - @property - def response(self) -> httpx.Response: - return self._response - - def iter_sse(self) -> Iterator[ServerSentEvent]: - self._check_content_type() - decoder = SSEDecoder() - charset = self._get_charset() - - buffer = "" - for chunk in self._response.iter_bytes(): - # Decode chunk using detected charset - text_chunk = chunk.decode(charset, errors="replace") - buffer += text_chunk - - # Process complete lines - while "\n" in buffer: - line, buffer = buffer.split("\n", 1) - line = line.rstrip("\r") - sse = decoder.decode(line) - # when we reach a "\n\n" => line = '' - # => decoder will attempt to return an SSE Event - if sse is not None: - yield sse - - # Process any remaining data in buffer - if buffer.strip(): - line = buffer.rstrip("\r") - sse = decoder.decode(line) - if sse is not None: - yield sse - - async def aiter_sse(self) -> AsyncGenerator[ServerSentEvent, None]: - self._check_content_type() - decoder = SSEDecoder() - lines = cast(AsyncGenerator[str, None], self._response.aiter_lines()) - try: - async for line in lines: - line = line.rstrip("\n") - sse = decoder.decode(line) - if sse is not None: - yield sse - finally: - await lines.aclose() - - -@contextmanager -def connect_sse(client: httpx.Client, method: str, url: str, **kwargs: Any) -> Iterator[EventSource]: - headers = kwargs.pop("headers", {}) - headers["Accept"] = "text/event-stream" - headers["Cache-Control"] = "no-store" - - with client.stream(method, url, headers=headers, **kwargs) as response: - yield EventSource(response) - - -@asynccontextmanager -async def aconnect_sse( - client: httpx.AsyncClient, - method: str, - url: str, - **kwargs: Any, -) -> AsyncIterator[EventSource]: - headers = kwargs.pop("headers", {}) - headers["Accept"] = "text/event-stream" - headers["Cache-Control"] = "no-store" - - async with client.stream(method, url, headers=headers, **kwargs) as response: - yield EventSource(response) diff --git a/src/merge/core/http_sse/_decoders.py b/src/merge/core/http_sse/_decoders.py deleted file mode 100644 index 339b0890..00000000 --- a/src/merge/core/http_sse/_decoders.py +++ /dev/null @@ -1,61 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from typing import List, Optional - -from ._models import ServerSentEvent - - -class SSEDecoder: - def __init__(self) -> None: - self._event = "" - self._data: List[str] = [] - self._last_event_id = "" - self._retry: Optional[int] = None - - def decode(self, line: str) -> Optional[ServerSentEvent]: - # See: https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation # noqa: E501 - - if not line: - if not self._event and not self._data and not self._last_event_id and self._retry is None: - return None - - sse = ServerSentEvent( - event=self._event, - data="\n".join(self._data), - id=self._last_event_id, - retry=self._retry, - ) - - # NOTE: as per the SSE spec, do not reset last_event_id. - self._event = "" - self._data = [] - self._retry = None - - return sse - - if line.startswith(":"): - return None - - fieldname, _, value = line.partition(":") - - if value.startswith(" "): - value = value[1:] - - if fieldname == "event": - self._event = value - elif fieldname == "data": - self._data.append(value) - elif fieldname == "id": - if "\0" in value: - pass - else: - self._last_event_id = value - elif fieldname == "retry": - try: - self._retry = int(value) - except (TypeError, ValueError): - pass - else: - pass # Field is ignored. - - return None diff --git a/src/merge/core/http_sse/_exceptions.py b/src/merge/core/http_sse/_exceptions.py deleted file mode 100644 index 81605a8a..00000000 --- a/src/merge/core/http_sse/_exceptions.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import httpx - - -class SSEError(httpx.TransportError): - pass diff --git a/src/merge/core/http_sse/_models.py b/src/merge/core/http_sse/_models.py deleted file mode 100644 index 1af57f8f..00000000 --- a/src/merge/core/http_sse/_models.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import json -from dataclasses import dataclass -from typing import Any, Optional - - -@dataclass(frozen=True) -class ServerSentEvent: - event: str = "message" - data: str = "" - id: str = "" - retry: Optional[int] = None - - def json(self) -> Any: - """Parse the data field as JSON.""" - return json.loads(self.data) diff --git a/src/merge/core/jsonable_encoder.py b/src/merge/core/jsonable_encoder.py index f8beaeaf..afee3662 100644 --- a/src/merge/core/jsonable_encoder.py +++ b/src/merge/core/jsonable_encoder.py @@ -30,10 +30,6 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any], Any]]] = None) -> Any: custom_encoder = custom_encoder or {} - # Generated SDKs use Ellipsis (`...`) as the sentinel value for "OMIT". - # OMIT values should be excluded from serialized payloads. - if obj is Ellipsis: - return None if custom_encoder: if type(obj) in custom_encoder: return custom_encoder[type(obj)](obj) @@ -74,8 +70,6 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any] allowed_keys = set(obj.keys()) for key, value in obj.items(): if key in allowed_keys: - if value is Ellipsis: - continue encoded_key = jsonable_encoder(key, custom_encoder=custom_encoder) encoded_value = jsonable_encoder(value, custom_encoder=custom_encoder) encoded_dict[encoded_key] = encoded_value @@ -83,8 +77,6 @@ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any] if isinstance(obj, (list, set, frozenset, GeneratorType, tuple)): encoded_list = [] for item in obj: - if item is Ellipsis: - continue encoded_list.append(jsonable_encoder(item, custom_encoder=custom_encoder)) return encoded_list diff --git a/src/merge/core/logging.py b/src/merge/core/logging.py deleted file mode 100644 index e5e57245..00000000 --- a/src/merge/core/logging.py +++ /dev/null @@ -1,107 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import logging -import typing - -LogLevel = typing.Literal["debug", "info", "warn", "error"] - -_LOG_LEVEL_MAP: typing.Dict[LogLevel, int] = { - "debug": 1, - "info": 2, - "warn": 3, - "error": 4, -} - - -class ILogger(typing.Protocol): - def debug(self, message: str, **kwargs: typing.Any) -> None: ... - def info(self, message: str, **kwargs: typing.Any) -> None: ... - def warn(self, message: str, **kwargs: typing.Any) -> None: ... - def error(self, message: str, **kwargs: typing.Any) -> None: ... - - -class ConsoleLogger: - _logger: logging.Logger - - def __init__(self) -> None: - self._logger = logging.getLogger("fern") - if not self._logger.handlers: - handler = logging.StreamHandler() - handler.setFormatter(logging.Formatter("%(levelname)s - %(message)s")) - self._logger.addHandler(handler) - self._logger.setLevel(logging.DEBUG) - - def debug(self, message: str, **kwargs: typing.Any) -> None: - self._logger.debug(message, extra=kwargs) - - def info(self, message: str, **kwargs: typing.Any) -> None: - self._logger.info(message, extra=kwargs) - - def warn(self, message: str, **kwargs: typing.Any) -> None: - self._logger.warning(message, extra=kwargs) - - def error(self, message: str, **kwargs: typing.Any) -> None: - self._logger.error(message, extra=kwargs) - - -class LogConfig(typing.TypedDict, total=False): - level: LogLevel - logger: ILogger - silent: bool - - -class Logger: - _level: int - _logger: ILogger - _silent: bool - - def __init__(self, *, level: LogLevel, logger: ILogger, silent: bool) -> None: - self._level = _LOG_LEVEL_MAP[level] - self._logger = logger - self._silent = silent - - def _should_log(self, level: LogLevel) -> bool: - return not self._silent and self._level <= _LOG_LEVEL_MAP[level] - - def is_debug(self) -> bool: - return self._should_log("debug") - - def is_info(self) -> bool: - return self._should_log("info") - - def is_warn(self) -> bool: - return self._should_log("warn") - - def is_error(self) -> bool: - return self._should_log("error") - - def debug(self, message: str, **kwargs: typing.Any) -> None: - if self.is_debug(): - self._logger.debug(message, **kwargs) - - def info(self, message: str, **kwargs: typing.Any) -> None: - if self.is_info(): - self._logger.info(message, **kwargs) - - def warn(self, message: str, **kwargs: typing.Any) -> None: - if self.is_warn(): - self._logger.warn(message, **kwargs) - - def error(self, message: str, **kwargs: typing.Any) -> None: - if self.is_error(): - self._logger.error(message, **kwargs) - - -_default_logger: Logger = Logger(level="info", logger=ConsoleLogger(), silent=True) - - -def create_logger(config: typing.Optional[typing.Union[LogConfig, Logger]] = None) -> Logger: - if config is None: - return _default_logger - if isinstance(config, Logger): - return config - return Logger( - level=config.get("level", "info"), - logger=config.get("logger", ConsoleLogger()), - silent=config.get("silent", True), - ) diff --git a/src/merge/core/parse_error.py b/src/merge/core/parse_error.py deleted file mode 100644 index 4527c6a8..00000000 --- a/src/merge/core/parse_error.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from typing import Any, Dict, Optional - - -class ParsingError(Exception): - """ - Raised when the SDK fails to parse/validate a response from the server. - This typically indicates that the server returned a response whose shape - does not match the expected schema. - """ - - headers: Optional[Dict[str, str]] - status_code: Optional[int] - body: Any - cause: Optional[Exception] - - def __init__( - self, - *, - headers: Optional[Dict[str, str]] = None, - status_code: Optional[int] = None, - body: Any = None, - cause: Optional[Exception] = None, - ) -> None: - self.headers = headers - self.status_code = status_code - self.body = body - self.cause = cause - super().__init__() - if cause is not None: - self.__cause__ = cause - - def __str__(self) -> str: - cause_str = f", cause: {self.cause}" if self.cause is not None else "" - return f"headers: {self.headers}, status_code: {self.status_code}, body: {self.body}{cause_str}" diff --git a/src/merge/core/pydantic_utilities.py b/src/merge/core/pydantic_utilities.py index ed95da8b..6bea25f3 100644 --- a/src/merge/core/pydantic_utilities.py +++ b/src/merge/core/pydantic_utilities.py @@ -2,128 +2,30 @@ # nopycln: file import datetime as dt -import inspect -import json -import logging from collections import defaultdict -from dataclasses import asdict -from typing import ( - TYPE_CHECKING, - Any, - Callable, - ClassVar, - Dict, - List, - Mapping, - Optional, - Tuple, - Type, - TypeVar, - Union, - cast, -) +from typing import Any, Callable, Dict, List, Mapping, Tuple, Type, TypeVar, Union, cast import pydantic -import typing_extensions -from pydantic.fields import FieldInfo as _FieldInfo - -_logger = logging.getLogger(__name__) - -if TYPE_CHECKING: - from .http_sse._models import ServerSentEvent IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.") if IS_PYDANTIC_V2: - _datetime_adapter = pydantic.TypeAdapter(dt.datetime) # type: ignore[attr-defined] - _date_adapter = pydantic.TypeAdapter(dt.date) # type: ignore[attr-defined] - - def parse_datetime(value: Any) -> dt.datetime: # type: ignore[misc] - if isinstance(value, dt.datetime): - return value - return _datetime_adapter.validate_python(value) - - def parse_date(value: Any) -> dt.date: # type: ignore[misc] - if isinstance(value, dt.datetime): - return value.date() - if isinstance(value, dt.date): - return value - return _date_adapter.validate_python(value) - - # Avoid importing from pydantic.v1 to maintain Python 3.14 compatibility. - from typing import get_args as get_args # type: ignore[assignment] - from typing import get_origin as get_origin # type: ignore[assignment] - - def is_literal_type(tp: Optional[Type[Any]]) -> bool: # type: ignore[misc] - return typing_extensions.get_origin(tp) is typing_extensions.Literal - - def is_union(tp: Optional[Type[Any]]) -> bool: # type: ignore[misc] - return tp is Union or typing_extensions.get_origin(tp) is Union # type: ignore[comparison-overlap] - - # Inline encoders_by_type to avoid importing from pydantic.v1.json - import re as _re - from collections import deque as _deque - from decimal import Decimal as _Decimal - from enum import Enum as _Enum - from ipaddress import ( - IPv4Address as _IPv4Address, - ) - from ipaddress import ( - IPv4Interface as _IPv4Interface, - ) - from ipaddress import ( - IPv4Network as _IPv4Network, - ) - from ipaddress import ( - IPv6Address as _IPv6Address, - ) - from ipaddress import ( - IPv6Interface as _IPv6Interface, - ) - from ipaddress import ( - IPv6Network as _IPv6Network, - ) - from pathlib import Path as _Path - from types import GeneratorType as _GeneratorType - from uuid import UUID as _UUID - - from pydantic.fields import FieldInfo as ModelField # type: ignore[no-redef, assignment] - - def _decimal_encoder(dec_value: Any) -> Any: - if dec_value.as_tuple().exponent >= 0: - return int(dec_value) - return float(dec_value) - - encoders_by_type: Dict[Type[Any], Callable[[Any], Any]] = { # type: ignore[no-redef] - bytes: lambda o: o.decode(), - dt.date: lambda o: o.isoformat(), - dt.datetime: lambda o: o.isoformat(), - dt.time: lambda o: o.isoformat(), - dt.timedelta: lambda td: td.total_seconds(), - _Decimal: _decimal_encoder, - _Enum: lambda o: o.value, - frozenset: list, - _deque: list, - _GeneratorType: list, - _IPv4Address: str, - _IPv4Interface: str, - _IPv4Network: str, - _IPv6Address: str, - _IPv6Interface: str, - _IPv6Network: str, - _Path: str, - _re.Pattern: lambda o: o.pattern, - set: list, - _UUID: str, - } + from pydantic.v1.datetime_parse import parse_date as parse_date + from pydantic.v1.datetime_parse import parse_datetime as parse_datetime + from pydantic.v1.fields import ModelField as ModelField + from pydantic.v1.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore[attr-defined] + from pydantic.v1.typing import get_args as get_args + from pydantic.v1.typing import get_origin as get_origin + from pydantic.v1.typing import is_literal_type as is_literal_type + from pydantic.v1.typing import is_union as is_union else: from pydantic.datetime_parse import parse_date as parse_date # type: ignore[no-redef] from pydantic.datetime_parse import parse_datetime as parse_datetime # type: ignore[no-redef] - from pydantic.fields import ModelField as ModelField # type: ignore[attr-defined, no-redef, assignment] + from pydantic.fields import ModelField as ModelField # type: ignore[attr-defined, no-redef] from pydantic.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore[no-redef] from pydantic.typing import get_args as get_args # type: ignore[no-redef] from pydantic.typing import get_origin as get_origin # type: ignore[no-redef] - from pydantic.typing import is_literal_type as is_literal_type # type: ignore[no-redef, assignment] + from pydantic.typing import is_literal_type as is_literal_type # type: ignore[no-redef] from pydantic.typing import is_union as is_union # type: ignore[no-redef] from .datetime_utils import serialize_datetime @@ -133,169 +35,6 @@ def _decimal_encoder(dec_value: Any) -> Any: Model = TypeVar("Model", bound=pydantic.BaseModel) -def _get_discriminator_and_variants(type_: Type[Any]) -> Tuple[Optional[str], Optional[List[Type[Any]]]]: - """ - Extract the discriminator field name and union variants from a discriminated union type. - Supports Annotated[Union[...], Field(discriminator=...)] patterns. - Returns (discriminator, variants) or (None, None) if not a discriminated union. - """ - origin = typing_extensions.get_origin(type_) - - if origin is typing_extensions.Annotated: - args = typing_extensions.get_args(type_) - if len(args) >= 2: - inner_type = args[0] - # Check annotations for discriminator - discriminator = None - for annotation in args[1:]: - if hasattr(annotation, "discriminator"): - discriminator = getattr(annotation, "discriminator", None) - break - - if discriminator: - inner_origin = typing_extensions.get_origin(inner_type) - if inner_origin is Union: - variants = list(typing_extensions.get_args(inner_type)) - return discriminator, variants - return None, None - - -def _get_field_annotation(model: Type[Any], field_name: str) -> Optional[Type[Any]]: - """Get the type annotation of a field from a Pydantic model.""" - if IS_PYDANTIC_V2: - fields = getattr(model, "model_fields", {}) - field_info = fields.get(field_name) - if field_info: - return cast(Optional[Type[Any]], field_info.annotation) - else: - fields = getattr(model, "__fields__", {}) - field_info = fields.get(field_name) - if field_info: - return cast(Optional[Type[Any]], field_info.outer_type_) - return None - - -def _find_variant_by_discriminator( - variants: List[Type[Any]], - discriminator: str, - discriminator_value: Any, -) -> Optional[Type[Any]]: - """Find the union variant that matches the discriminator value.""" - for variant in variants: - if not (inspect.isclass(variant) and issubclass(variant, pydantic.BaseModel)): - continue - - disc_annotation = _get_field_annotation(variant, discriminator) - if disc_annotation and is_literal_type(disc_annotation): - literal_args = get_args(disc_annotation) - if literal_args and literal_args[0] == discriminator_value: - return variant - return None - - -def _is_string_type(type_: Type[Any]) -> bool: - """Check if a type is str or Optional[str].""" - if type_ is str: - return True - - origin = typing_extensions.get_origin(type_) - if origin is Union: - args = typing_extensions.get_args(type_) - # Optional[str] = Union[str, None] - non_none_args = [a for a in args if a is not type(None)] - if len(non_none_args) == 1 and non_none_args[0] is str: - return True - - return False - - -def parse_sse_obj(sse: "ServerSentEvent", type_: Type[T]) -> T: - """ - Parse a ServerSentEvent into the appropriate type. - - Handles two scenarios based on where the discriminator field is located: - - 1. Data-level discrimination: The discriminator (e.g., 'type') is inside the 'data' payload. - The union describes the data content, not the SSE envelope. - -> Returns: json.loads(data) parsed into the type - - 2. Event-level discrimination: The discriminator (e.g., 'event') is at the SSE event level. - The union describes the full SSE event structure. - -> Returns: SSE envelope with 'data' field JSON-parsed only if the variant expects non-string - - Args: - sse: The ServerSentEvent object to parse - type_: The target discriminated union type - - Returns: - The parsed object of type T - - Note: - This function is only available in SDK contexts where http_sse module exists. - """ - sse_event = asdict(sse) - discriminator, variants = _get_discriminator_and_variants(type_) - - if discriminator is None or variants is None: - # Not a discriminated union - parse the data field as JSON - data_value = sse_event.get("data") - if isinstance(data_value, str) and data_value: - try: - parsed_data = json.loads(data_value) - return parse_obj_as(type_, parsed_data) - except json.JSONDecodeError as e: - _logger.warning( - "Failed to parse SSE data field as JSON: %s, data: %s", - e, - data_value[:100] if len(data_value) > 100 else data_value, - ) - return parse_obj_as(type_, sse_event) - - data_value = sse_event.get("data") - - # Check if discriminator is at the top level (event-level discrimination) - if discriminator in sse_event: - # Case 2: Event-level discrimination - # Find the matching variant to check if 'data' field needs JSON parsing - disc_value = sse_event.get(discriminator) - matching_variant = _find_variant_by_discriminator(variants, discriminator, disc_value) - - if matching_variant is not None: - # Check what type the variant expects for 'data' - data_type = _get_field_annotation(matching_variant, "data") - if data_type is not None and not _is_string_type(data_type): - # Variant expects non-string data - parse JSON - if isinstance(data_value, str) and data_value: - try: - parsed_data = json.loads(data_value) - new_object = dict(sse_event) - new_object["data"] = parsed_data - return parse_obj_as(type_, new_object) - except json.JSONDecodeError as e: - _logger.warning( - "Failed to parse SSE data field as JSON for event-level discrimination: %s, data: %s", - e, - data_value[:100] if len(data_value) > 100 else data_value, - ) - # Either no matching variant, data is string type, or JSON parse failed - return parse_obj_as(type_, sse_event) - - else: - # Case 1: Data-level discrimination - # The discriminator is inside the data payload - extract and parse data only - if isinstance(data_value, str) and data_value: - try: - parsed_data = json.loads(data_value) - return parse_obj_as(type_, parsed_data) - except json.JSONDecodeError as e: - _logger.warning( - "Failed to parse SSE data field as JSON for data-level discrimination: %s, data: %s", - e, - data_value[:100] if len(data_value) > 100 else data_value, - ) - return parse_obj_as(type_, sse_event) - - def parse_obj_as(type_: Type[T], object_: Any) -> T: if IS_PYDANTIC_V2: adapter = pydantic.TypeAdapter(type_) # type: ignore[attr-defined] @@ -312,37 +51,13 @@ def to_jsonable_with_fallback(obj: Any, fallback_serializer: Callable[[Any], Any class UniversalBaseModel(pydantic.BaseModel): - if IS_PYDANTIC_V2: - model_config: ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict( # type: ignore[typeddict-unknown-key] - validate_by_name=True, - validate_by_alias=True, - # Allow fields beginning with `model_` to be used in the model - protected_namespaces=(), - ) - - @pydantic.model_serializer(mode="plain", when_used="json") # type: ignore[attr-defined] - def serialize_model(self) -> Any: # type: ignore[name-defined] - def _serialize_recursive(obj: Any) -> Any: - if isinstance(obj, dt.datetime): - return serialize_datetime(obj) - elif isinstance(obj, dict): - return {k: _serialize_recursive(v) for k, v in obj.items()} - elif isinstance(obj, list): - return [_serialize_recursive(item) for item in obj] - return obj - - serialized = self.model_dump() # type: ignore[attr-defined] - return _serialize_recursive(serialized) - - else: - - class Config: - populate_by_name = True - smart_union = True - allow_population_by_field_name = True - json_encoders = {dt.datetime: serialize_datetime} - # Allow fields beginning with `model_` to be used in the model - protected_namespaces = () + class Config: + populate_by_name = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + # Allow fields beginning with `model_` to be used in the model + protected_namespaces = () def json(self, **kwargs: Any) -> str: kwargs_with_defaults = { @@ -470,14 +185,10 @@ def update_forward_refs(model: Type["Model"], **localns: Any) -> None: AnyCallable = Callable[..., Any] -def universal_root_validator( - pre: bool = False, -) -> Callable[[AnyCallable], AnyCallable]: +def universal_root_validator(pre: bool = False) -> Callable[[AnyCallable], AnyCallable]: def decorator(func: AnyCallable) -> AnyCallable: if IS_PYDANTIC_V2: - # In Pydantic v2, for RootModel we always use "before" mode - # The custom validators transform the input value before the model is created - return cast(AnyCallable, pydantic.model_validator(mode="before")(func)) # type: ignore[attr-defined] + return cast(AnyCallable, pydantic.model_validator(mode="before" if pre else "after")(func)) # type: ignore[attr-defined] return cast(AnyCallable, pydantic.root_validator(pre=pre)(func)) # type: ignore[call-overload] return decorator @@ -492,7 +203,7 @@ def decorator(func: AnyCallable) -> AnyCallable: return decorator -PydanticField = Union[ModelField, _FieldInfo] +PydanticField = Union[ModelField, pydantic.fields.FieldInfo] def _get_model_fields(model: Type["Model"]) -> Mapping[str, PydanticField]: diff --git a/src/merge/core/unchecked_base_model.py b/src/merge/core/unchecked_base_model.py index 43879b80..ae59845f 100644 --- a/src/merge/core/unchecked_base_model.py +++ b/src/merge/core/unchecked_base_model.py @@ -1,15 +1,13 @@ # This file was auto-generated by Fern from our API Definition. import datetime as dt -import enum import inspect -import sys import typing import uuid import pydantic import typing_extensions -from .pydantic_utilities import ( # type: ignore[attr-defined] +from .pydantic_utilities import ( IS_PYDANTIC_V2, ModelField, UniversalBaseModel, @@ -35,28 +33,6 @@ def __init__(self, *, discriminant: str) -> None: Model = typing.TypeVar("Model", bound=pydantic.BaseModel) -def _maybe_resolve_forward_ref( - type_: typing.Any, - host: typing.Optional[typing.Type[typing.Any]], -) -> typing.Any: - """Resolve a ForwardRef using the module where *host* is defined. - - Pydantic v2 + ``from __future__ import annotations`` can leave field - annotations as ``list[ForwardRef('Block')]`` even after ``model_rebuild``. - Without resolution, ``construct_type`` sees a ForwardRef (not a class) and - skips recursive model construction, leaving nested data as raw dicts. - """ - if host is None or not isinstance(type_, typing.ForwardRef): - return type_ - mod = sys.modules.get(host.__module__) - if mod is None: - return type_ - try: - return eval(type_.__forward_arg__, vars(mod)) - except Exception: - return type_ - - class UncheckedBaseModel(UniversalBaseModel): if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow") # type: ignore # Pydantic v2 @@ -110,7 +86,7 @@ def construct( type_ = typing.cast(typing.Type, field.outer_type_) # type: ignore # Pydantic < v1.10.15 fields_values[name] = ( - construct_type(object_=values[key], type_=type_, host=cls) if type_ is not None else values[key] + construct_type(object_=values[key], type_=type_) if type_ is not None else values[key] ) _fields_set.add(name) else: @@ -174,75 +150,15 @@ def _validate_collection_items_compatible(collection: typing.Any, target_type: t return True -def _get_literal_field_value( - inner_type: typing.Type[typing.Any], field_name: str, field: typing.Any, object_: typing.Any -) -> typing.Any: - """Get the value of a Literal field from *object_*, checking both alias and field name.""" - name_or_alias = get_field_to_alias_mapping(inner_type).get(field_name, field_name) - pydantic_alias = getattr(field, "alias", None) - if isinstance(object_, dict): - if name_or_alias in object_: - return object_[name_or_alias] - if pydantic_alias and pydantic_alias != name_or_alias and pydantic_alias in object_: - return object_[pydantic_alias] - return None - return getattr(object_, name_or_alias, getattr(object_, pydantic_alias, None) if pydantic_alias else None) - - -def _literal_fields_match_strict(inner_type: typing.Type[typing.Any], object_: typing.Any) -> bool: - """Return True iff every Literal-typed field in *inner_type* is **present** in - *object_* and its value equals the field's declared default. - - This prevents models whose fields are all optional (e.g. ``FigureDetails``) - from vacuously matching inputs that don't carry the discriminant key at all - (e.g. ``{}`` for text blocks). For types with no Literal fields this - returns True unconditionally. - """ - fields = _get_model_fields(inner_type) - for field_name, field in fields.items(): - if IS_PYDANTIC_V2: - field_type = field.annotation # type: ignore # Pydantic v2 - else: - field_type = field.outer_type_ # type: ignore # Pydantic v1 - - if is_literal_type(field_type): # type: ignore[arg-type] - field_default = _get_field_default(field) - object_value = _get_literal_field_value(inner_type, field_name, field, object_) - if field_default != object_value: - return False - return True - - -def _convert_undiscriminated_union_type( - union_type: typing.Type[typing.Any], - object_: typing.Any, - host: typing.Optional[typing.Type[typing.Any]] = None, -) -> typing.Any: +def _convert_undiscriminated_union_type(union_type: typing.Type[typing.Any], object_: typing.Any) -> typing.Any: inner_types = get_args(union_type) if typing.Any in inner_types: return object_ - # When any union member carries a Literal discriminant field, require the - # discriminant key to be present AND matching before accepting a candidate. - # This prevents models with all-optional fields (e.g. FigureDetails) from - # greedily matching inputs that belong to a different variant or to a - # plain-dict fallback (e.g. EmptyBlockDetails = Dict[str, Any]). - has_literal_discriminant = any( - inspect.isclass(t) - and issubclass(t, pydantic.BaseModel) - and any( - is_literal_type( - f.annotation if IS_PYDANTIC_V2 else f.outer_type_ # type: ignore - ) - for f in _get_model_fields(t).values() - ) - for t in inner_types - ) - for inner_type in inner_types: # Handle lists of objects that need parsing if get_origin(inner_type) is list and isinstance(object_, list): - list_inner_type = _maybe_resolve_forward_ref(get_args(inner_type)[0], host) + list_inner_type = get_args(inner_type)[0] try: if inspect.isclass(list_inner_type) and issubclass(list_inner_type, pydantic.BaseModel): # Validate that all items in the list are compatible with the target type @@ -254,63 +170,20 @@ def _convert_undiscriminated_union_type( try: if inspect.isclass(inner_type) and issubclass(inner_type, pydantic.BaseModel): - if has_literal_discriminant and not _literal_fields_match_strict(inner_type, object_): - continue # Attempt a validated parse until one works return parse_obj_as(inner_type, object_) except Exception: continue - # First pass: try types where all literal fields match the object's values. - for inner_type in inner_types: - if inspect.isclass(inner_type) and issubclass(inner_type, pydantic.BaseModel): - if has_literal_discriminant: - if not _literal_fields_match_strict(inner_type, object_): - continue - else: - # Legacy lenient check: skip only when a Literal value is - # present but doesn't match (allows absent-discriminant inputs). - fields = _get_model_fields(inner_type) - literal_fields_match = True - for field_name, field in fields.items(): - if IS_PYDANTIC_V2: - field_type = field.annotation # type: ignore # Pydantic v2 - else: - field_type = field.outer_type_ # type: ignore # Pydantic v1 - - if is_literal_type(field_type): # type: ignore[arg-type] - field_default = _get_field_default(field) - object_value = _get_literal_field_value(inner_type, field_name, field, object_) - if object_value is not None and field_default != object_value: - literal_fields_match = False - break - - if not literal_fields_match: - continue - - try: - return construct_type(object_=object_, type_=inner_type, host=host) - except Exception: - continue - - # Second pass: if no literal matches, return the first successful cast. - # When a Literal discriminant is present, skip Pydantic models whose - # discriminant doesn't match so that plain-dict fallback types are reached. + # If none of the types work, just return the first successful cast for inner_type in inner_types: try: - if has_literal_discriminant and inspect.isclass(inner_type) and issubclass(inner_type, pydantic.BaseModel): - if not _literal_fields_match_strict(inner_type, object_): - continue - return construct_type(object_=object_, type_=inner_type, host=host) + return construct_type(object_=object_, type_=inner_type) except Exception: continue -def _convert_union_type( - type_: typing.Type[typing.Any], - object_: typing.Any, - host: typing.Optional[typing.Type[typing.Any]] = None, -) -> typing.Any: +def _convert_union_type(type_: typing.Type[typing.Any], object_: typing.Any) -> typing.Any: base_type = get_origin(type_) or type_ union_type = type_ if base_type == typing_extensions.Annotated: # type: ignore[comparison-overlap] @@ -326,19 +199,14 @@ def _convert_union_type( except: objects_discriminant = object_[metadata.discriminant] if inner_type.__fields__[metadata.discriminant].default == objects_discriminant: - return construct_type(object_=object_, type_=inner_type, host=host) + return construct_type(object_=object_, type_=inner_type) except Exception: # Allow to fall through to our regular union handling pass - return _convert_undiscriminated_union_type(union_type, object_, host) + return _convert_undiscriminated_union_type(union_type, object_) -def construct_type( - *, - type_: typing.Type[typing.Any], - object_: typing.Any, - host: typing.Optional[typing.Type[typing.Any]] = None, -) -> typing.Any: +def construct_type(*, type_: typing.Type[typing.Any], object_: typing.Any) -> typing.Any: """ Here we are essentially creating the same `construct` method in spirit as the above, but for all types, not just Pydantic models. @@ -361,12 +229,8 @@ def construct_type( return object_ key_type, items_type = get_args(type_) - key_type = _maybe_resolve_forward_ref(key_type, host) - items_type = _maybe_resolve_forward_ref(items_type, host) d = { - construct_type(object_=key, type_=key_type, host=host): construct_type( - object_=item, type_=items_type, host=host - ) + construct_type(object_=key, type_=key_type): construct_type(object_=item, type_=items_type) for key, item in object_.items() } return d @@ -375,18 +239,18 @@ def construct_type( if not isinstance(object_, list): return object_ - inner_type = _maybe_resolve_forward_ref(get_args(type_)[0], host) - return [construct_type(object_=entry, type_=inner_type, host=host) for entry in object_] + inner_type = get_args(type_)[0] + return [construct_type(object_=entry, type_=inner_type) for entry in object_] if base_type == set: if not isinstance(object_, set) and not isinstance(object_, list): return object_ - inner_type = _maybe_resolve_forward_ref(get_args(type_)[0], host) - return {construct_type(object_=entry, type_=inner_type, host=host) for entry in object_} + inner_type = get_args(type_)[0] + return {construct_type(object_=entry, type_=inner_type) for entry in object_} if is_union(base_type) or is_annotated_union: - return _convert_union_type(type_, object_, host) + return _convert_union_type(type_, object_) # Cannot do an `issubclass` with a literal type, let's also just confirm we have a class before this call if ( @@ -440,8 +304,6 @@ def construct_type( except Exception: return object_ - # MERGE CUSTOMIZATION: return raw enum values instead of coercing to enum - # members, to preserve forward-compatible behavior for customers. return object_ @@ -451,9 +313,7 @@ def _get_is_populate_by_name(model: typing.Type["Model"]) -> bool: return model.__config__.allow_population_by_field_name # type: ignore # Pydantic v1 -from pydantic.fields import FieldInfo as _FieldInfo - -PydanticField = typing.Union[ModelField, _FieldInfo] +PydanticField = typing.Union[ModelField, pydantic.fields.FieldInfo] # Pydantic V1 swapped the typing of __fields__'s values from ModelField to FieldInfo diff --git a/src/merge/resources/__init__.py b/src/merge/resources/__init__.py index c9753741..3899f5b0 100644 --- a/src/merge/resources/__init__.py +++ b/src/merge/resources/__init__.py @@ -8,16 +8,16 @@ if typing.TYPE_CHECKING: from . import accounting, ats, calendar, chat, crm, email, filestorage, hris, knowledgebase, ticketing _dynamic_imports: typing.Dict[str, str] = { - "accounting": ".accounting", - "ats": ".ats", - "calendar": ".calendar", - "chat": ".chat", - "crm": ".crm", - "email": ".email", - "filestorage": ".filestorage", - "hris": ".hris", - "knowledgebase": ".knowledgebase", - "ticketing": ".ticketing", + "accounting": ".", + "ats": ".", + "calendar": ".", + "chat": ".", + "crm": ".", + "email": ".", + "filestorage": ".", + "hris": ".", + "knowledgebase": ".", + "ticketing": ".", } @@ -27,10 +27,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/__init__.py b/src/merge/resources/accounting/__init__.py index 3515ccf4..c628c6af 100644 --- a/src/merge/resources/accounting/__init__.py +++ b/src/merge/resources/accounting/__init__.py @@ -577,7 +577,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, TaxComponent, TaxComponentComponentType, TaxRate, @@ -1356,7 +1358,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "TaxComponent": ".types", "TaxComponentComponentType": ".types", "TaxRate": ".types", @@ -1476,10 +1480,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -2109,7 +2111,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TaxComponent", "TaxComponentComponentType", "TaxRate", diff --git a/src/merge/resources/accounting/resources/__init__.py b/src/merge/resources/accounting/resources/__init__.py index 6c92fae9..c7eebe10 100644 --- a/src/merge/resources/accounting/resources/__init__.py +++ b/src/merge/resources/accounting/resources/__init__.py @@ -159,55 +159,55 @@ "TransactionsRetrieveRequestExpandItem": ".transactions", "VendorCreditsListRequestExpandItem": ".vendor_credits", "VendorCreditsRetrieveRequestExpandItem": ".vendor_credits", - "account_details": ".account_details", - "account_token": ".account_token", - "accounting_periods": ".accounting_periods", - "accounts": ".accounts", - "addresses": ".addresses", - "async_passthrough": ".async_passthrough", - "async_tasks": ".async_tasks", - "attachments": ".attachments", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "balance_sheets": ".balance_sheets", - "bank_feed_accounts": ".bank_feed_accounts", - "bank_feed_transactions": ".bank_feed_transactions", - "cash_flow_statements": ".cash_flow_statements", - "company_info": ".company_info", - "contacts": ".contacts", - "credit_notes": ".credit_notes", - "delete_account": ".delete_account", - "employees": ".employees", - "expense_reports": ".expense_reports", - "expenses": ".expenses", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "general_ledger_transactions": ".general_ledger_transactions", - "generate_key": ".generate_key", - "income_statements": ".income_statements", - "invoices": ".invoices", - "issues": ".issues", - "item_fulfillments": ".item_fulfillments", - "items": ".items", - "journal_entries": ".journal_entries", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "passthrough": ".passthrough", - "payment_methods": ".payment_methods", - "payment_terms": ".payment_terms", - "payments": ".payments", - "phone_numbers": ".phone_numbers", - "projects": ".projects", - "purchase_orders": ".purchase_orders", - "regenerate_key": ".regenerate_key", - "sales_orders": ".sales_orders", - "scopes": ".scopes", - "sync_status": ".sync_status", - "tax_rates": ".tax_rates", - "tracking_categories": ".tracking_categories", - "transactions": ".transactions", - "vendor_credits": ".vendor_credits", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "accounting_periods": ".", + "accounts": ".", + "addresses": ".", + "async_passthrough": ".", + "async_tasks": ".", + "attachments": ".", + "audit_trail": ".", + "available_actions": ".", + "balance_sheets": ".", + "bank_feed_accounts": ".", + "bank_feed_transactions": ".", + "cash_flow_statements": ".", + "company_info": ".", + "contacts": ".", + "credit_notes": ".", + "delete_account": ".", + "employees": ".", + "expense_reports": ".", + "expenses": ".", + "field_mapping": ".", + "force_resync": ".", + "general_ledger_transactions": ".", + "generate_key": ".", + "income_statements": ".", + "invoices": ".", + "issues": ".", + "item_fulfillments": ".", + "items": ".", + "journal_entries": ".", + "link_token": ".", + "linked_accounts": ".", + "passthrough": ".", + "payment_methods": ".", + "payment_terms": ".", + "payments": ".", + "phone_numbers": ".", + "projects": ".", + "purchase_orders": ".", + "regenerate_key": ".", + "sales_orders": ".", + "scopes": ".", + "sync_status": ".", + "tax_rates": ".", + "tracking_categories": ".", + "transactions": ".", + "vendor_credits": ".", + "webhook_receivers": ".", } @@ -217,10 +217,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/account_details/raw_client.py b/src/merge/resources/accounting/resources/account_details/raw_client.py index e30b13d8..8545113d 100644 --- a/src/merge/resources/accounting/resources/account_details/raw_client.py +++ b/src/merge/resources/accounting/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/account_token/raw_client.py b/src/merge/resources/accounting/resources/account_token/raw_client.py index ca5c3e66..619b7dd9 100644 --- a/src/merge/resources/accounting/resources/account_token/raw_client.py +++ b/src/merge/resources/accounting/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/accounting_periods/raw_client.py b/src/merge/resources/accounting/resources/accounting_periods/raw_client.py index 5183b734..895aa1e5 100644 --- a/src/merge/resources/accounting/resources/accounting_periods/raw_client.py +++ b/src/merge/resources/accounting/resources/accounting_periods/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.accounting_period import AccountingPeriod from ...types.paginated_accounting_period_list import PaginatedAccountingPeriodList -from pydantic import ValidationError class RawAccountingPeriodsClient: @@ -82,10 +80,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -139,10 +133,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -213,10 +203,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -270,8 +256,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/accounts/__init__.py b/src/merge/resources/accounting/resources/accounts/__init__.py index 2c02b11a..bee926eb 100644 --- a/src/merge/resources/accounting/resources/accounts/__init__.py +++ b/src/merge/resources/accounting/resources/accounts/__init__.py @@ -30,10 +30,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/accounts/raw_client.py b/src/merge/resources/accounting/resources/accounts/raw_client.py index eb821bc1..7ba64f8f 100644 --- a/src/merge/resources/accounting/resources/accounts/raw_client.py +++ b/src/merge/resources/accounting/resources/accounts/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account import Account @@ -23,7 +22,6 @@ from .types.accounts_list_request_status import AccountsListRequestStatus from .types.accounts_retrieve_request_remote_fields import AccountsRetrieveRequestRemoteFields from .types.accounts_retrieve_request_show_enum_origins import AccountsRetrieveRequestShowEnumOrigins -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -163,10 +161,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -227,10 +221,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -301,10 +291,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -341,10 +327,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -482,10 +464,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -546,10 +524,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -620,10 +594,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -660,8 +630,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/accounts/types/__init__.py b/src/merge/resources/accounting/resources/accounts/types/__init__.py index e63adf59..61dd5434 100644 --- a/src/merge/resources/accounting/resources/accounts/types/__init__.py +++ b/src/merge/resources/accounting/resources/accounts/types/__init__.py @@ -28,10 +28,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_classification.py b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_classification.py index 61757ef8..dd3eac4b 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_classification.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_classification.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsListRequestClassification(enum.StrEnum): +class AccountsListRequestClassification(str, enum.Enum): EMPTY = "" ASSET = "ASSET" EQUITY = "EQUITY" diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_remote_fields.py b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_remote_fields.py index 94caf019..a7bcc53e 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_remote_fields.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsListRequestRemoteFields(enum.StrEnum): +class AccountsListRequestRemoteFields(str, enum.Enum): CLASSIFICATION = "classification" CLASSIFICATION_STATUS = "classification,status" STATUS = "status" diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_show_enum_origins.py b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_show_enum_origins.py index b3b3e6d9..16e8bba6 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_show_enum_origins.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsListRequestShowEnumOrigins(enum.StrEnum): +class AccountsListRequestShowEnumOrigins(str, enum.Enum): CLASSIFICATION = "classification" CLASSIFICATION_STATUS = "classification,status" STATUS = "status" diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_status.py b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_status.py index edad0ff5..ddaed77c 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_status.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsListRequestStatus(enum.StrEnum): +class AccountsListRequestStatus(str, enum.Enum): EMPTY = "" ACTIVE = "ACTIVE" INACTIVE = "INACTIVE" diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_remote_fields.py b/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_remote_fields.py index 23c863de..9ed86394 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_remote_fields.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsRetrieveRequestRemoteFields(enum.StrEnum): +class AccountsRetrieveRequestRemoteFields(str, enum.Enum): CLASSIFICATION = "classification" CLASSIFICATION_STATUS = "classification,status" STATUS = "status" diff --git a/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_show_enum_origins.py b/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_show_enum_origins.py index 0f811a36..7ebeb5b8 100644 --- a/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/accounting/resources/accounts/types/accounts_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class AccountsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class AccountsRetrieveRequestShowEnumOrigins(str, enum.Enum): CLASSIFICATION = "classification" CLASSIFICATION_STATUS = "classification,status" STATUS = "status" diff --git a/src/merge/resources/accounting/resources/addresses/raw_client.py b/src/merge/resources/accounting/resources/addresses/raw_client.py index 000a9274..1c6fc0b8 100644 --- a/src/merge/resources/accounting/resources/addresses/raw_client.py +++ b/src/merge/resources/accounting/resources/addresses/raw_client.py @@ -7,11 +7,9 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.address import Address -from pydantic import ValidationError class RawAddressesClient: @@ -79,10 +77,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -151,8 +145,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/async_passthrough/__init__.py b/src/merge/resources/accounting/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/accounting/resources/async_passthrough/__init__.py +++ b/src/merge/resources/accounting/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/async_passthrough/raw_client.py b/src/merge/resources/accounting/resources/async_passthrough/raw_client.py index 39c2f22f..18375f3b 100644 --- a/src/merge/resources/accounting/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/accounting/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/async_passthrough/types/__init__.py b/src/merge/resources/accounting/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/accounting/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/accounting/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/async_tasks/raw_client.py b/src/merge/resources/accounting/resources/async_tasks/raw_client.py index 9625c0ac..593d5a4f 100644 --- a/src/merge/resources/accounting/resources/async_tasks/raw_client.py +++ b/src/merge/resources/accounting/resources/async_tasks/raw_client.py @@ -7,11 +7,9 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_post_task import AsyncPostTask -from pydantic import ValidationError class RawAsyncTasksClient: @@ -54,10 +52,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -101,8 +95,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/attachments/raw_client.py b/src/merge/resources/accounting/resources/attachments/raw_client.py index b49c1e7e..ade38f6e 100644 --- a/src/merge/resources/accounting/resources/attachments/raw_client.py +++ b/src/merge/resources/accounting/resources/attachments/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.accounting_attachment import AccountingAttachment @@ -17,7 +16,6 @@ from ...types.accounting_attachment_response import AccountingAttachmentResponse from ...types.meta_response import MetaResponse from ...types.paginated_accounting_attachment_list import PaginatedAccountingAttachmentList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -120,10 +118,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -184,10 +178,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -241,10 +231,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -281,10 +267,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -385,10 +367,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -449,10 +427,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -506,10 +480,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -546,8 +516,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/audit_trail/raw_client.py b/src/merge/resources/accounting/resources/audit_trail/raw_client.py index 1d825c55..83c23773 100644 --- a/src/merge/resources/accounting/resources/audit_trail/raw_client.py +++ b/src/merge/resources/accounting/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/available_actions/raw_client.py b/src/merge/resources/accounting/resources/available_actions/raw_client.py index d6a340c1..03a2f720 100644 --- a/src/merge/resources/accounting/resources/available_actions/raw_client.py +++ b/src/merge/resources/accounting/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/balance_sheets/raw_client.py b/src/merge/resources/accounting/resources/balance_sheets/raw_client.py index f6c1f762..c931dfe9 100644 --- a/src/merge/resources/accounting/resources/balance_sheets/raw_client.py +++ b/src/merge/resources/accounting/resources/balance_sheets/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.balance_sheet import BalanceSheet from ...types.paginated_balance_sheet_list import PaginatedBalanceSheetList -from pydantic import ValidationError class RawBalanceSheetsClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/bank_feed_accounts/raw_client.py b/src/merge/resources/accounting/resources/bank_feed_accounts/raw_client.py index 8691ec71..2c34a702 100644 --- a/src/merge/resources/accounting/resources/bank_feed_accounts/raw_client.py +++ b/src/merge/resources/accounting/resources/bank_feed_accounts/raw_client.py @@ -7,7 +7,6 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.bank_feed_account import BankFeedAccount @@ -15,7 +14,6 @@ from ...types.bank_feed_account_response import BankFeedAccountResponse from ...types.meta_response import MetaResponse from ...types.paginated_bank_feed_account_list import PaginatedBankFeedAccountList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -88,10 +86,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -152,10 +146,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -209,10 +199,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -249,10 +235,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -323,10 +305,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -387,10 +365,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -444,10 +418,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -484,8 +454,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/bank_feed_transactions/raw_client.py b/src/merge/resources/accounting/resources/bank_feed_transactions/raw_client.py index ee16beab..15d8c607 100644 --- a/src/merge/resources/accounting/resources/bank_feed_transactions/raw_client.py +++ b/src/merge/resources/accounting/resources/bank_feed_transactions/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.bank_feed_transaction import BankFeedTransaction @@ -17,7 +16,6 @@ from ...types.bank_feed_transaction_response import BankFeedTransactionResponse from ...types.meta_response import MetaResponse from ...types.paginated_bank_feed_transaction_list import PaginatedBankFeedTransactionList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -127,10 +125,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -191,10 +185,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -255,10 +245,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -295,10 +281,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -406,10 +388,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -470,10 +448,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -534,10 +508,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -574,8 +544,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/cash_flow_statements/raw_client.py b/src/merge/resources/accounting/resources/cash_flow_statements/raw_client.py index 75581682..725d8c94 100644 --- a/src/merge/resources/accounting/resources/cash_flow_statements/raw_client.py +++ b/src/merge/resources/accounting/resources/cash_flow_statements/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.cash_flow_statement import CashFlowStatement from ...types.paginated_cash_flow_statement_list import PaginatedCashFlowStatementList -from pydantic import ValidationError class RawCashFlowStatementsClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/company_info/__init__.py b/src/merge/resources/accounting/resources/company_info/__init__.py index d2d8f9fc..fa192fe1 100644 --- a/src/merge/resources/accounting/resources/company_info/__init__.py +++ b/src/merge/resources/accounting/resources/company_info/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/company_info/raw_client.py b/src/merge/resources/accounting/resources/company_info/raw_client.py index 9bed2c3f..6f3de01a 100644 --- a/src/merge/resources/accounting/resources/company_info/raw_client.py +++ b/src/merge/resources/accounting/resources/company_info/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.company_info import CompanyInfo from ...types.paginated_company_info_list import PaginatedCompanyInfoList from .types.company_info_list_request_expand_item import CompanyInfoListRequestExpandItem from .types.company_info_retrieve_request_expand_item import CompanyInfoRetrieveRequestExpandItem -from pydantic import ValidationError class RawCompanyInfoClient: @@ -123,10 +121,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -187,10 +181,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -298,10 +288,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -362,8 +348,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/company_info/types/__init__.py b/src/merge/resources/accounting/resources/company_info/types/__init__.py index 3ffed177..44e92ab2 100644 --- a/src/merge/resources/accounting/resources/company_info/types/__init__.py +++ b/src/merge/resources/accounting/resources/company_info/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/company_info/types/company_info_list_request_expand_item.py b/src/merge/resources/accounting/resources/company_info/types/company_info_list_request_expand_item.py index ace56faa..fcd4b70b 100644 --- a/src/merge/resources/accounting/resources/company_info/types/company_info_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/company_info/types/company_info_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CompanyInfoListRequestExpandItem(enum.StrEnum): +class CompanyInfoListRequestExpandItem(str, enum.Enum): ADDRESSES = "addresses" PHONE_NUMBERS = "phone_numbers" diff --git a/src/merge/resources/accounting/resources/company_info/types/company_info_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/company_info/types/company_info_retrieve_request_expand_item.py index 31c4750f..8ba3d646 100644 --- a/src/merge/resources/accounting/resources/company_info/types/company_info_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/company_info/types/company_info_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CompanyInfoRetrieveRequestExpandItem(enum.StrEnum): +class CompanyInfoRetrieveRequestExpandItem(str, enum.Enum): ADDRESSES = "addresses" PHONE_NUMBERS = "phone_numbers" diff --git a/src/merge/resources/accounting/resources/contacts/__init__.py b/src/merge/resources/accounting/resources/contacts/__init__.py index 6f7a2a3d..525a6174 100644 --- a/src/merge/resources/accounting/resources/contacts/__init__.py +++ b/src/merge/resources/accounting/resources/contacts/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/contacts/raw_client.py b/src/merge/resources/accounting/resources/contacts/raw_client.py index 5327bfaf..4e95b33a 100644 --- a/src/merge/resources/accounting/resources/contacts/raw_client.py +++ b/src/merge/resources/accounting/resources/contacts/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.contact import Contact @@ -22,7 +21,6 @@ from .types.contacts_list_request_expand_item import ContactsListRequestExpandItem from .types.contacts_list_request_status import ContactsListRequestStatus from .types.contacts_retrieve_request_expand_item import ContactsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -172,10 +170,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -236,10 +230,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -315,10 +305,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -382,10 +368,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -424,10 +406,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -464,10 +442,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -543,10 +517,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -694,10 +664,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -758,10 +724,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -837,10 +799,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -904,10 +862,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -946,10 +900,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -986,10 +936,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1065,8 +1011,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/contacts/types/__init__.py b/src/merge/resources/accounting/resources/contacts/types/__init__.py index 1d575539..0a474087 100644 --- a/src/merge/resources/accounting/resources/contacts/types/__init__.py +++ b/src/merge/resources/accounting/resources/contacts/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_expand_item.py b/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_expand_item.py index 561e2c47..ae437e08 100644 --- a/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContactsListRequestExpandItem(enum.StrEnum): +class ContactsListRequestExpandItem(str, enum.Enum): ADDRESSES = "addresses" COMPANY = "company" PHONE_NUMBERS = "phone_numbers" diff --git a/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_status.py b/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_status.py index fad03d82..fa950926 100644 --- a/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_status.py +++ b/src/merge/resources/accounting/resources/contacts/types/contacts_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContactsListRequestStatus(enum.StrEnum): +class ContactsListRequestStatus(str, enum.Enum): EMPTY = "" ACTIVE = "ACTIVE" ARCHIVED = "ARCHIVED" diff --git a/src/merge/resources/accounting/resources/contacts/types/contacts_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/contacts/types/contacts_retrieve_request_expand_item.py index dab147a1..f3879789 100644 --- a/src/merge/resources/accounting/resources/contacts/types/contacts_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/contacts/types/contacts_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContactsRetrieveRequestExpandItem(enum.StrEnum): +class ContactsRetrieveRequestExpandItem(str, enum.Enum): ADDRESSES = "addresses" COMPANY = "company" PHONE_NUMBERS = "phone_numbers" diff --git a/src/merge/resources/accounting/resources/credit_notes/__init__.py b/src/merge/resources/accounting/resources/credit_notes/__init__.py index 917b71e7..138950fc 100644 --- a/src/merge/resources/accounting/resources/credit_notes/__init__.py +++ b/src/merge/resources/accounting/resources/credit_notes/__init__.py @@ -30,10 +30,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/credit_notes/raw_client.py b/src/merge/resources/accounting/resources/credit_notes/raw_client.py index 90914546..c1711ade 100644 --- a/src/merge/resources/accounting/resources/credit_notes/raw_client.py +++ b/src/merge/resources/accounting/resources/credit_notes/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.credit_note import CreditNote @@ -23,7 +22,6 @@ from .types.credit_notes_retrieve_request_expand_item import CreditNotesRetrieveRequestExpandItem from .types.credit_notes_retrieve_request_remote_fields import CreditNotesRetrieveRequestRemoteFields from .types.credit_notes_retrieve_request_show_enum_origins import CreditNotesRetrieveRequestShowEnumOrigins -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -157,10 +155,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -221,10 +215,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -295,10 +285,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -362,10 +348,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def application_create( @@ -440,10 +422,6 @@ def application_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -482,10 +460,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -522,10 +496,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -657,10 +627,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -721,10 +687,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -795,10 +757,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -862,10 +820,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def application_create( @@ -940,10 +894,6 @@ async def application_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -982,10 +932,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1022,8 +968,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/credit_notes/types/__init__.py b/src/merge/resources/accounting/resources/credit_notes/types/__init__.py index b8c0cbb8..5072c1cc 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/__init__.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/__init__.py @@ -28,10 +28,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_expand_item.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_expand_item.py index ece50372..74046e9b 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesListRequestExpandItem(enum.StrEnum): +class CreditNotesListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_PAYMENTS = "applied_payments" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_remote_fields.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_remote_fields.py index a95f69b4..e881f032 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_remote_fields.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesListRequestRemoteFields(enum.StrEnum): +class CreditNotesListRequestRemoteFields(str, enum.Enum): STATUS = "status" STATUS_TYPE = "status,type" TYPE = "type" diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_show_enum_origins.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_show_enum_origins.py index bd8ad6cd..e2d8982c 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_show_enum_origins.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesListRequestShowEnumOrigins(enum.StrEnum): +class CreditNotesListRequestShowEnumOrigins(str, enum.Enum): STATUS = "status" STATUS_TYPE = "status,type" TYPE = "type" diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_expand_item.py index 6258e4c9..b55f5a26 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesRetrieveRequestExpandItem(enum.StrEnum): +class CreditNotesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_PAYMENTS = "applied_payments" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_remote_fields.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_remote_fields.py index 60b918d8..4c6fda3c 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_remote_fields.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesRetrieveRequestRemoteFields(enum.StrEnum): +class CreditNotesRetrieveRequestRemoteFields(str, enum.Enum): STATUS = "status" STATUS_TYPE = "status,type" TYPE = "type" diff --git a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_show_enum_origins.py b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_show_enum_origins.py index e7b832f6..108451a1 100644 --- a/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/accounting/resources/credit_notes/types/credit_notes_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNotesRetrieveRequestShowEnumOrigins(enum.StrEnum): +class CreditNotesRetrieveRequestShowEnumOrigins(str, enum.Enum): STATUS = "status" STATUS_TYPE = "status,type" TYPE = "type" diff --git a/src/merge/resources/accounting/resources/delete_account/raw_client.py b/src/merge/resources/accounting/resources/delete_account/raw_client.py index cd336eb2..5bd254b2 100644 --- a/src/merge/resources/accounting/resources/delete_account/raw_client.py +++ b/src/merge/resources/accounting/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/employees/raw_client.py b/src/merge/resources/accounting/resources/employees/raw_client.py index fa523217..a44eddcc 100644 --- a/src/merge/resources/accounting/resources/employees/raw_client.py +++ b/src/merge/resources/accounting/resources/employees/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.employee import Employee from ...types.paginated_employee_list import PaginatedEmployeeList -from pydantic import ValidationError class RawEmployeesClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/expense_reports/__init__.py b/src/merge/resources/accounting/resources/expense_reports/__init__.py index ea370cb7..c7de6440 100644 --- a/src/merge/resources/accounting/resources/expense_reports/__init__.py +++ b/src/merge/resources/accounting/resources/expense_reports/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/expense_reports/raw_client.py b/src/merge/resources/accounting/resources/expense_reports/raw_client.py index 1a94ab1a..d3376d0e 100644 --- a/src/merge/resources/accounting/resources/expense_reports/raw_client.py +++ b/src/merge/resources/accounting/resources/expense_reports/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.expense_report import ExpenseReport @@ -22,7 +21,6 @@ from .types.expense_reports_lines_list_request_expand_item import ExpenseReportsLinesListRequestExpandItem from .types.expense_reports_list_request_expand_item import ExpenseReportsListRequestExpandItem from .types.expense_reports_retrieve_request_expand_item import ExpenseReportsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -137,10 +135,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -201,10 +195,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_list( @@ -287,10 +277,6 @@ def lines_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -358,10 +344,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_remote_field_classes_list( @@ -437,10 +419,6 @@ def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -477,10 +455,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -556,10 +530,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -672,10 +642,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -736,10 +702,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_list( @@ -822,10 +784,6 @@ async def lines_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -893,10 +851,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_remote_field_classes_list( @@ -972,10 +926,6 @@ async def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1012,10 +962,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1091,8 +1037,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/expense_reports/types/__init__.py b/src/merge/resources/accounting/resources/expense_reports/types/__init__.py index b8c876d0..7b3c8498 100644 --- a/src/merge/resources/accounting/resources/expense_reports/types/__init__.py +++ b/src/merge/resources/accounting/resources/expense_reports/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_lines_list_request_expand_item.py b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_lines_list_request_expand_item.py index 3b021472..7fed7333 100644 --- a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_lines_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_lines_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ExpenseReportsLinesListRequestExpandItem(enum.StrEnum): +class ExpenseReportsLinesListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" COMPANY = "company" CONTACT = "contact" diff --git a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_list_request_expand_item.py b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_list_request_expand_item.py index 2a51b0cb..7285f28f 100644 --- a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ExpenseReportsListRequestExpandItem(enum.StrEnum): +class ExpenseReportsListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" EMPLOYEE = "employee" diff --git a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_retrieve_request_expand_item.py index 6adaefc2..7692f8d8 100644 --- a/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/expense_reports/types/expense_reports_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ExpenseReportsRetrieveRequestExpandItem(enum.StrEnum): +class ExpenseReportsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" EMPLOYEE = "employee" diff --git a/src/merge/resources/accounting/resources/expenses/__init__.py b/src/merge/resources/accounting/resources/expenses/__init__.py index 9ae9066d..50ac2fdf 100644 --- a/src/merge/resources/accounting/resources/expenses/__init__.py +++ b/src/merge/resources/accounting/resources/expenses/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/expenses/raw_client.py b/src/merge/resources/accounting/resources/expenses/raw_client.py index 926d8451..6f736c9e 100644 --- a/src/merge/resources/accounting/resources/expenses/raw_client.py +++ b/src/merge/resources/accounting/resources/expenses/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_bulk_create_response import AsyncBulkCreateResponse @@ -23,7 +22,6 @@ from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from .types.expenses_list_request_expand_item import ExpensesListRequestExpandItem from .types.expenses_retrieve_request_expand_item import ExpensesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -152,10 +150,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -216,10 +210,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -285,10 +275,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_create( @@ -337,10 +323,6 @@ def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_retrieve( @@ -379,10 +361,6 @@ def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_remote_field_classes_list( @@ -458,10 +436,6 @@ def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -498,10 +472,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -577,10 +547,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -707,10 +673,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -771,10 +733,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -840,10 +798,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_create( @@ -892,10 +846,6 @@ async def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_retrieve( @@ -934,10 +884,6 @@ async def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_remote_field_classes_list( @@ -1013,10 +959,6 @@ async def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1053,10 +995,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1132,8 +1070,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/expenses/types/__init__.py b/src/merge/resources/accounting/resources/expenses/types/__init__.py index 9d8be4d9..d1ea4608 100644 --- a/src/merge/resources/accounting/resources/expenses/types/__init__.py +++ b/src/merge/resources/accounting/resources/expenses/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/expenses/types/expenses_list_request_expand_item.py b/src/merge/resources/accounting/resources/expenses/types/expenses_list_request_expand_item.py index 71656ab6..7e3f0793 100644 --- a/src/merge/resources/accounting/resources/expenses/types/expenses_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/expenses/types/expenses_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ExpensesListRequestExpandItem(enum.StrEnum): +class ExpensesListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/expenses/types/expenses_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/expenses/types/expenses_retrieve_request_expand_item.py index 55c6ad1c..d496b015 100644 --- a/src/merge/resources/accounting/resources/expenses/types/expenses_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/expenses/types/expenses_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ExpensesRetrieveRequestExpandItem(enum.StrEnum): +class ExpensesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/field_mapping/client.py b/src/merge/resources/accounting/resources/field_mapping/client.py index c8fc66d3..ced857d9 100644 --- a/src/merge/resources/accounting/resources/field_mapping/client.py +++ b/src/merge/resources/accounting/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -94,7 +94,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -198,7 +198,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -215,7 +215,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -404,7 +404,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -425,7 +425,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -545,7 +545,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -562,7 +562,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/accounting/resources/field_mapping/raw_client.py b/src/merge/resources/accounting/resources/field_mapping/raw_client.py index 3cabc28f..b9e9d8bc 100644 --- a/src/merge/resources/accounting/resources/field_mapping/raw_client.py +++ b/src/merge/resources/accounting/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -99,7 +93,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -167,10 +161,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -209,10 +199,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -220,7 +206,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -237,7 +223,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -292,10 +278,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -346,10 +328,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -386,10 +364,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -440,10 +414,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -451,7 +421,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -472,7 +442,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -540,10 +510,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -582,10 +548,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -593,7 +555,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -610,7 +572,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -665,10 +627,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -719,10 +677,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -759,8 +713,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/force_resync/raw_client.py b/src/merge/resources/accounting/resources/force_resync/raw_client.py index 8cc8b43d..6a49df95 100644 --- a/src/merge/resources/accounting/resources/force_resync/raw_client.py +++ b/src/merge/resources/accounting/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/general_ledger_transactions/__init__.py b/src/merge/resources/accounting/resources/general_ledger_transactions/__init__.py index 8b7cf5fc..f4b8e505 100644 --- a/src/merge/resources/accounting/resources/general_ledger_transactions/__init__.py +++ b/src/merge/resources/accounting/resources/general_ledger_transactions/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/general_ledger_transactions/raw_client.py b/src/merge/resources/accounting/resources/general_ledger_transactions/raw_client.py index 13b6cfad..bdc71dda 100644 --- a/src/merge/resources/accounting/resources/general_ledger_transactions/raw_client.py +++ b/src/merge/resources/accounting/resources/general_ledger_transactions/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.general_ledger_transaction import GeneralLedgerTransaction @@ -18,7 +17,6 @@ from .types.general_ledger_transactions_retrieve_request_expand_item import ( GeneralLedgerTransactionsRetrieveRequestExpandItem, ) -from pydantic import ValidationError class RawGeneralLedgerTransactionsClient: @@ -140,10 +138,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -207,10 +201,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -333,10 +323,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -400,8 +386,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py b/src/merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py index 0e86a5df..bfb2fa70 100644 --- a/src/merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py +++ b/src/merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_list_request_expand_item.py b/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_list_request_expand_item.py index 486f3286..3ac96d8b 100644 --- a/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GeneralLedgerTransactionsListRequestExpandItem(enum.StrEnum): +class GeneralLedgerTransactionsListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" GENERAL_LEDGER_TRANSACTION_LINES = "general_ledger_transaction_lines" diff --git a/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand_item.py index 53d7da4f..78502da8 100644 --- a/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GeneralLedgerTransactionsRetrieveRequestExpandItem(enum.StrEnum): +class GeneralLedgerTransactionsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" GENERAL_LEDGER_TRANSACTION_LINES = "general_ledger_transaction_lines" diff --git a/src/merge/resources/accounting/resources/generate_key/raw_client.py b/src/merge/resources/accounting/resources/generate_key/raw_client.py index 65485928..558feb1d 100644 --- a/src/merge/resources/accounting/resources/generate_key/raw_client.py +++ b/src/merge/resources/accounting/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/income_statements/raw_client.py b/src/merge/resources/accounting/resources/income_statements/raw_client.py index 29bdd9ad..5cf0f4ad 100644 --- a/src/merge/resources/accounting/resources/income_statements/raw_client.py +++ b/src/merge/resources/accounting/resources/income_statements/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.income_statement import IncomeStatement from ...types.paginated_income_statement_list import PaginatedIncomeStatementList -from pydantic import ValidationError class RawIncomeStatementsClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/invoices/__init__.py b/src/merge/resources/accounting/resources/invoices/__init__.py index 9c861e14..e67bb781 100644 --- a/src/merge/resources/accounting/resources/invoices/__init__.py +++ b/src/merge/resources/accounting/resources/invoices/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/invoices/raw_client.py b/src/merge/resources/accounting/resources/invoices/raw_client.py index cdf5242f..12cd2649 100644 --- a/src/merge/resources/accounting/resources/invoices/raw_client.py +++ b/src/merge/resources/accounting/resources/invoices/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_bulk_create_response import AsyncBulkCreateResponse @@ -25,7 +24,6 @@ from .types.invoices_list_request_status import InvoicesListRequestStatus from .types.invoices_list_request_type import InvoicesListRequestType from .types.invoices_retrieve_request_expand_item import InvoicesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -190,10 +188,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -256,10 +250,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -335,10 +325,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -402,10 +388,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_create( @@ -454,10 +436,6 @@ def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_retrieve( @@ -496,10 +474,6 @@ def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def line_items_remote_field_classes_list( @@ -575,10 +549,6 @@ def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -617,10 +587,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -657,10 +623,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -736,10 +698,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -902,10 +860,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -968,10 +922,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -1047,10 +997,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -1114,10 +1060,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_create( @@ -1166,10 +1108,6 @@ async def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_retrieve( @@ -1208,10 +1146,6 @@ async def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def line_items_remote_field_classes_list( @@ -1287,10 +1221,6 @@ async def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -1329,10 +1259,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1369,10 +1295,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1448,8 +1370,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/invoices/types/__init__.py b/src/merge/resources/accounting/resources/invoices/types/__init__.py index d651c9da..e3497f37 100644 --- a/src/merge/resources/accounting/resources/invoices/types/__init__.py +++ b/src/merge/resources/accounting/resources/invoices/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_expand_item.py b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_expand_item.py index 42e72959..ae330277 100644 --- a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InvoicesListRequestExpandItem(enum.StrEnum): +class InvoicesListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_CREDIT_NOTES = "applied_credit_notes" APPLIED_PAYMENTS = "applied_payments" diff --git a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_status.py b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_status.py index 25a1c0c0..c4f5a109 100644 --- a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_status.py +++ b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InvoicesListRequestStatus(enum.StrEnum): +class InvoicesListRequestStatus(str, enum.Enum): DRAFT = "DRAFT" OPEN = "OPEN" PAID = "PAID" diff --git a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_type.py b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_type.py index a1e8ead2..549c7844 100644 --- a/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_type.py +++ b/src/merge/resources/accounting/resources/invoices/types/invoices_list_request_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InvoicesListRequestType(enum.StrEnum): +class InvoicesListRequestType(str, enum.Enum): ACCOUNTS_PAYABLE = "ACCOUNTS_PAYABLE" ACCOUNTS_RECEIVABLE = "ACCOUNTS_RECEIVABLE" diff --git a/src/merge/resources/accounting/resources/invoices/types/invoices_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/invoices/types/invoices_retrieve_request_expand_item.py index ca51105a..889da803 100644 --- a/src/merge/resources/accounting/resources/invoices/types/invoices_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/invoices/types/invoices_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InvoicesRetrieveRequestExpandItem(enum.StrEnum): +class InvoicesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_CREDIT_NOTES = "applied_credit_notes" APPLIED_PAYMENTS = "applied_payments" diff --git a/src/merge/resources/accounting/resources/issues/__init__.py b/src/merge/resources/accounting/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/accounting/resources/issues/__init__.py +++ b/src/merge/resources/accounting/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/issues/raw_client.py b/src/merge/resources/accounting/resources/issues/raw_client.py index c7d442b2..c1ba2017 100644 --- a/src/merge/resources/accounting/resources/issues/raw_client.py +++ b/src/merge/resources/accounting/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/issues/types/__init__.py b/src/merge/resources/accounting/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/accounting/resources/issues/types/__init__.py +++ b/src/merge/resources/accounting/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/issues/types/issues_list_request_status.py b/src/merge/resources/accounting/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/accounting/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/accounting/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/accounting/resources/item_fulfillments/__init__.py b/src/merge/resources/accounting/resources/item_fulfillments/__init__.py index beccbb1d..631d0f03 100644 --- a/src/merge/resources/accounting/resources/item_fulfillments/__init__.py +++ b/src/merge/resources/accounting/resources/item_fulfillments/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/item_fulfillments/raw_client.py b/src/merge/resources/accounting/resources/item_fulfillments/raw_client.py index c9607ea8..1bc8419f 100644 --- a/src/merge/resources/accounting/resources/item_fulfillments/raw_client.py +++ b/src/merge/resources/accounting/resources/item_fulfillments/raw_client.py @@ -7,7 +7,6 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_bulk_create_response import AsyncBulkCreateResponse @@ -21,7 +20,6 @@ from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from .types.item_fulfillments_list_request_expand_item import ItemFulfillmentsListRequestExpandItem from .types.item_fulfillments_retrieve_request_expand_item import ItemFulfillmentsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -116,10 +114,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -180,10 +174,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -261,10 +251,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_create( @@ -313,10 +299,6 @@ def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_retrieve( @@ -355,10 +337,6 @@ def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_remote_field_classes_list( @@ -434,10 +412,6 @@ def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -474,10 +448,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -553,10 +523,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -649,10 +615,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -713,10 +675,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -794,10 +752,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_create( @@ -846,10 +800,6 @@ async def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_retrieve( @@ -888,10 +838,6 @@ async def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_remote_field_classes_list( @@ -967,10 +913,6 @@ async def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1007,10 +949,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1086,8 +1024,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/item_fulfillments/types/__init__.py b/src/merge/resources/accounting/resources/item_fulfillments/types/__init__.py index 3f54c6b2..2dfa8ff7 100644 --- a/src/merge/resources/accounting/resources/item_fulfillments/types/__init__.py +++ b/src/merge/resources/accounting/resources/item_fulfillments/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_list_request_expand_item.py b/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_list_request_expand_item.py index d2c626c6..c9146ad2 100644 --- a/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFulfillmentsListRequestExpandItem(enum.StrEnum): +class ItemFulfillmentsListRequestExpandItem(str, enum.Enum): COMPANY = "company" CUSTOMER = "customer" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_retrieve_request_expand_item.py index 33422069..931d5944 100644 --- a/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/item_fulfillments/types/item_fulfillments_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFulfillmentsRetrieveRequestExpandItem(enum.StrEnum): +class ItemFulfillmentsRetrieveRequestExpandItem(str, enum.Enum): COMPANY = "company" CUSTOMER = "customer" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/items/__init__.py b/src/merge/resources/accounting/resources/items/__init__.py index bd134cd1..8a0039db 100644 --- a/src/merge/resources/accounting/resources/items/__init__.py +++ b/src/merge/resources/accounting/resources/items/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/items/raw_client.py b/src/merge/resources/accounting/resources/items/raw_client.py index 4a8d23ae..60b7108f 100644 --- a/src/merge/resources/accounting/resources/items/raw_client.py +++ b/src/merge/resources/accounting/resources/items/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.item import Item @@ -20,7 +19,6 @@ from ...types.patched_item_request_request import PatchedItemRequestRequest from .types.items_list_request_expand_item import ItemsListRequestExpandItem from .types.items_retrieve_request_expand_item import ItemsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -145,10 +143,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -209,10 +203,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -283,10 +273,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -350,10 +336,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -392,10 +374,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -432,10 +410,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -558,10 +532,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -622,10 +592,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -696,10 +662,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -763,10 +725,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -805,10 +763,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -845,8 +799,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/items/types/__init__.py b/src/merge/resources/accounting/resources/items/types/__init__.py index 8901398b..94716a6d 100644 --- a/src/merge/resources/accounting/resources/items/types/__init__.py +++ b/src/merge/resources/accounting/resources/items/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/items/types/items_list_request_expand_item.py b/src/merge/resources/accounting/resources/items/types/items_list_request_expand_item.py index b3e39ebc..2cf676c2 100644 --- a/src/merge/resources/accounting/resources/items/types/items_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/items/types/items_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ItemsListRequestExpandItem(enum.StrEnum): +class ItemsListRequestExpandItem(str, enum.Enum): COMPANY = "company" PURCHASE_ACCOUNT = "purchase_account" PURCHASE_TAX_RATE = "purchase_tax_rate" diff --git a/src/merge/resources/accounting/resources/items/types/items_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/items/types/items_retrieve_request_expand_item.py index 25a8410f..6dad67a3 100644 --- a/src/merge/resources/accounting/resources/items/types/items_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/items/types/items_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ItemsRetrieveRequestExpandItem(enum.StrEnum): +class ItemsRetrieveRequestExpandItem(str, enum.Enum): COMPANY = "company" PURCHASE_ACCOUNT = "purchase_account" PURCHASE_TAX_RATE = "purchase_tax_rate" diff --git a/src/merge/resources/accounting/resources/journal_entries/__init__.py b/src/merge/resources/accounting/resources/journal_entries/__init__.py index 3cb2c57b..abd41565 100644 --- a/src/merge/resources/accounting/resources/journal_entries/__init__.py +++ b/src/merge/resources/accounting/resources/journal_entries/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/journal_entries/raw_client.py b/src/merge/resources/accounting/resources/journal_entries/raw_client.py index 3b192b21..00bd3258 100644 --- a/src/merge/resources/accounting/resources/journal_entries/raw_client.py +++ b/src/merge/resources/accounting/resources/journal_entries/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.journal_entry import JournalEntry @@ -20,7 +19,6 @@ from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from .types.journal_entries_list_request_expand_item import JournalEntriesListRequestExpandItem from .types.journal_entries_retrieve_request_expand_item import JournalEntriesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -149,10 +147,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -213,10 +207,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -284,10 +274,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_remote_field_classes_list( @@ -363,10 +349,6 @@ def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -403,10 +385,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -482,10 +460,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -612,10 +586,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -676,10 +646,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -747,10 +713,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_remote_field_classes_list( @@ -826,10 +788,6 @@ async def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -866,10 +824,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -945,8 +899,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/journal_entries/types/__init__.py b/src/merge/resources/accounting/resources/journal_entries/types/__init__.py index 929919c5..d080468c 100644 --- a/src/merge/resources/accounting/resources/journal_entries/types/__init__.py +++ b/src/merge/resources/accounting/resources/journal_entries/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_list_request_expand_item.py b/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_list_request_expand_item.py index 318b9176..b7942027 100644 --- a/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JournalEntriesListRequestExpandItem(enum.StrEnum): +class JournalEntriesListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_PAYMENTS = "applied_payments" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_retrieve_request_expand_item.py index bde1d4b2..d0d1f3ee 100644 --- a/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/journal_entries/types/journal_entries_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JournalEntriesRetrieveRequestExpandItem(enum.StrEnum): +class JournalEntriesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" APPLIED_PAYMENTS = "applied_payments" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/link_token/__init__.py b/src/merge/resources/accounting/resources/link_token/__init__.py index 834918c1..be8c3839 100644 --- a/src/merge/resources/accounting/resources/link_token/__init__.py +++ b/src/merge/resources/accounting/resources/link_token/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/link_token/client.py b/src/merge/resources/accounting/resources/link_token/client.py index 754c89be..9dea0c22 100644 --- a/src/merge/resources/accounting/resources/link_token/client.py +++ b/src/merge/resources/accounting/resources/link_token/client.py @@ -50,7 +50,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -100,7 +100,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -192,7 +192,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -242,7 +242,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] diff --git a/src/merge/resources/accounting/resources/link_token/raw_client.py b/src/merge/resources/accounting/resources/link_token/raw_client.py index fd8f1a33..89324aa9 100644 --- a/src/merge/resources/accounting/resources/link_token/raw_client.py +++ b/src/merge/resources/accounting/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -17,7 +16,6 @@ EndUserDetailsRequestCompletedAccountInitialScreen, ) from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -44,7 +42,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -94,7 +92,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -156,10 +154,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -184,7 +178,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -234,7 +228,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -296,8 +290,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/link_token/types/__init__.py b/src/merge/resources/accounting/resources/link_token/types/__init__.py index 1846dfb1..55cc1d4e 100644 --- a/src/merge/resources/accounting/resources/link_token/types/__init__.py +++ b/src/merge/resources/accounting/resources/link_token/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/linked_accounts/__init__.py b/src/merge/resources/accounting/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/accounting/resources/linked_accounts/__init__.py +++ b/src/merge/resources/accounting/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/linked_accounts/raw_client.py b/src/merge/resources/accounting/resources/linked_accounts/raw_client.py index 4a5d61cd..e4c24854 100644 --- a/src/merge/resources/accounting/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/accounting/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -132,10 +130,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -257,8 +251,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/linked_accounts/types/__init__.py b/src/merge/resources/accounting/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/accounting/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/accounting/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/accounting/resources/linked_accounts/types/linked_accounts_list_request_category.py index c5e76b51..072b2329 100644 --- a/src/merge/resources/accounting/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/accounting/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CHAT = "chat" diff --git a/src/merge/resources/accounting/resources/passthrough/raw_client.py b/src/merge/resources/accounting/resources/passthrough/raw_client.py index bd5b77d7..f02bb1a3 100644 --- a/src/merge/resources/accounting/resources/passthrough/raw_client.py +++ b/src/merge/resources/accounting/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/payment_methods/raw_client.py b/src/merge/resources/accounting/resources/payment_methods/raw_client.py index c28b6b50..38fab3d6 100644 --- a/src/merge/resources/accounting/resources/payment_methods/raw_client.py +++ b/src/merge/resources/accounting/resources/payment_methods/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_payment_method_list import PaginatedPaymentMethodList from ...types.payment_method import PaymentMethod -from pydantic import ValidationError class RawPaymentMethodsClient: @@ -82,10 +80,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -139,10 +133,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -213,10 +203,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -270,8 +256,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/payment_terms/raw_client.py b/src/merge/resources/accounting/resources/payment_terms/raw_client.py index 52144911..50d73ce5 100644 --- a/src/merge/resources/accounting/resources/payment_terms/raw_client.py +++ b/src/merge/resources/accounting/resources/payment_terms/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_payment_term_list import PaginatedPaymentTermList from ...types.payment_term import PaymentTerm -from pydantic import ValidationError class RawPaymentTermsClient: @@ -89,10 +87,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -153,10 +147,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -234,10 +224,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -298,8 +284,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/payments/__init__.py b/src/merge/resources/accounting/resources/payments/__init__.py index 281e5e2d..5b899f5a 100644 --- a/src/merge/resources/accounting/resources/payments/__init__.py +++ b/src/merge/resources/accounting/resources/payments/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/payments/raw_client.py b/src/merge/resources/accounting/resources/payments/raw_client.py index 502dfe04..eee38860 100644 --- a/src/merge/resources/accounting/resources/payments/raw_client.py +++ b/src/merge/resources/accounting/resources/payments/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -21,7 +20,6 @@ from ...types.payment_response import PaymentResponse from .types.payments_list_request_expand_item import PaymentsListRequestExpandItem from .types.payments_retrieve_request_expand_item import PaymentsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -160,10 +158,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -224,10 +218,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -293,10 +283,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -360,10 +346,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def line_items_remote_field_classes_list( @@ -439,10 +421,6 @@ def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -481,10 +459,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -521,10 +495,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -600,10 +570,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -740,10 +706,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -804,10 +766,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -873,10 +831,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -940,10 +894,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def line_items_remote_field_classes_list( @@ -1019,10 +969,6 @@ async def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -1061,10 +1007,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1101,10 +1043,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1180,8 +1118,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/payments/types/__init__.py b/src/merge/resources/accounting/resources/payments/types/__init__.py index f0fb47a2..42fedbc5 100644 --- a/src/merge/resources/accounting/resources/payments/types/__init__.py +++ b/src/merge/resources/accounting/resources/payments/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/payments/types/payments_list_request_expand_item.py b/src/merge/resources/accounting/resources/payments/types/payments_list_request_expand_item.py index 6411162d..6ae2b539 100644 --- a/src/merge/resources/accounting/resources/payments/types/payments_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/payments/types/payments_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PaymentsListRequestExpandItem(enum.StrEnum): +class PaymentsListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" APPLIED_TO_LINES = "applied_to_lines" diff --git a/src/merge/resources/accounting/resources/payments/types/payments_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/payments/types/payments_retrieve_request_expand_item.py index 28f65680..037761ae 100644 --- a/src/merge/resources/accounting/resources/payments/types/payments_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/payments/types/payments_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PaymentsRetrieveRequestExpandItem(enum.StrEnum): +class PaymentsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" APPLIED_TO_LINES = "applied_to_lines" diff --git a/src/merge/resources/accounting/resources/phone_numbers/raw_client.py b/src/merge/resources/accounting/resources/phone_numbers/raw_client.py index f5452b04..923613ee 100644 --- a/src/merge/resources/accounting/resources/phone_numbers/raw_client.py +++ b/src/merge/resources/accounting/resources/phone_numbers/raw_client.py @@ -7,11 +7,9 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.accounting_phone_number import AccountingPhoneNumber -from pydantic import ValidationError class RawPhoneNumbersClient: @@ -69,10 +67,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -131,8 +125,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/projects/__init__.py b/src/merge/resources/accounting/resources/projects/__init__.py index c7ddedad..c27a4ad7 100644 --- a/src/merge/resources/accounting/resources/projects/__init__.py +++ b/src/merge/resources/accounting/resources/projects/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/projects/raw_client.py b/src/merge/resources/accounting/resources/projects/raw_client.py index 7d986f2a..8b3b587d 100644 --- a/src/merge/resources/accounting/resources/projects/raw_client.py +++ b/src/merge/resources/accounting/resources/projects/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_project_list import PaginatedProjectList from ...types.project import Project from .types.projects_list_request_expand_item import ProjectsListRequestExpandItem from .types.projects_retrieve_request_expand_item import ProjectsRetrieveRequestExpandItem -from pydantic import ValidationError class RawProjectsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -192,10 +186,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -308,10 +298,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -372,8 +358,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/projects/types/__init__.py b/src/merge/resources/accounting/resources/projects/types/__init__.py index 6d5fe8bc..857d709c 100644 --- a/src/merge/resources/accounting/resources/projects/types/__init__.py +++ b/src/merge/resources/accounting/resources/projects/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/projects/types/projects_list_request_expand_item.py b/src/merge/resources/accounting/resources/projects/types/projects_list_request_expand_item.py index 3c927978..0a06a67b 100644 --- a/src/merge/resources/accounting/resources/projects/types/projects_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/projects/types/projects_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ProjectsListRequestExpandItem(enum.StrEnum): +class ProjectsListRequestExpandItem(str, enum.Enum): COMPANY = "company" CONTACT = "contact" diff --git a/src/merge/resources/accounting/resources/projects/types/projects_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/projects/types/projects_retrieve_request_expand_item.py index 82397166..14927ee8 100644 --- a/src/merge/resources/accounting/resources/projects/types/projects_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/projects/types/projects_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ProjectsRetrieveRequestExpandItem(enum.StrEnum): +class ProjectsRetrieveRequestExpandItem(str, enum.Enum): COMPANY = "company" CONTACT = "contact" diff --git a/src/merge/resources/accounting/resources/purchase_orders/__init__.py b/src/merge/resources/accounting/resources/purchase_orders/__init__.py index f0f0b74d..3e7388a6 100644 --- a/src/merge/resources/accounting/resources/purchase_orders/__init__.py +++ b/src/merge/resources/accounting/resources/purchase_orders/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/purchase_orders/raw_client.py b/src/merge/resources/accounting/resources/purchase_orders/raw_client.py index 74cd1e9b..b23c921a 100644 --- a/src/merge/resources/accounting/resources/purchase_orders/raw_client.py +++ b/src/merge/resources/accounting/resources/purchase_orders/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -20,7 +19,6 @@ from ...types.purchase_order_response import PurchaseOrderResponse from .types.purchase_orders_list_request_expand_item import PurchaseOrdersListRequestExpandItem from .types.purchase_orders_retrieve_request_expand_item import PurchaseOrdersRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -155,10 +153,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -219,10 +213,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -300,10 +290,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def line_items_remote_field_classes_list( @@ -379,10 +365,6 @@ def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -419,10 +401,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -498,10 +476,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -634,10 +608,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -698,10 +668,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -779,10 +745,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def line_items_remote_field_classes_list( @@ -858,10 +820,6 @@ async def line_items_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -898,10 +856,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -977,8 +931,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/purchase_orders/types/__init__.py b/src/merge/resources/accounting/resources/purchase_orders/types/__init__.py index 8853863e..8823e821 100644 --- a/src/merge/resources/accounting/resources/purchase_orders/types/__init__.py +++ b/src/merge/resources/accounting/resources/purchase_orders/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_list_request_expand_item.py b/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_list_request_expand_item.py index 61eaef78..55354de8 100644 --- a/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PurchaseOrdersListRequestExpandItem(enum.StrEnum): +class PurchaseOrdersListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" DELIVERY_ADDRESS = "delivery_address" diff --git a/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_retrieve_request_expand_item.py index 8d784e78..775024d1 100644 --- a/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/purchase_orders/types/purchase_orders_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PurchaseOrdersRetrieveRequestExpandItem(enum.StrEnum): +class PurchaseOrdersRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" DELIVERY_ADDRESS = "delivery_address" diff --git a/src/merge/resources/accounting/resources/regenerate_key/raw_client.py b/src/merge/resources/accounting/resources/regenerate_key/raw_client.py index 7382ee47..d27d2b33 100644 --- a/src/merge/resources/accounting/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/accounting/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/sales_orders/__init__.py b/src/merge/resources/accounting/resources/sales_orders/__init__.py index 2d85b8a2..df0064de 100644 --- a/src/merge/resources/accounting/resources/sales_orders/__init__.py +++ b/src/merge/resources/accounting/resources/sales_orders/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/sales_orders/raw_client.py b/src/merge/resources/accounting/resources/sales_orders/raw_client.py index 7688aa77..8ad90f1d 100644 --- a/src/merge/resources/accounting/resources/sales_orders/raw_client.py +++ b/src/merge/resources/accounting/resources/sales_orders/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_bulk_create_response import AsyncBulkCreateResponse @@ -23,7 +22,6 @@ from ...types.sales_order_response import SalesOrderResponse from .types.sales_orders_list_request_expand_item import SalesOrdersListRequestExpandItem from .types.sales_orders_retrieve_request_expand_item import SalesOrdersRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -158,10 +156,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -222,10 +216,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -301,10 +291,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_create( @@ -353,10 +339,6 @@ def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def bulk_retrieve( @@ -395,10 +377,6 @@ def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def lines_remote_field_classes_list( @@ -474,10 +452,6 @@ def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -514,10 +488,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -593,10 +563,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -729,10 +695,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -793,10 +755,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -872,10 +830,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_create( @@ -924,10 +878,6 @@ async def bulk_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def bulk_retrieve( @@ -966,10 +916,6 @@ async def bulk_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def lines_remote_field_classes_list( @@ -1045,10 +991,6 @@ async def lines_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1085,10 +1027,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1164,8 +1102,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/sales_orders/types/__init__.py b/src/merge/resources/accounting/resources/sales_orders/types/__init__.py index f66e71b8..83e44bd6 100644 --- a/src/merge/resources/accounting/resources/sales_orders/types/__init__.py +++ b/src/merge/resources/accounting/resources/sales_orders/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_list_request_expand_item.py b/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_list_request_expand_item.py index 693a5c91..004b1d89 100644 --- a/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class SalesOrdersListRequestExpandItem(enum.StrEnum): +class SalesOrdersListRequestExpandItem(str, enum.Enum): COMPANY = "company" CUSTOMER = "customer" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_retrieve_request_expand_item.py index 8e198f08..0a998b96 100644 --- a/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/sales_orders/types/sales_orders_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class SalesOrdersRetrieveRequestExpandItem(enum.StrEnum): +class SalesOrdersRetrieveRequestExpandItem(str, enum.Enum): COMPANY = "company" CUSTOMER = "customer" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/scopes/raw_client.py b/src/merge/resources/accounting/resources/scopes/raw_client.py index e5a77cd2..1987e457 100644 --- a/src/merge/resources/accounting/resources/scopes/raw_client.py +++ b/src/merge/resources/accounting/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/sync_status/raw_client.py b/src/merge/resources/accounting/resources/sync_status/raw_client.py index 0e4e215c..89fbd854 100644 --- a/src/merge/resources/accounting/resources/sync_status/raw_client.py +++ b/src/merge/resources/accounting/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/tax_rates/raw_client.py b/src/merge/resources/accounting/resources/tax_rates/raw_client.py index 19267a7c..cc2592ef 100644 --- a/src/merge/resources/accounting/resources/tax_rates/raw_client.py +++ b/src/merge/resources/accounting/resources/tax_rates/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_tax_rate_list import PaginatedTaxRateList from ...types.tax_rate import TaxRate -from pydantic import ValidationError class RawTaxRatesClient: @@ -126,10 +124,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -190,10 +184,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -306,10 +296,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -370,8 +356,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/tracking_categories/__init__.py b/src/merge/resources/accounting/resources/tracking_categories/__init__.py index ee463e8f..6f5cbc5a 100644 --- a/src/merge/resources/accounting/resources/tracking_categories/__init__.py +++ b/src/merge/resources/accounting/resources/tracking_categories/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/tracking_categories/raw_client.py b/src/merge/resources/accounting/resources/tracking_categories/raw_client.py index adc86a03..9af9e4b4 100644 --- a/src/merge/resources/accounting/resources/tracking_categories/raw_client.py +++ b/src/merge/resources/accounting/resources/tracking_categories/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_tracking_category_list import PaginatedTrackingCategoryList from ...types.tracking_category import TrackingCategory from .types.tracking_categories_list_request_category_type import TrackingCategoriesListRequestCategoryType from .types.tracking_categories_list_request_status import TrackingCategoriesListRequestStatus -from pydantic import ValidationError class RawTrackingCategoriesClient: @@ -148,10 +146,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -222,10 +216,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -358,10 +348,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -432,8 +418,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/tracking_categories/types/__init__.py b/src/merge/resources/accounting/resources/tracking_categories/types/__init__.py index 9b52a164..702a54d3 100644 --- a/src/merge/resources/accounting/resources/tracking_categories/types/__init__.py +++ b/src/merge/resources/accounting/resources/tracking_categories/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_category_type.py b/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_category_type.py index 9ca9b320..92354377 100644 --- a/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_category_type.py +++ b/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_category_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TrackingCategoriesListRequestCategoryType(enum.StrEnum): +class TrackingCategoriesListRequestCategoryType(str, enum.Enum): EMPTY = "" CLASS = "CLASS" DEPARTMENT = "DEPARTMENT" diff --git a/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_status.py b/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_status.py index ccf4d2cb..3f8a0cc3 100644 --- a/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_status.py +++ b/src/merge/resources/accounting/resources/tracking_categories/types/tracking_categories_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TrackingCategoriesListRequestStatus(enum.StrEnum): +class TrackingCategoriesListRequestStatus(str, enum.Enum): EMPTY = "" ACTIVE = "ACTIVE" ARCHIVED = "ARCHIVED" diff --git a/src/merge/resources/accounting/resources/transactions/__init__.py b/src/merge/resources/accounting/resources/transactions/__init__.py index 3697bbc7..48ced57c 100644 --- a/src/merge/resources/accounting/resources/transactions/__init__.py +++ b/src/merge/resources/accounting/resources/transactions/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/transactions/raw_client.py b/src/merge/resources/accounting/resources/transactions/raw_client.py index fbbc193c..ba17ce21 100644 --- a/src/merge/resources/accounting/resources/transactions/raw_client.py +++ b/src/merge/resources/accounting/resources/transactions/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_transaction_list import PaginatedTransactionList from ...types.transaction import Transaction from .types.transactions_list_request_expand_item import TransactionsListRequestExpandItem from .types.transactions_retrieve_request_expand_item import TransactionsRetrieveRequestExpandItem -from pydantic import ValidationError class RawTransactionsClient: @@ -137,10 +135,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -201,10 +195,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -326,10 +316,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -390,8 +376,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/transactions/types/__init__.py b/src/merge/resources/accounting/resources/transactions/types/__init__.py index 147d4384..67bb4db7 100644 --- a/src/merge/resources/accounting/resources/transactions/types/__init__.py +++ b/src/merge/resources/accounting/resources/transactions/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/transactions/types/transactions_list_request_expand_item.py b/src/merge/resources/accounting/resources/transactions/types/transactions_list_request_expand_item.py index 3925ee3c..9d90be89 100644 --- a/src/merge/resources/accounting/resources/transactions/types/transactions_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/transactions/types/transactions_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TransactionsListRequestExpandItem(enum.StrEnum): +class TransactionsListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/transactions/types/transactions_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/transactions/types/transactions_retrieve_request_expand_item.py index f5e804c6..6d7d402f 100644 --- a/src/merge/resources/accounting/resources/transactions/types/transactions_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/transactions/types/transactions_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TransactionsRetrieveRequestExpandItem(enum.StrEnum): +class TransactionsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" diff --git a/src/merge/resources/accounting/resources/vendor_credits/__init__.py b/src/merge/resources/accounting/resources/vendor_credits/__init__.py index 828f5681..eaf4507e 100644 --- a/src/merge/resources/accounting/resources/vendor_credits/__init__.py +++ b/src/merge/resources/accounting/resources/vendor_credits/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/vendor_credits/raw_client.py b/src/merge/resources/accounting/resources/vendor_credits/raw_client.py index 8f8082c4..031f7fb3 100644 --- a/src/merge/resources/accounting/resources/vendor_credits/raw_client.py +++ b/src/merge/resources/accounting/resources/vendor_credits/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -20,7 +19,6 @@ from ...types.vendor_credit_response import VendorCreditResponse from .types.vendor_credits_list_request_expand_item import VendorCreditsListRequestExpandItem from .types.vendor_credits_retrieve_request_expand_item import VendorCreditsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -144,10 +142,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -208,10 +202,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -274,10 +264,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -341,10 +327,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def application_create( @@ -419,10 +401,6 @@ def application_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -461,10 +439,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -501,10 +475,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -626,10 +596,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -690,10 +656,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -756,10 +718,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -823,10 +781,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def application_create( @@ -901,10 +855,6 @@ async def application_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -943,10 +893,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -983,8 +929,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/resources/vendor_credits/types/__init__.py b/src/merge/resources/accounting/resources/vendor_credits/types/__init__.py index ab4fcefe..d880c0fb 100644 --- a/src/merge/resources/accounting/resources/vendor_credits/types/__init__.py +++ b/src/merge/resources/accounting/resources/vendor_credits/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_list_request_expand_item.py b/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_list_request_expand_item.py index f47d9d0b..f13f5f69 100644 --- a/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_list_request_expand_item.py +++ b/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class VendorCreditsListRequestExpandItem(enum.StrEnum): +class VendorCreditsListRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_retrieve_request_expand_item.py b/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_retrieve_request_expand_item.py index bdadc551..ecc39a29 100644 --- a/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_retrieve_request_expand_item.py +++ b/src/merge/resources/accounting/resources/vendor_credits/types/vendor_credits_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class VendorCreditsRetrieveRequestExpandItem(enum.StrEnum): +class VendorCreditsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" LINES = "lines" diff --git a/src/merge/resources/accounting/resources/webhook_receivers/raw_client.py b/src/merge/resources/accounting/resources/webhook_receivers/raw_client.py index f085d580..4501e01a 100644 --- a/src/merge/resources/accounting/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/accounting/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/accounting/types/__init__.py b/src/merge/resources/accounting/types/__init__.py index e13bb37f..d5ac4db7 100644 --- a/src/merge/resources/accounting/types/__init__.py +++ b/src/merge/resources/accounting/types/__init__.py @@ -586,7 +586,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .tax_component import TaxComponent from .tax_component_component_type import TaxComponentComponentType from .tax_rate import TaxRate @@ -1215,7 +1217,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "TaxComponent": ".tax_component", "TaxComponentComponentType": ".tax_component_component_type", "TaxRate": ".tax_rate", @@ -1280,10 +1284,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -1866,7 +1868,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TaxComponent", "TaxComponentComponentType", "TaxRate", diff --git a/src/merge/resources/accounting/types/account.py b/src/merge/resources/accounting/types/account.py index 49d9ad8e..938cd441 100644 --- a/src/merge/resources/accounting/types/account.py +++ b/src/merge/resources/accounting/types/account.py @@ -443,7 +443,7 @@ class Account(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/account_account_type_enum.py b/src/merge/resources/accounting/types/account_account_type_enum.py index e578a428..8a020c01 100644 --- a/src/merge/resources/accounting/types/account_account_type_enum.py +++ b/src/merge/resources/accounting/types/account_account_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountAccountTypeEnum(enum.StrEnum): +class AccountAccountTypeEnum(str, enum.Enum): """ * `BANK` - BANK * `CREDIT_CARD` - CREDIT_CARD diff --git a/src/merge/resources/accounting/types/account_details_and_actions.py b/src/merge/resources/accounting/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/accounting/types/account_details_and_actions.py +++ b/src/merge/resources/accounting/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/account_details_and_actions_status_enum.py b/src/merge/resources/accounting/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/accounting/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/accounting/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/accounting/types/account_integration.py b/src/merge/resources/accounting/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/accounting/types/account_integration.py +++ b/src/merge/resources/accounting/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/accounting/types/account_request.py b/src/merge/resources/accounting/types/account_request.py index 3c936635..35be1e07 100644 --- a/src/merge/resources/accounting/types/account_request.py +++ b/src/merge/resources/accounting/types/account_request.py @@ -420,8 +420,8 @@ class AccountRequest(UncheckedBaseModel): The company the account belongs to. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/account_status_enum.py b/src/merge/resources/accounting/types/account_status_enum.py index faa30545..f95c253b 100644 --- a/src/merge/resources/accounting/types/account_status_enum.py +++ b/src/merge/resources/accounting/types/account_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountStatusEnum(enum.StrEnum): +class AccountStatusEnum(str, enum.Enum): """ * `ACTIVE` - ACTIVE * `PENDING` - PENDING diff --git a/src/merge/resources/accounting/types/accounting_attachment.py b/src/merge/resources/accounting/types/accounting_attachment.py index ae341bcc..c7076640 100644 --- a/src/merge/resources/accounting/types/accounting_attachment.py +++ b/src/merge/resources/accounting/types/accounting_attachment.py @@ -55,7 +55,7 @@ class AccountingAttachment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/accounting_attachment_request.py b/src/merge/resources/accounting/types/accounting_attachment_request.py index 1d095f72..a846f08a 100644 --- a/src/merge/resources/accounting/types/accounting_attachment_request.py +++ b/src/merge/resources/accounting/types/accounting_attachment_request.py @@ -32,8 +32,8 @@ class AccountingAttachmentRequest(UncheckedBaseModel): The company the accounting attachment belongs to. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/accounting_period.py b/src/merge/resources/accounting/types/accounting_period.py index fa689378..8bba15b0 100644 --- a/src/merge/resources/accounting/types/accounting_period.py +++ b/src/merge/resources/accounting/types/accounting_period.py @@ -57,7 +57,7 @@ class AccountingPeriod(UncheckedBaseModel): End date of the period """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/accounting_phone_number_request.py b/src/merge/resources/accounting/types/accounting_phone_number_request.py index a2758beb..1bb6e597 100644 --- a/src/merge/resources/accounting/types/accounting_phone_number_request.py +++ b/src/merge/resources/accounting/types/accounting_phone_number_request.py @@ -27,8 +27,8 @@ class AccountingPhoneNumberRequest(UncheckedBaseModel): The phone number's type. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/address.py b/src/merge/resources/accounting/types/address.py index f5bfaa43..196a516f 100644 --- a/src/merge/resources/accounting/types/address.py +++ b/src/merge/resources/accounting/types/address.py @@ -53,7 +53,7 @@ class Address(UncheckedBaseModel): The address's city. """ - state: typing.Optional[typing.Any] = pydantic.Field(default=None) + state: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The address's state or region. """ diff --git a/src/merge/resources/accounting/types/address_request.py b/src/merge/resources/accounting/types/address_request.py index 1dfc552f..a7545759 100644 --- a/src/merge/resources/accounting/types/address_request.py +++ b/src/merge/resources/accounting/types/address_request.py @@ -307,8 +307,8 @@ class AddressRequest(UncheckedBaseModel): The address's zip code. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/address_type_enum.py b/src/merge/resources/accounting/types/address_type_enum.py index 397f768d..69be620b 100644 --- a/src/merge/resources/accounting/types/address_type_enum.py +++ b/src/merge/resources/accounting/types/address_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AddressTypeEnum(enum.StrEnum): +class AddressTypeEnum(str, enum.Enum): """ * `BILLING` - BILLING * `SHIPPING` - SHIPPING diff --git a/src/merge/resources/accounting/types/advanced_metadata.py b/src/merge/resources/accounting/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/accounting/types/advanced_metadata.py +++ b/src/merge/resources/accounting/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/async_post_task_result.py b/src/merge/resources/accounting/types/async_post_task_result.py index bece6643..3cd4ef00 100644 --- a/src/merge/resources/accounting/types/async_post_task_result.py +++ b/src/merge/resources/accounting/types/async_post_task_result.py @@ -9,7 +9,7 @@ class AsyncPostTaskResult(UncheckedBaseModel): status_code: typing.Optional[int] = None - response: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/async_post_task_status_enum.py b/src/merge/resources/accounting/types/async_post_task_status_enum.py index 3b35e3c3..e80df1b4 100644 --- a/src/merge/resources/accounting/types/async_post_task_status_enum.py +++ b/src/merge/resources/accounting/types/async_post_task_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AsyncPostTaskStatusEnum(enum.StrEnum): +class AsyncPostTaskStatusEnum(str, enum.Enum): """ * `QUEUED` - QUEUED * `IN_PROGRESS` - IN_PROGRESS diff --git a/src/merge/resources/accounting/types/balance_sheet.py b/src/merge/resources/accounting/types/balance_sheet.py index 47d38202..f882760e 100644 --- a/src/merge/resources/accounting/types/balance_sheet.py +++ b/src/merge/resources/accounting/types/balance_sheet.py @@ -383,7 +383,7 @@ class BalanceSheet(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/bank_feed_account.py b/src/merge/resources/accounting/types/bank_feed_account.py index b4c6ec68..9e7c035c 100644 --- a/src/merge/resources/accounting/types/bank_feed_account.py +++ b/src/merge/resources/accounting/types/bank_feed_account.py @@ -411,7 +411,7 @@ class BankFeedAccount(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/bank_feed_account_account_type_enum.py b/src/merge/resources/accounting/types/bank_feed_account_account_type_enum.py index b9135603..4ec29afb 100644 --- a/src/merge/resources/accounting/types/bank_feed_account_account_type_enum.py +++ b/src/merge/resources/accounting/types/bank_feed_account_account_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class BankFeedAccountAccountTypeEnum(enum.StrEnum): +class BankFeedAccountAccountTypeEnum(str, enum.Enum): """ * `BANK` - BANK * `CREDIT_CARD` - CREDIT_CARD diff --git a/src/merge/resources/accounting/types/bank_feed_account_request.py b/src/merge/resources/accounting/types/bank_feed_account_request.py index 65562bde..3f298bcb 100644 --- a/src/merge/resources/accounting/types/bank_feed_account_request.py +++ b/src/merge/resources/accounting/types/bank_feed_account_request.py @@ -389,8 +389,8 @@ class BankFeedAccountRequest(UncheckedBaseModel): * `CREDIT_CARD` - CREDIT_CARD """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/bank_feed_transaction_request_request.py b/src/merge/resources/accounting/types/bank_feed_transaction_request_request.py index bb2d8775..f5f9e482 100644 --- a/src/merge/resources/accounting/types/bank_feed_transaction_request_request.py +++ b/src/merge/resources/accounting/types/bank_feed_transaction_request_request.py @@ -68,8 +68,8 @@ class BankFeedTransactionRequestRequest(UncheckedBaseModel): The customer’s identifier for the transaction. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/batch_object_status_enum.py b/src/merge/resources/accounting/types/batch_object_status_enum.py index 82fa0c65..57b5ca85 100644 --- a/src/merge/resources/accounting/types/batch_object_status_enum.py +++ b/src/merge/resources/accounting/types/batch_object_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class BatchObjectStatusEnum(enum.StrEnum): +class BatchObjectStatusEnum(str, enum.Enum): """ * `PENDING` - This object has not been processed yet * `SUCCESS` - This object was successfully POSTed diff --git a/src/merge/resources/accounting/types/batch_objects_response_status_enum.py b/src/merge/resources/accounting/types/batch_objects_response_status_enum.py index c208b4f4..b6b2cdad 100644 --- a/src/merge/resources/accounting/types/batch_objects_response_status_enum.py +++ b/src/merge/resources/accounting/types/batch_objects_response_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class BatchObjectsResponseStatusEnum(enum.StrEnum): +class BatchObjectsResponseStatusEnum(str, enum.Enum): """ * `ENQUEUED` - The request has been received and a task has been enqueued for processing * `IN_PROGRESS` - The enqueued task is being processed diff --git a/src/merge/resources/accounting/types/cash_flow_statement.py b/src/merge/resources/accounting/types/cash_flow_statement.py index 024b5bad..ef460a0e 100644 --- a/src/merge/resources/accounting/types/cash_flow_statement.py +++ b/src/merge/resources/accounting/types/cash_flow_statement.py @@ -393,7 +393,7 @@ class CashFlowStatement(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/categories_enum.py b/src/merge/resources/accounting/types/categories_enum.py index b103c12e..da1e0dc0 100644 --- a/src/merge/resources/accounting/types/categories_enum.py +++ b/src/merge/resources/accounting/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/accounting/types/category_enum.py b/src/merge/resources/accounting/types/category_enum.py index 056087ae..1d7cd2c0 100644 --- a/src/merge/resources/accounting/types/category_enum.py +++ b/src/merge/resources/accounting/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/accounting/types/category_type_enum.py b/src/merge/resources/accounting/types/category_type_enum.py index 9bab1b7f..3f03c333 100644 --- a/src/merge/resources/accounting/types/category_type_enum.py +++ b/src/merge/resources/accounting/types/category_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryTypeEnum(enum.StrEnum): +class CategoryTypeEnum(str, enum.Enum): """ * `CLASS` - CLASS * `DEPARTMENT` - DEPARTMENT diff --git a/src/merge/resources/accounting/types/classification_enum.py b/src/merge/resources/accounting/types/classification_enum.py index 931300f5..3f2ed1f6 100644 --- a/src/merge/resources/accounting/types/classification_enum.py +++ b/src/merge/resources/accounting/types/classification_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ClassificationEnum(enum.StrEnum): +class ClassificationEnum(str, enum.Enum): """ * `ASSET` - ASSET * `EQUITY` - EQUITY diff --git a/src/merge/resources/accounting/types/company_info.py b/src/merge/resources/accounting/types/company_info.py index 3ade2459..fea08c22 100644 --- a/src/merge/resources/accounting/types/company_info.py +++ b/src/merge/resources/accounting/types/company_info.py @@ -397,7 +397,7 @@ class CompanyInfo(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/completed_account_initial_screen_enum.py b/src/merge/resources/accounting/types/completed_account_initial_screen_enum.py index 960da271..c112dfd1 100644 --- a/src/merge/resources/accounting/types/completed_account_initial_screen_enum.py +++ b/src/merge/resources/accounting/types/completed_account_initial_screen_enum.py @@ -3,6 +3,3 @@ import typing CompletedAccountInitialScreenEnum = typing.Literal["SELECTIVE_SYNC"] -""" -* `SELECTIVE_SYNC` - SELECTIVE_SYNC -""" diff --git a/src/merge/resources/accounting/types/component_type_enum.py b/src/merge/resources/accounting/types/component_type_enum.py index 839aae55..41b616c0 100644 --- a/src/merge/resources/accounting/types/component_type_enum.py +++ b/src/merge/resources/accounting/types/component_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ComponentTypeEnum(enum.StrEnum): +class ComponentTypeEnum(str, enum.Enum): """ * `SALES` - SALES * `PURCHASE` - PURCHASE diff --git a/src/merge/resources/accounting/types/contact.py b/src/merge/resources/accounting/types/contact.py index 0e2aba37..da851755 100644 --- a/src/merge/resources/accounting/types/contact.py +++ b/src/merge/resources/accounting/types/contact.py @@ -110,7 +110,7 @@ class Contact(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/contact_request.py b/src/merge/resources/accounting/types/contact_request.py index 57f75ec7..979e04c7 100644 --- a/src/merge/resources/accounting/types/contact_request.py +++ b/src/merge/resources/accounting/types/contact_request.py @@ -82,8 +82,8 @@ class ContactRequest(UncheckedBaseModel): `AccountingPhoneNumber` object for the given `Contacts` object. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/country_enum.py b/src/merge/resources/accounting/types/country_enum.py index f2dd1f87..a631e320 100644 --- a/src/merge/resources/accounting/types/country_enum.py +++ b/src/merge/resources/accounting/types/country_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CountryEnum(enum.StrEnum): +class CountryEnum(str, enum.Enum): """ * `AF` - Afghanistan * `AX` - Åland Islands diff --git a/src/merge/resources/accounting/types/credit_note.py b/src/merge/resources/accounting/types/credit_note.py index abb63101..6211e1f3 100644 --- a/src/merge/resources/accounting/types/credit_note.py +++ b/src/merge/resources/accounting/types/credit_note.py @@ -451,7 +451,7 @@ class CreditNote(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -464,31 +464,11 @@ class Config: extra = pydantic.Extra.allow -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(CreditNote) diff --git a/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note.py b/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note.py index 9f4b0729..643aa3cd 100644 --- a/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note.py +++ b/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note.py @@ -61,31 +61,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - CreditNoteApplyLineForCreditNote, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, F401, I001 + +update_forward_refs(CreditNoteApplyLineForCreditNote) diff --git a/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note_request.py b/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note_request.py index c1265fb1..0256e246 100644 --- a/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note_request.py +++ b/src/merge/resources/accounting/types/credit_note_apply_line_for_credit_note_request.py @@ -37,8 +37,8 @@ class CreditNoteApplyLineForCreditNoteRequest(UncheckedBaseModel): The amount of the Credit Note applied to the invoice. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -50,4 +50,12 @@ class Config: extra = pydantic.Extra.allow +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + update_forward_refs(CreditNoteApplyLineForCreditNoteRequest) diff --git a/src/merge/resources/accounting/types/credit_note_apply_line_for_invoice.py b/src/merge/resources/accounting/types/credit_note_apply_line_for_invoice.py index 1cd025c5..f56415f9 100644 --- a/src/merge/resources/accounting/types/credit_note_apply_line_for_invoice.py +++ b/src/merge/resources/accounting/types/credit_note_apply_line_for_invoice.py @@ -61,31 +61,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - CreditNoteApplyLineForInvoice, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, F401, I001 + +update_forward_refs(CreditNoteApplyLineForInvoice) diff --git a/src/merge/resources/accounting/types/credit_note_line_item_request.py b/src/merge/resources/accounting/types/credit_note_line_item_request.py index 60da22a5..f6e5048b 100644 --- a/src/merge/resources/accounting/types/credit_note_line_item_request.py +++ b/src/merge/resources/accounting/types/credit_note_line_item_request.py @@ -88,8 +88,8 @@ class CreditNoteLineItemRequest(UncheckedBaseModel): """ project: typing.Optional[CreditNoteLineItemRequestProject] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/credit_note_request.py b/src/merge/resources/accounting/types/credit_note_request.py index 6bbd27a7..48e28f06 100644 --- a/src/merge/resources/accounting/types/credit_note_request.py +++ b/src/merge/resources/accounting/types/credit_note_request.py @@ -419,8 +419,8 @@ class CreditNoteRequest(UncheckedBaseModel): A list of the CreditNote Applied to Lines common models related to a given Credit Note """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -432,4 +432,12 @@ class Config: extra = pydantic.Extra.allow +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + update_forward_refs(CreditNoteRequest) diff --git a/src/merge/resources/accounting/types/credit_note_response.py b/src/merge/resources/accounting/types/credit_note_response.py index 7ba5e9e1..587bb615 100644 --- a/src/merge/resources/accounting/types/credit_note_response.py +++ b/src/merge/resources/accounting/types/credit_note_response.py @@ -28,33 +28,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - CreditNoteResponse, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(CreditNoteResponse) diff --git a/src/merge/resources/accounting/types/credit_note_status_enum.py b/src/merge/resources/accounting/types/credit_note_status_enum.py index 0cb41c13..d0c47958 100644 --- a/src/merge/resources/accounting/types/credit_note_status_enum.py +++ b/src/merge/resources/accounting/types/credit_note_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CreditNoteStatusEnum(enum.StrEnum): +class CreditNoteStatusEnum(str, enum.Enum): """ * `SUBMITTED` - SUBMITTED * `AUTHORIZED` - AUTHORIZED diff --git a/src/merge/resources/accounting/types/credit_or_debit_enum.py b/src/merge/resources/accounting/types/credit_or_debit_enum.py index a6b7c0e0..defe692e 100644 --- a/src/merge/resources/accounting/types/credit_or_debit_enum.py +++ b/src/merge/resources/accounting/types/credit_or_debit_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CreditOrDebitEnum(enum.StrEnum): +class CreditOrDebitEnum(str, enum.Enum): """ * `CREDIT` - CREDIT * `DEBIT` - DEBIT diff --git a/src/merge/resources/accounting/types/data_passthrough_request.py b/src/merge/resources/accounting/types/data_passthrough_request.py index b18d99ae..67f3359e 100644 --- a/src/merge/resources/accounting/types/data_passthrough_request.py +++ b/src/merge/resources/accounting/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/accounting/types/employee.py b/src/merge/resources/accounting/types/employee.py index 590c2292..aeab0e44 100644 --- a/src/merge/resources/accounting/types/employee.py +++ b/src/merge/resources/accounting/types/employee.py @@ -87,7 +87,7 @@ class Employee(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/enabled_actions_enum.py b/src/merge/resources/accounting/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/accounting/types/enabled_actions_enum.py +++ b/src/merge/resources/accounting/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/accounting/types/encoding_enum.py b/src/merge/resources/accounting/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/accounting/types/encoding_enum.py +++ b/src/merge/resources/accounting/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/accounting/types/event_type_enum.py b/src/merge/resources/accounting/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/accounting/types/event_type_enum.py +++ b/src/merge/resources/accounting/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/accounting/types/expense.py b/src/merge/resources/accounting/types/expense.py index 2b59f820..b75f9af3 100644 --- a/src/merge/resources/accounting/types/expense.py +++ b/src/merge/resources/accounting/types/expense.py @@ -430,7 +430,7 @@ class Expense(UncheckedBaseModel): The accounting period that the Expense was generated in. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/expense_line_request.py b/src/merge/resources/accounting/types/expense_line_request.py index 713284ce..1a60035c 100644 --- a/src/merge/resources/accounting/types/expense_line_request.py +++ b/src/merge/resources/accounting/types/expense_line_request.py @@ -407,8 +407,8 @@ class ExpenseLineRequest(UncheckedBaseModel): Unit price of the item for the expense line. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/expense_report.py b/src/merge/resources/accounting/types/expense_report.py index 02c370b2..707c4104 100644 --- a/src/merge/resources/accounting/types/expense_report.py +++ b/src/merge/resources/accounting/types/expense_report.py @@ -416,7 +416,7 @@ class ExpenseReport(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/expense_report_line_request.py b/src/merge/resources/accounting/types/expense_report_line_request.py index 68e5c004..15817037 100644 --- a/src/merge/resources/accounting/types/expense_report_line_request.py +++ b/src/merge/resources/accounting/types/expense_report_line_request.py @@ -413,8 +413,8 @@ class ExpenseReportLineRequest(UncheckedBaseModel): """ tax_rate: typing.Optional[ExpenseReportLineRequestTaxRate] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/expense_report_request.py b/src/merge/resources/accounting/types/expense_report_request.py index b9812d9c..b3a7c343 100644 --- a/src/merge/resources/accounting/types/expense_report_request.py +++ b/src/merge/resources/accounting/types/expense_report_request.py @@ -392,8 +392,8 @@ class ExpenseReportRequest(UncheckedBaseModel): The related tracking categories associated with the expense report """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/expense_report_status_enum.py b/src/merge/resources/accounting/types/expense_report_status_enum.py index b6668b0d..79e72fd5 100644 --- a/src/merge/resources/accounting/types/expense_report_status_enum.py +++ b/src/merge/resources/accounting/types/expense_report_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ExpenseReportStatusEnum(enum.StrEnum): +class ExpenseReportStatusEnum(str, enum.Enum): """ * `DRAFT` - DRAFT * `SUBMITTED` - SUBMITTED diff --git a/src/merge/resources/accounting/types/expense_request.py b/src/merge/resources/accounting/types/expense_request.py index 6892458c..f6942f83 100644 --- a/src/merge/resources/accounting/types/expense_request.py +++ b/src/merge/resources/accounting/types/expense_request.py @@ -403,8 +403,8 @@ class ExpenseRequest(UncheckedBaseModel): The accounting period that the Expense was generated in. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/external_target_field_api_response.py b/src/merge/resources/accounting/types/external_target_field_api_response.py index f5a8d41c..ae4cf405 100644 --- a/src/merge/resources/accounting/types/external_target_field_api_response.py +++ b/src/merge/resources/accounting/types/external_target_field_api_response.py @@ -3,152 +3,74 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - accounting_attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="AccountingAttachment"), - pydantic.Field(alias="AccountingAttachment"), - ] = None - balance_sheet: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="BalanceSheet"), - pydantic.Field(alias="BalanceSheet"), - ] = None - cash_flow_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="CashFlowStatement"), - pydantic.Field(alias="CashFlowStatement"), - ] = None - company_info: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="CompanyInfo"), - pydantic.Field(alias="CompanyInfo"), - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None - income_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="IncomeStatement"), - pydantic.Field(alias="IncomeStatement"), - ] = None - credit_note: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="CreditNote"), - pydantic.Field(alias="CreditNote"), - ] = None - item: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Item"), pydantic.Field(alias="Item") - ] = None - purchase_order: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="PurchaseOrder"), - pydantic.Field(alias="PurchaseOrder"), - ] = None - sales_order: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="SalesOrder"), - pydantic.Field(alias="SalesOrder"), - ] = None - item_fulfillment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="ItemFulfillment"), - pydantic.Field(alias="ItemFulfillment"), - ] = None - expense_report: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="ExpenseReport"), - pydantic.Field(alias="ExpenseReport"), - ] = None - tracking_category: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="TrackingCategory"), - pydantic.Field(alias="TrackingCategory"), - ] = None - journal_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="JournalEntry"), - pydantic.Field(alias="JournalEntry"), - ] = None - tax_rate: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="TaxRate"), - pydantic.Field(alias="TaxRate"), - ] = None - invoice: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Invoice"), - pydantic.Field(alias="Invoice"), - ] = None - payment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Payment"), - pydantic.Field(alias="Payment"), - ] = None - expense: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Expense"), - pydantic.Field(alias="Expense"), - ] = None - vendor_credit: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="VendorCredit"), - pydantic.Field(alias="VendorCredit"), - ] = None - transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Transaction"), - pydantic.Field(alias="Transaction"), - ] = None - accounting_period: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="AccountingPeriod"), - pydantic.Field(alias="AccountingPeriod"), - ] = None - general_ledger_transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="GeneralLedgerTransaction"), - pydantic.Field(alias="GeneralLedgerTransaction"), - ] = None - bank_feed_account: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="BankFeedAccount"), - pydantic.Field(alias="BankFeedAccount"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Employee"), - pydantic.Field(alias="Employee"), - ] = None - payment_method: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="PaymentMethod"), - pydantic.Field(alias="PaymentMethod"), - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Project"), - pydantic.Field(alias="Project"), - ] = None - payment_term: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="PaymentTerm"), - pydantic.Field(alias="PaymentTerm"), - ] = None + account: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Account", default=None) + accounting_attachment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="AccountingAttachment", default=None + ) + balance_sheet: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="BalanceSheet", default=None + ) + cash_flow_statement: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="CashFlowStatement", default=None + ) + company_info: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="CompanyInfo", default=None + ) + contact: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Contact", default=None) + income_statement: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="IncomeStatement", default=None + ) + credit_note: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="CreditNote", default=None) + item: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Item", default=None) + purchase_order: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="PurchaseOrder", default=None + ) + sales_order: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="SalesOrder", default=None) + item_fulfillment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="ItemFulfillment", default=None + ) + expense_report: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="ExpenseReport", default=None + ) + tracking_category: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="TrackingCategory", default=None + ) + journal_entry: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="JournalEntry", default=None + ) + tax_rate: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="TaxRate", default=None) + invoice: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Invoice", default=None) + payment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Payment", default=None) + expense: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Expense", default=None) + vendor_credit: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="VendorCredit", default=None + ) + transaction: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="Transaction", default=None + ) + accounting_period: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="AccountingPeriod", default=None + ) + general_ledger_transaction: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="GeneralLedgerTransaction", default=None + ) + bank_feed_account: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="BankFeedAccount", default=None + ) + employee: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Employee", default=None) + payment_method: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="PaymentMethod", default=None + ) + project: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Project", default=None) + payment_term: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="PaymentTerm", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/feed_status_enum.py b/src/merge/resources/accounting/types/feed_status_enum.py index 4a787342..91fdfd18 100644 --- a/src/merge/resources/accounting/types/feed_status_enum.py +++ b/src/merge/resources/accounting/types/feed_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FeedStatusEnum(enum.StrEnum): +class FeedStatusEnum(str, enum.Enum): """ * `ACTIVE` - ACTIVE * `INACTIVE` - INACTIVE diff --git a/src/merge/resources/accounting/types/field_format_enum.py b/src/merge/resources/accounting/types/field_format_enum.py index 26052239..2f6eda2f 100644 --- a/src/merge/resources/accounting/types/field_format_enum.py +++ b/src/merge/resources/accounting/types/field_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldFormatEnum(enum.StrEnum): +class FieldFormatEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/accounting/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/accounting/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/accounting/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/accounting/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/field_mapping_api_instance_response.py b/src/merge/resources/accounting/types/field_mapping_api_instance_response.py index c607f3c0..dea44749 100644 --- a/src/merge/resources/accounting/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/accounting/types/field_mapping_api_instance_response.py @@ -3,152 +3,78 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - accounting_attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="AccountingAttachment"), - pydantic.Field(alias="AccountingAttachment"), - ] = None - balance_sheet: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="BalanceSheet"), - pydantic.Field(alias="BalanceSheet"), - ] = None - cash_flow_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="CashFlowStatement"), - pydantic.Field(alias="CashFlowStatement"), - ] = None - company_info: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="CompanyInfo"), - pydantic.Field(alias="CompanyInfo"), - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None - income_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="IncomeStatement"), - pydantic.Field(alias="IncomeStatement"), - ] = None - credit_note: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="CreditNote"), - pydantic.Field(alias="CreditNote"), - ] = None - item: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Item"), pydantic.Field(alias="Item") - ] = None - purchase_order: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="PurchaseOrder"), - pydantic.Field(alias="PurchaseOrder"), - ] = None - sales_order: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="SalesOrder"), - pydantic.Field(alias="SalesOrder"), - ] = None - item_fulfillment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="ItemFulfillment"), - pydantic.Field(alias="ItemFulfillment"), - ] = None - expense_report: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="ExpenseReport"), - pydantic.Field(alias="ExpenseReport"), - ] = None - tracking_category: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="TrackingCategory"), - pydantic.Field(alias="TrackingCategory"), - ] = None - journal_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="JournalEntry"), - pydantic.Field(alias="JournalEntry"), - ] = None - tax_rate: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="TaxRate"), - pydantic.Field(alias="TaxRate"), - ] = None - invoice: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Invoice"), - pydantic.Field(alias="Invoice"), - ] = None - payment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Payment"), - pydantic.Field(alias="Payment"), - ] = None - expense: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Expense"), - pydantic.Field(alias="Expense"), - ] = None - vendor_credit: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="VendorCredit"), - pydantic.Field(alias="VendorCredit"), - ] = None - transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Transaction"), - pydantic.Field(alias="Transaction"), - ] = None - accounting_period: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="AccountingPeriod"), - pydantic.Field(alias="AccountingPeriod"), - ] = None - general_ledger_transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="GeneralLedgerTransaction"), - pydantic.Field(alias="GeneralLedgerTransaction"), - ] = None - bank_feed_account: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="BankFeedAccount"), - pydantic.Field(alias="BankFeedAccount"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Employee"), - pydantic.Field(alias="Employee"), - ] = None - payment_method: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="PaymentMethod"), - pydantic.Field(alias="PaymentMethod"), - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Project"), - pydantic.Field(alias="Project"), - ] = None - payment_term: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="PaymentTerm"), - pydantic.Field(alias="PaymentTerm"), - ] = None + account: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Account", default=None) + accounting_attachment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="AccountingAttachment", default=None + ) + balance_sheet: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="BalanceSheet", default=None + ) + cash_flow_statement: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="CashFlowStatement", default=None + ) + company_info: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="CompanyInfo", default=None + ) + contact: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Contact", default=None) + income_statement: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="IncomeStatement", default=None + ) + credit_note: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="CreditNote", default=None + ) + item: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Item", default=None) + purchase_order: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="PurchaseOrder", default=None + ) + sales_order: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="SalesOrder", default=None + ) + item_fulfillment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="ItemFulfillment", default=None + ) + expense_report: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="ExpenseReport", default=None + ) + tracking_category: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="TrackingCategory", default=None + ) + journal_entry: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="JournalEntry", default=None + ) + tax_rate: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="TaxRate", default=None) + invoice: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Invoice", default=None) + payment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Payment", default=None) + expense: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Expense", default=None) + vendor_credit: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="VendorCredit", default=None + ) + transaction: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="Transaction", default=None + ) + accounting_period: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="AccountingPeriod", default=None + ) + general_ledger_transaction: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="GeneralLedgerTransaction", default=None + ) + bank_feed_account: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="BankFeedAccount", default=None + ) + employee: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Employee", default=None) + payment_method: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="PaymentMethod", default=None + ) + project: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Project", default=None) + payment_term: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="PaymentTerm", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/field_permission_deserializer.py b/src/merge/resources/accounting/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/accounting/types/field_permission_deserializer.py +++ b/src/merge/resources/accounting/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/field_permission_deserializer_request.py b/src/merge/resources/accounting/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/accounting/types/field_permission_deserializer_request.py +++ b/src/merge/resources/accounting/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/field_type_enum.py b/src/merge/resources/accounting/types/field_type_enum.py index d3635f4b..b99c1309 100644 --- a/src/merge/resources/accounting/types/field_type_enum.py +++ b/src/merge/resources/accounting/types/field_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldTypeEnum(enum.StrEnum): +class FieldTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/accounting/types/general_ledger_transaction.py b/src/merge/resources/accounting/types/general_ledger_transaction.py index 81c2c5b8..b2c874fb 100644 --- a/src/merge/resources/accounting/types/general_ledger_transaction.py +++ b/src/merge/resources/accounting/types/general_ledger_transaction.py @@ -106,7 +106,7 @@ class GeneralLedgerTransaction(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/general_ledger_transaction_line.py b/src/merge/resources/accounting/types/general_ledger_transaction_line.py index c5a80beb..41f26593 100644 --- a/src/merge/resources/accounting/types/general_ledger_transaction_line.py +++ b/src/merge/resources/accounting/types/general_ledger_transaction_line.py @@ -699,7 +699,7 @@ class GeneralLedgerTransactionLine(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/income_statement.py b/src/merge/resources/accounting/types/income_statement.py index 4852b7b8..39feb450 100644 --- a/src/merge/resources/accounting/types/income_statement.py +++ b/src/merge/resources/accounting/types/income_statement.py @@ -394,7 +394,7 @@ class IncomeStatement(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/invoice.py b/src/merge/resources/accounting/types/invoice.py index c402f3a3..2b060f8f 100644 --- a/src/merge/resources/accounting/types/invoice.py +++ b/src/merge/resources/accounting/types/invoice.py @@ -515,7 +515,7 @@ class Invoice(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None @@ -529,31 +529,13 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - Invoice, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 +from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, F401, I001 +from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, F401, I001 + +update_forward_refs(Invoice) diff --git a/src/merge/resources/accounting/types/invoice_line_item.py b/src/merge/resources/accounting/types/invoice_line_item.py index 2198a7b6..69b62b87 100644 --- a/src/merge/resources/accounting/types/invoice_line_item.py +++ b/src/merge/resources/accounting/types/invoice_line_item.py @@ -421,7 +421,7 @@ class InvoiceLineItem(UncheckedBaseModel): Indicates if the line item can be charged to the client/customer. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/invoice_line_item_request.py b/src/merge/resources/accounting/types/invoice_line_item_request.py index c1eb4d1c..a8468931 100644 --- a/src/merge/resources/accounting/types/invoice_line_item_request.py +++ b/src/merge/resources/accounting/types/invoice_line_item_request.py @@ -404,8 +404,8 @@ class InvoiceLineItemRequest(UncheckedBaseModel): Indicates if the line item can be charged to the client/customer. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/invoice_request.py b/src/merge/resources/accounting/types/invoice_request.py index 683ed069..62b7425c 100644 --- a/src/merge/resources/accounting/types/invoice_request.py +++ b/src/merge/resources/accounting/types/invoice_request.py @@ -459,8 +459,8 @@ class InvoiceRequest(UncheckedBaseModel): line_items: typing.Optional[typing.List[InvoiceRequestLineItemsItem]] = None purchase_orders: typing.Optional[typing.List[typing.Optional[InvoiceRequestPurchaseOrdersItem]]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/invoice_response.py b/src/merge/resources/accounting/types/invoice_response.py index 1bfa7c43..ee6e266e 100644 --- a/src/merge/resources/accounting/types/invoice_response.py +++ b/src/merge/resources/accounting/types/invoice_response.py @@ -28,33 +28,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - InvoiceResponse, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(InvoiceResponse) diff --git a/src/merge/resources/accounting/types/invoice_status_enum.py b/src/merge/resources/accounting/types/invoice_status_enum.py index 1e34b6a6..ff3bde31 100644 --- a/src/merge/resources/accounting/types/invoice_status_enum.py +++ b/src/merge/resources/accounting/types/invoice_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class InvoiceStatusEnum(enum.StrEnum): +class InvoiceStatusEnum(str, enum.Enum): """ * `PAID` - PAID * `DRAFT` - DRAFT diff --git a/src/merge/resources/accounting/types/invoice_type_enum.py b/src/merge/resources/accounting/types/invoice_type_enum.py index 6ab893f7..85fcb469 100644 --- a/src/merge/resources/accounting/types/invoice_type_enum.py +++ b/src/merge/resources/accounting/types/invoice_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class InvoiceTypeEnum(enum.StrEnum): +class InvoiceTypeEnum(str, enum.Enum): """ * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE diff --git a/src/merge/resources/accounting/types/issue.py b/src/merge/resources/accounting/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/accounting/types/issue.py +++ b/src/merge/resources/accounting/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/accounting/types/issue_status_enum.py b/src/merge/resources/accounting/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/accounting/types/issue_status_enum.py +++ b/src/merge/resources/accounting/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/accounting/types/item.py b/src/merge/resources/accounting/types/item.py index aa6157e2..d894ccd5 100644 --- a/src/merge/resources/accounting/types/item.py +++ b/src/merge/resources/accounting/types/item.py @@ -115,7 +115,7 @@ class Item(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/item_format_enum.py b/src/merge/resources/accounting/types/item_format_enum.py index 6e1e81ce..6fef7236 100644 --- a/src/merge/resources/accounting/types/item_format_enum.py +++ b/src/merge/resources/accounting/types/item_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFormatEnum(enum.StrEnum): +class ItemFormatEnum(str, enum.Enum): """ * `string` - uuid * `number` - url diff --git a/src/merge/resources/accounting/types/item_fulfillment.py b/src/merge/resources/accounting/types/item_fulfillment.py index fce325c0..b61371b8 100644 --- a/src/merge/resources/accounting/types/item_fulfillment.py +++ b/src/merge/resources/accounting/types/item_fulfillment.py @@ -97,7 +97,7 @@ class ItemFulfillment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/item_fulfillment_line_request.py b/src/merge/resources/accounting/types/item_fulfillment_line_request.py index 48b89c2a..a87d536f 100644 --- a/src/merge/resources/accounting/types/item_fulfillment_line_request.py +++ b/src/merge/resources/accounting/types/item_fulfillment_line_request.py @@ -51,8 +51,8 @@ class ItemFulfillmentLineRequest(UncheckedBaseModel): When the third party's item fulfillment line item was updated. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/item_fulfillment_request_request.py b/src/merge/resources/accounting/types/item_fulfillment_request_request.py index 62124e26..099083f3 100644 --- a/src/merge/resources/accounting/types/item_fulfillment_request_request.py +++ b/src/merge/resources/accounting/types/item_fulfillment_request_request.py @@ -60,8 +60,8 @@ class ItemFulfillmentRequestRequest(UncheckedBaseModel): """ lines: typing.Optional[typing.List[ItemFulfillmentRequestRequestLinesItem]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/item_fulfillment_status_enum.py b/src/merge/resources/accounting/types/item_fulfillment_status_enum.py index 6ef28e34..8e62c629 100644 --- a/src/merge/resources/accounting/types/item_fulfillment_status_enum.py +++ b/src/merge/resources/accounting/types/item_fulfillment_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFulfillmentStatusEnum(enum.StrEnum): +class ItemFulfillmentStatusEnum(str, enum.Enum): """ * `DRAFT` - DRAFT * `IN_PROGRESS` - IN_PROGRESS diff --git a/src/merge/resources/accounting/types/item_request_request.py b/src/merge/resources/accounting/types/item_request_request.py index 67bca3f9..c6080a03 100644 --- a/src/merge/resources/accounting/types/item_request_request.py +++ b/src/merge/resources/accounting/types/item_request_request.py @@ -82,8 +82,8 @@ class ItemRequestRequest(UncheckedBaseModel): The default sales tax rate for this item. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/item_type_enum.py b/src/merge/resources/accounting/types/item_type_enum.py index f92370d0..afcc4dd6 100644 --- a/src/merge/resources/accounting/types/item_type_enum.py +++ b/src/merge/resources/accounting/types/item_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemTypeEnum(enum.StrEnum): +class ItemTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/accounting/types/journal_entry.py b/src/merge/resources/accounting/types/journal_entry.py index 647cf0b3..547cb158 100644 --- a/src/merge/resources/accounting/types/journal_entry.py +++ b/src/merge/resources/accounting/types/journal_entry.py @@ -437,7 +437,7 @@ class JournalEntry(UncheckedBaseModel): When the third party's journal entry was updated. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/journal_entry_request.py b/src/merge/resources/accounting/types/journal_entry_request.py index 523a9677..d00339aa 100644 --- a/src/merge/resources/accounting/types/journal_entry_request.py +++ b/src/merge/resources/accounting/types/journal_entry_request.py @@ -384,8 +384,8 @@ class JournalEntryRequest(UncheckedBaseModel): * `POSTED` - POSTED """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/journal_line_request.py b/src/merge/resources/accounting/types/journal_line_request.py index 20ed4157..05533fa0 100644 --- a/src/merge/resources/accounting/types/journal_line_request.py +++ b/src/merge/resources/accounting/types/journal_line_request.py @@ -377,8 +377,8 @@ class JournalLineRequest(UncheckedBaseModel): The journal line item's exchange rate. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/language_enum.py b/src/merge/resources/accounting/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/accounting/types/language_enum.py +++ b/src/merge/resources/accounting/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/accounting/types/last_sync_result_enum.py b/src/merge/resources/accounting/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/accounting/types/last_sync_result_enum.py +++ b/src/merge/resources/accounting/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/accounting/types/meta_response.py b/src/merge/resources/accounting/types/meta_response.py index 52cc10da..d538cf73 100644 --- a/src/merge/resources/accounting/types/meta_response.py +++ b/src/merge/resources/accounting/types/meta_response.py @@ -9,7 +9,7 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] + request_schema: typing.Dict[str, typing.Optional[typing.Any]] status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/accounting/types/method_enum.py b/src/merge/resources/accounting/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/accounting/types/method_enum.py +++ b/src/merge/resources/accounting/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/accounting/types/method_type_enum.py b/src/merge/resources/accounting/types/method_type_enum.py index 6c0e4e60..d358511b 100644 --- a/src/merge/resources/accounting/types/method_type_enum.py +++ b/src/merge/resources/accounting/types/method_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodTypeEnum(enum.StrEnum): +class MethodTypeEnum(str, enum.Enum): """ * `CREDIT_CARD` - CREDIT_CARD * `DEBIT_CARD` - DEBIT_CARD diff --git a/src/merge/resources/accounting/types/paginated_credit_note_list.py b/src/merge/resources/accounting/types/paginated_credit_note_list.py index 769ceff0..4cdc16aa 100644 --- a/src/merge/resources/accounting/types/paginated_credit_note_list.py +++ b/src/merge/resources/accounting/types/paginated_credit_note_list.py @@ -24,33 +24,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - PaginatedCreditNoteList, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(PaginatedCreditNoteList) diff --git a/src/merge/resources/accounting/types/paginated_invoice_list.py b/src/merge/resources/accounting/types/paginated_invoice_list.py index 5c14b734..fd6795d5 100644 --- a/src/merge/resources/accounting/types/paginated_invoice_list.py +++ b/src/merge/resources/accounting/types/paginated_invoice_list.py @@ -24,33 +24,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - PaginatedInvoiceList, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(PaginatedInvoiceList) diff --git a/src/merge/resources/accounting/types/paginated_vendor_credit_list.py b/src/merge/resources/accounting/types/paginated_vendor_credit_list.py index b73ff287..eb676449 100644 --- a/src/merge/resources/accounting/types/paginated_vendor_credit_list.py +++ b/src/merge/resources/accounting/types/paginated_vendor_credit_list.py @@ -24,33 +24,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - PaginatedVendorCreditList, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(PaginatedVendorCreditList) diff --git a/src/merge/resources/accounting/types/patched_contact_request.py b/src/merge/resources/accounting/types/patched_contact_request.py index fec9779d..806df980 100644 --- a/src/merge/resources/accounting/types/patched_contact_request.py +++ b/src/merge/resources/accounting/types/patched_contact_request.py @@ -82,8 +82,8 @@ class PatchedContactRequest(UncheckedBaseModel): `AccountingPhoneNumber` object for the given `Contacts` object. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/patched_item_request_request.py b/src/merge/resources/accounting/types/patched_item_request_request.py index c99820b6..57c95f70 100644 --- a/src/merge/resources/accounting/types/patched_item_request_request.py +++ b/src/merge/resources/accounting/types/patched_item_request_request.py @@ -82,8 +82,8 @@ class PatchedItemRequestRequest(UncheckedBaseModel): The default sales tax rate for this item. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/patched_payment_request.py b/src/merge/resources/accounting/types/patched_payment_request.py index 2dc3dfc6..19b730f9 100644 --- a/src/merge/resources/accounting/types/patched_payment_request.py +++ b/src/merge/resources/accounting/types/patched_payment_request.py @@ -401,8 +401,8 @@ class PatchedPaymentRequest(UncheckedBaseModel): A list of “Payment Applied to Lines” objects. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/patched_vendor_credit_request.py b/src/merge/resources/accounting/types/patched_vendor_credit_request.py index e2e885dc..b9ac7532 100644 --- a/src/merge/resources/accounting/types/patched_vendor_credit_request.py +++ b/src/merge/resources/accounting/types/patched_vendor_credit_request.py @@ -365,8 +365,8 @@ class PatchedVendorCreditRequest(UncheckedBaseModel): """ tracking_categories: typing.Optional[typing.List[PatchedVendorCreditRequestTrackingCategoriesItem]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None vendor_credit_url: typing.Optional[str] = pydantic.Field(default=None) """ The 3rd party URL of the vendor credit. diff --git a/src/merge/resources/accounting/types/payment.py b/src/merge/resources/accounting/types/payment.py index a45f3de8..18e5f5fd 100644 --- a/src/merge/resources/accounting/types/payment.py +++ b/src/merge/resources/accounting/types/payment.py @@ -426,7 +426,7 @@ class Payment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/payment_line_item_request.py b/src/merge/resources/accounting/types/payment_line_item_request.py index a9ec320c..ecc0e374 100644 --- a/src/merge/resources/accounting/types/payment_line_item_request.py +++ b/src/merge/resources/accounting/types/payment_line_item_request.py @@ -44,8 +44,8 @@ class PaymentLineItemRequest(UncheckedBaseModel): The type of transaction the payment portion is being applied to. Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/payment_method.py b/src/merge/resources/accounting/types/payment_method.py index 98d4761e..4a1239b0 100644 --- a/src/merge/resources/accounting/types/payment_method.py +++ b/src/merge/resources/accounting/types/payment_method.py @@ -67,7 +67,7 @@ class PaymentMethod(UncheckedBaseModel): When the third party's payment method was updated. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/payment_request.py b/src/merge/resources/accounting/types/payment_request.py index ac18bd81..886e0531 100644 --- a/src/merge/resources/accounting/types/payment_request.py +++ b/src/merge/resources/accounting/types/payment_request.py @@ -399,8 +399,8 @@ class PaymentRequest(UncheckedBaseModel): A list of “Payment Applied to Lines” objects. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/payment_term.py b/src/merge/resources/accounting/types/payment_term.py index e816a55d..3ff34540 100644 --- a/src/merge/resources/accounting/types/payment_term.py +++ b/src/merge/resources/accounting/types/payment_term.py @@ -72,7 +72,7 @@ class PaymentTerm(UncheckedBaseModel): When the third party's payment term was modified. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/payment_type_enum.py b/src/merge/resources/accounting/types/payment_type_enum.py index 1aa7a85d..6d0a054a 100644 --- a/src/merge/resources/accounting/types/payment_type_enum.py +++ b/src/merge/resources/accounting/types/payment_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PaymentTypeEnum(enum.StrEnum): +class PaymentTypeEnum(str, enum.Enum): """ * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE diff --git a/src/merge/resources/accounting/types/posting_status_enum.py b/src/merge/resources/accounting/types/posting_status_enum.py index a18bed6f..95f462bc 100644 --- a/src/merge/resources/accounting/types/posting_status_enum.py +++ b/src/merge/resources/accounting/types/posting_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PostingStatusEnum(enum.StrEnum): +class PostingStatusEnum(str, enum.Enum): """ * `UNPOSTED` - UNPOSTED * `POSTED` - POSTED diff --git a/src/merge/resources/accounting/types/project.py b/src/merge/resources/accounting/types/project.py index 67461ed5..1bf9cab0 100644 --- a/src/merge/resources/accounting/types/project.py +++ b/src/merge/resources/accounting/types/project.py @@ -63,7 +63,7 @@ class Project(UncheckedBaseModel): The supplier, or customer involved in the project. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/purchase_order.py b/src/merge/resources/accounting/types/purchase_order.py index 0bf36c69..2b5bd281 100644 --- a/src/merge/resources/accounting/types/purchase_order.py +++ b/src/merge/resources/accounting/types/purchase_order.py @@ -457,7 +457,7 @@ class PurchaseOrder(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/purchase_order_line_item_request.py b/src/merge/resources/accounting/types/purchase_order_line_item_request.py index a853800c..964b9e1e 100644 --- a/src/merge/resources/accounting/types/purchase_order_line_item_request.py +++ b/src/merge/resources/accounting/types/purchase_order_line_item_request.py @@ -393,8 +393,8 @@ class PurchaseOrderLineItemRequest(UncheckedBaseModel): The company the purchase order line item belongs to. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/purchase_order_request.py b/src/merge/resources/accounting/types/purchase_order_request.py index 006fbbb8..90890d0c 100644 --- a/src/merge/resources/accounting/types/purchase_order_request.py +++ b/src/merge/resources/accounting/types/purchase_order_request.py @@ -409,8 +409,8 @@ class PurchaseOrderRequest(UncheckedBaseModel): None ) line_items: typing.Optional[typing.List[PurchaseOrderRequestLineItemsItem]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/purchase_order_status_enum.py b/src/merge/resources/accounting/types/purchase_order_status_enum.py index 0fefbe95..1c302dd3 100644 --- a/src/merge/resources/accounting/types/purchase_order_status_enum.py +++ b/src/merge/resources/accounting/types/purchase_order_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PurchaseOrderStatusEnum(enum.StrEnum): +class PurchaseOrderStatusEnum(str, enum.Enum): """ * `DRAFT` - DRAFT * `SUBMITTED` - SUBMITTED diff --git a/src/merge/resources/accounting/types/remote_data.py b/src/merge/resources/accounting/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/accounting/types/remote_data.py +++ b/src/merge/resources/accounting/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/accounting/types/remote_endpoint_info.py b/src/merge/resources/accounting/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/accounting/types/remote_endpoint_info.py +++ b/src/merge/resources/accounting/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/remote_field.py b/src/merge/resources/accounting/types/remote_field.py index 556c69ef..1a9272f0 100644 --- a/src/merge/resources/accounting/types/remote_field.py +++ b/src/merge/resources/accounting/types/remote_field.py @@ -10,7 +10,7 @@ class RemoteField(UncheckedBaseModel): remote_field_class: RemoteFieldRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/remote_field_api.py b/src/merge/resources/accounting/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/accounting/types/remote_field_api.py +++ b/src/merge/resources/accounting/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/accounting/types/remote_field_api_response.py b/src/merge/resources/accounting/types/remote_field_api_response.py index 7e866b33..0eeab3e5 100644 --- a/src/merge/resources/accounting/types/remote_field_api_response.py +++ b/src/merge/resources/accounting/types/remote_field_api_response.py @@ -3,136 +3,56 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Account"), pydantic.Field(alias="Account") - ] = None - accounting_attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="AccountingAttachment"), - pydantic.Field(alias="AccountingAttachment"), - ] = None - balance_sheet: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="BalanceSheet"), - pydantic.Field(alias="BalanceSheet"), - ] = None - cash_flow_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="CashFlowStatement"), - pydantic.Field(alias="CashFlowStatement"), - ] = None - company_info: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="CompanyInfo"), - pydantic.Field(alias="CompanyInfo"), - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Contact"), pydantic.Field(alias="Contact") - ] = None - income_statement: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="IncomeStatement"), - pydantic.Field(alias="IncomeStatement"), - ] = None - credit_note: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="CreditNote"), - pydantic.Field(alias="CreditNote"), - ] = None - item: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Item"), pydantic.Field(alias="Item") - ] = None - purchase_order: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="PurchaseOrder"), - pydantic.Field(alias="PurchaseOrder"), - ] = None - sales_order: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="SalesOrder"), - pydantic.Field(alias="SalesOrder"), - ] = None - item_fulfillment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="ItemFulfillment"), - pydantic.Field(alias="ItemFulfillment"), - ] = None - expense_report: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="ExpenseReport"), - pydantic.Field(alias="ExpenseReport"), - ] = None - tracking_category: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="TrackingCategory"), - pydantic.Field(alias="TrackingCategory"), - ] = None - journal_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="JournalEntry"), - pydantic.Field(alias="JournalEntry"), - ] = None - tax_rate: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="TaxRate"), pydantic.Field(alias="TaxRate") - ] = None - invoice: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Invoice"), pydantic.Field(alias="Invoice") - ] = None - payment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Payment"), pydantic.Field(alias="Payment") - ] = None - expense: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Expense"), pydantic.Field(alias="Expense") - ] = None - vendor_credit: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="VendorCredit"), - pydantic.Field(alias="VendorCredit"), - ] = None - transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Transaction"), - pydantic.Field(alias="Transaction"), - ] = None - accounting_period: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="AccountingPeriod"), - pydantic.Field(alias="AccountingPeriod"), - ] = None - general_ledger_transaction: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="GeneralLedgerTransaction"), - pydantic.Field(alias="GeneralLedgerTransaction"), - ] = None - bank_feed_account: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="BankFeedAccount"), - pydantic.Field(alias="BankFeedAccount"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Employee"), pydantic.Field(alias="Employee") - ] = None - payment_method: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="PaymentMethod"), - pydantic.Field(alias="PaymentMethod"), - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Project"), pydantic.Field(alias="Project") - ] = None - payment_term: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="PaymentTerm"), - pydantic.Field(alias="PaymentTerm"), - ] = None + account: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Account", default=None) + accounting_attachment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="AccountingAttachment", default=None + ) + balance_sheet: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="BalanceSheet", default=None) + cash_flow_statement: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="CashFlowStatement", default=None + ) + company_info: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="CompanyInfo", default=None) + contact: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Contact", default=None) + income_statement: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="IncomeStatement", default=None + ) + credit_note: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="CreditNote", default=None) + item: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Item", default=None) + purchase_order: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="PurchaseOrder", default=None) + sales_order: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="SalesOrder", default=None) + item_fulfillment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="ItemFulfillment", default=None + ) + expense_report: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="ExpenseReport", default=None) + tracking_category: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="TrackingCategory", default=None + ) + journal_entry: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="JournalEntry", default=None) + tax_rate: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="TaxRate", default=None) + invoice: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Invoice", default=None) + payment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Payment", default=None) + expense: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Expense", default=None) + vendor_credit: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="VendorCredit", default=None) + transaction: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Transaction", default=None) + accounting_period: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="AccountingPeriod", default=None + ) + general_ledger_transaction: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="GeneralLedgerTransaction", default=None + ) + bank_feed_account: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="BankFeedAccount", default=None + ) + employee: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Employee", default=None) + payment_method: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="PaymentMethod", default=None) + project: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Project", default=None) + payment_term: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="PaymentTerm", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/remote_field_request.py b/src/merge/resources/accounting/types/remote_field_request.py index e3c6e0fc..69bc39da 100644 --- a/src/merge/resources/accounting/types/remote_field_request.py +++ b/src/merge/resources/accounting/types/remote_field_request.py @@ -10,7 +10,7 @@ class RemoteFieldRequest(UncheckedBaseModel): remote_field_class: RemoteFieldRequestRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/remote_response.py b/src/merge/resources/accounting/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/accounting/types/remote_response.py +++ b/src/merge/resources/accounting/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/report_item.py b/src/merge/resources/accounting/types/report_item.py index 63695ab7..b217e114 100644 --- a/src/merge/resources/accounting/types/report_item.py +++ b/src/merge/resources/accounting/types/report_item.py @@ -43,7 +43,7 @@ class ReportItem(UncheckedBaseModel): The report item's value. """ - sub_items: typing.Optional[typing.Dict[str, typing.Any]] = None + sub_items: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None company: typing.Optional[str] = pydantic.Field(default=None) """ The company the report item belongs to. diff --git a/src/merge/resources/accounting/types/request_format_enum.py b/src/merge/resources/accounting/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/accounting/types/request_format_enum.py +++ b/src/merge/resources/accounting/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/accounting/types/response_type_enum.py b/src/merge/resources/accounting/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/accounting/types/response_type_enum.py +++ b/src/merge/resources/accounting/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/accounting/types/role_enum.py b/src/merge/resources/accounting/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/accounting/types/role_enum.py +++ b/src/merge/resources/accounting/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/accounting/types/sales_order.py b/src/merge/resources/accounting/types/sales_order.py index 248c0959..c7df3bdb 100644 --- a/src/merge/resources/accounting/types/sales_order.py +++ b/src/merge/resources/accounting/types/sales_order.py @@ -435,7 +435,7 @@ class SalesOrder(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/accounting/types/sales_order_line_request.py b/src/merge/resources/accounting/types/sales_order_line_request.py index 8796728a..c6c1589b 100644 --- a/src/merge/resources/accounting/types/sales_order_line_request.py +++ b/src/merge/resources/accounting/types/sales_order_line_request.py @@ -71,8 +71,8 @@ class SalesOrderLineRequest(UncheckedBaseModel): When the third party's sales order line item was updated. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/sales_order_request_request.py b/src/merge/resources/accounting/types/sales_order_request_request.py index c5f6a266..b447a280 100644 --- a/src/merge/resources/accounting/types/sales_order_request_request.py +++ b/src/merge/resources/accounting/types/sales_order_request_request.py @@ -400,8 +400,8 @@ class SalesOrderRequestRequest(UncheckedBaseModel): """ lines: typing.Optional[typing.List[SalesOrderRequestRequestLinesItem]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/sales_order_status_enum.py b/src/merge/resources/accounting/types/sales_order_status_enum.py index 06d6fbb0..bc23fbb7 100644 --- a/src/merge/resources/accounting/types/sales_order_status_enum.py +++ b/src/merge/resources/accounting/types/sales_order_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SalesOrderStatusEnum(enum.StrEnum): +class SalesOrderStatusEnum(str, enum.Enum): """ * `DRAFT` - DRAFT * `PENDING_APPROVAL` - PENDING_APPROVAL diff --git a/src/merge/resources/accounting/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/accounting/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/accounting/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/accounting/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/accounting/types/status_7_d_1_enum.py b/src/merge/resources/accounting/types/status_7_d_1_enum.py index 9d335cd5..3b21ca93 100644 --- a/src/merge/resources/accounting/types/status_7_d_1_enum.py +++ b/src/merge/resources/accounting/types/status_7_d_1_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class Status7D1Enum(enum.StrEnum): +class Status7D1Enum(str, enum.Enum): """ * `ACTIVE` - ACTIVE * `ARCHIVED` - ARCHIVED diff --git a/src/merge/resources/accounting/types/status_895_enum.py b/src/merge/resources/accounting/types/status_895_enum.py index ca416191..b7cba275 100644 --- a/src/merge/resources/accounting/types/status_895_enum.py +++ b/src/merge/resources/accounting/types/status_895_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class Status895Enum(enum.StrEnum): +class Status895Enum(str, enum.Enum): """ * `ACTIVE` - ACTIVE * `INACTIVE` - INACTIVE diff --git a/src/merge/resources/accounting/types/status_fd_5_enum.py b/src/merge/resources/accounting/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/accounting/types/status_fd_5_enum.py +++ b/src/merge/resources/accounting/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/accounting/types/sync_status.py b/src/merge/resources/accounting/types/sync_status.py index 07ab1dc2..4bb187e3 100644 --- a/src/merge/resources/accounting/types/sync_status.py +++ b/src/merge/resources/accounting/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/accounting/types/sync_status_reason_enum.py b/src/merge/resources/accounting/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/accounting/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/accounting/types/sync_status_sync_status_reason.py b/src/merge/resources/accounting/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/accounting/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/accounting/types/tax_rate.py b/src/merge/resources/accounting/types/tax_rate.py index 76465810..66b673c1 100644 --- a/src/merge/resources/accounting/types/tax_rate.py +++ b/src/merge/resources/accounting/types/tax_rate.py @@ -91,7 +91,7 @@ class TaxRate(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/accounting/types/tracking_category.py b/src/merge/resources/accounting/types/tracking_category.py index cb2efc85..19bc0364 100644 --- a/src/merge/resources/accounting/types/tracking_category.py +++ b/src/merge/resources/accounting/types/tracking_category.py @@ -69,7 +69,7 @@ class TrackingCategory(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None tracking_category_url: typing.Optional[str] = pydantic.Field(default=None) """ The 3rd party URL of the tracking category. diff --git a/src/merge/resources/accounting/types/transaction.py b/src/merge/resources/accounting/types/transaction.py index d29d1eab..6c06bac6 100644 --- a/src/merge/resources/accounting/types/transaction.py +++ b/src/merge/resources/accounting/types/transaction.py @@ -418,7 +418,7 @@ class Transaction(UncheckedBaseModel): The accounting period that the Transaction was generated in. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None transaction_url: typing.Optional[str] = pydantic.Field(default=None) """ diff --git a/src/merge/resources/accounting/types/transaction_currency_enum.py b/src/merge/resources/accounting/types/transaction_currency_enum.py index df2a4f7b..e02cdea7 100644 --- a/src/merge/resources/accounting/types/transaction_currency_enum.py +++ b/src/merge/resources/accounting/types/transaction_currency_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TransactionCurrencyEnum(enum.StrEnum): +class TransactionCurrencyEnum(str, enum.Enum): """ * `XUA` - ADB Unit of Account * `AFN` - Afghan Afghani diff --git a/src/merge/resources/accounting/types/type_2_bb_enum.py b/src/merge/resources/accounting/types/type_2_bb_enum.py index 90413a9a..1506d7c8 100644 --- a/src/merge/resources/accounting/types/type_2_bb_enum.py +++ b/src/merge/resources/accounting/types/type_2_bb_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class Type2BbEnum(enum.StrEnum): +class Type2BbEnum(str, enum.Enum): """ * `INVENTORY` - INVENTORY * `NON_INVENTORY` - NON_INVENTORY diff --git a/src/merge/resources/accounting/types/underlying_transaction_type_enum.py b/src/merge/resources/accounting/types/underlying_transaction_type_enum.py index 711640ae..924dbedf 100644 --- a/src/merge/resources/accounting/types/underlying_transaction_type_enum.py +++ b/src/merge/resources/accounting/types/underlying_transaction_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class UnderlyingTransactionTypeEnum(enum.StrEnum): +class UnderlyingTransactionTypeEnum(str, enum.Enum): """ * `INVOICE` - INVOICE * `EXPENSE` - EXPENSE diff --git a/src/merge/resources/accounting/types/vendor_credit.py b/src/merge/resources/accounting/types/vendor_credit.py index c4d3cb0e..d40294e3 100644 --- a/src/merge/resources/accounting/types/vendor_credit.py +++ b/src/merge/resources/accounting/types/vendor_credit.py @@ -409,7 +409,7 @@ class VendorCredit(UncheckedBaseModel): The accounting period that the VendorCredit was generated in. """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None vendor_credit_url: typing.Optional[str] = pydantic.Field(default=None) """ @@ -426,31 +426,11 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 -update_forward_refs( - VendorCredit, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +update_forward_refs(VendorCredit) diff --git a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_invoice.py b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_invoice.py index fe225272..83485a9e 100644 --- a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_invoice.py +++ b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_invoice.py @@ -61,31 +61,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - VendorCreditApplyLineForInvoice, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(VendorCreditApplyLineForInvoice) diff --git a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit.py b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit.py index 84078d19..46a8ae61 100644 --- a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit.py +++ b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit.py @@ -61,31 +61,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - VendorCreditApplyLineForVendorCredit, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, F401, I001 + +update_forward_refs(VendorCreditApplyLineForVendorCredit) diff --git a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.py b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.py index fa378d72..402394d8 100644 --- a/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.py +++ b/src/merge/resources/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.py @@ -39,8 +39,8 @@ class VendorCreditApplyLineForVendorCreditRequest(UncheckedBaseModel): The amount of the VendorCredit applied to the invoice. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -52,4 +52,12 @@ class Config: extra = pydantic.Extra.allow +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + update_forward_refs(VendorCreditApplyLineForVendorCreditRequest) diff --git a/src/merge/resources/accounting/types/vendor_credit_line_request.py b/src/merge/resources/accounting/types/vendor_credit_line_request.py index 75802427..c346c7a5 100644 --- a/src/merge/resources/accounting/types/vendor_credit_line_request.py +++ b/src/merge/resources/accounting/types/vendor_credit_line_request.py @@ -67,8 +67,8 @@ class VendorCreditLineRequest(UncheckedBaseModel): The vendor credit line item's exchange rate. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/accounting/types/vendor_credit_request.py b/src/merge/resources/accounting/types/vendor_credit_request.py index 715fa89d..12dad306 100644 --- a/src/merge/resources/accounting/types/vendor_credit_request.py +++ b/src/merge/resources/accounting/types/vendor_credit_request.py @@ -386,8 +386,8 @@ class VendorCreditRequest(UncheckedBaseModel): The accounting period that the VendorCredit was generated in. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None vendor_credit_url: typing.Optional[str] = pydantic.Field(default=None) """ The 3rd party URL of the vendor credit. @@ -403,4 +403,12 @@ class Config: extra = pydantic.Extra.allow +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + update_forward_refs(VendorCreditRequest) diff --git a/src/merge/resources/accounting/types/vendor_credit_response.py b/src/merge/resources/accounting/types/vendor_credit_response.py index 29705783..9dab6cb4 100644 --- a/src/merge/resources/accounting/types/vendor_credit_response.py +++ b/src/merge/resources/accounting/types/vendor_credit_response.py @@ -28,33 +28,12 @@ class Config: extra = pydantic.Extra.allow -from .credit_note import CreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, I001 -from .credit_note_apply_line_for_credit_note_invoice import CreditNoteApplyLineForCreditNoteInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, I001 -from .credit_note_apply_line_for_invoice_credit_note import CreditNoteApplyLineForInvoiceCreditNote # noqa: E402, I001 -from .invoice import Invoice # noqa: E402, I001 -from .invoice_applied_credit_notes_item import InvoiceAppliedCreditNotesItem # noqa: E402, I001 -from .invoice_applied_vendor_credits_item import InvoiceAppliedVendorCreditsItem # noqa: E402, I001 -from .vendor_credit import VendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, I001 -from .vendor_credit_apply_line_for_invoice_vendor_credit import VendorCreditApplyLineForInvoiceVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, I001 -from .vendor_credit_apply_line_for_vendor_credit_invoice import VendorCreditApplyLineForVendorCreditInvoice # noqa: E402, I001 - -update_forward_refs( - VendorCreditResponse, - CreditNote=CreditNote, - CreditNoteApplyLineForCreditNote=CreditNoteApplyLineForCreditNote, - CreditNoteApplyLineForCreditNoteInvoice=CreditNoteApplyLineForCreditNoteInvoice, - CreditNoteApplyLineForInvoice=CreditNoteApplyLineForInvoice, - CreditNoteApplyLineForInvoiceCreditNote=CreditNoteApplyLineForInvoiceCreditNote, - Invoice=Invoice, - InvoiceAppliedCreditNotesItem=InvoiceAppliedCreditNotesItem, - InvoiceAppliedVendorCreditsItem=InvoiceAppliedVendorCreditsItem, - VendorCredit=VendorCredit, - VendorCreditApplyLineForInvoice=VendorCreditApplyLineForInvoice, - VendorCreditApplyLineForInvoiceVendorCredit=VendorCreditApplyLineForInvoiceVendorCredit, - VendorCreditApplyLineForVendorCredit=VendorCreditApplyLineForVendorCredit, - VendorCreditApplyLineForVendorCreditInvoice=VendorCreditApplyLineForVendorCreditInvoice, -) +from .credit_note import CreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_credit_note import CreditNoteApplyLineForCreditNote # noqa: E402, F401, I001 +from .credit_note_apply_line_for_invoice import CreditNoteApplyLineForInvoice # noqa: E402, F401, I001 +from .invoice import Invoice # noqa: E402, F401, I001 +from .vendor_credit import VendorCredit # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_invoice import VendorCreditApplyLineForInvoice # noqa: E402, F401, I001 +from .vendor_credit_apply_line_for_vendor_credit import VendorCreditApplyLineForVendorCredit # noqa: E402, F401, I001 + +update_forward_refs(VendorCreditResponse) diff --git a/src/merge/resources/ats/__init__.py b/src/merge/resources/ats/__init__.py index 876110f3..1e31d37b 100644 --- a/src/merge/resources/ats/__init__.py +++ b/src/merge/resources/ats/__init__.py @@ -219,7 +219,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, Tag, Url, UrlRequest, @@ -536,7 +538,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "Tag": ".types", "Url": ".types", "UrlRequest": ".types", @@ -590,10 +594,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -846,7 +848,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Tag", "Url", "UrlRequest", diff --git a/src/merge/resources/ats/resources/__init__.py b/src/merge/resources/ats/resources/__init__.py index 4d439538..b07955b7 100644 --- a/src/merge/resources/ats/resources/__init__.py +++ b/src/merge/resources/ats/resources/__init__.py @@ -98,39 +98,39 @@ "OffersRetrieveRequestExpandItem": ".offers", "ScorecardsListRequestExpandItem": ".scorecards", "ScorecardsRetrieveRequestExpandItem": ".scorecards", - "account_details": ".account_details", - "account_token": ".account_token", - "activities": ".activities", - "applications": ".applications", - "async_passthrough": ".async_passthrough", - "attachments": ".attachments", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "candidates": ".candidates", - "delete_account": ".delete_account", - "departments": ".departments", - "eeocs": ".eeocs", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "interviews": ".interviews", - "issues": ".issues", - "job_interview_stages": ".job_interview_stages", - "job_postings": ".job_postings", - "jobs": ".jobs", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "offers": ".offers", - "offices": ".offices", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "reject_reasons": ".reject_reasons", - "scopes": ".scopes", - "scorecards": ".scorecards", - "sync_status": ".sync_status", - "tags": ".tags", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "activities": ".", + "applications": ".", + "async_passthrough": ".", + "attachments": ".", + "audit_trail": ".", + "available_actions": ".", + "candidates": ".", + "delete_account": ".", + "departments": ".", + "eeocs": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "interviews": ".", + "issues": ".", + "job_interview_stages": ".", + "job_postings": ".", + "jobs": ".", + "link_token": ".", + "linked_accounts": ".", + "offers": ".", + "offices": ".", + "passthrough": ".", + "regenerate_key": ".", + "reject_reasons": ".", + "scopes": ".", + "scorecards": ".", + "sync_status": ".", + "tags": ".", + "users": ".", + "webhook_receivers": ".", } @@ -140,10 +140,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/account_details/raw_client.py b/src/merge/resources/ats/resources/account_details/raw_client.py index 1d2fea07..53941b58 100644 --- a/src/merge/resources/ats/resources/account_details/raw_client.py +++ b/src/merge/resources/ats/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/account_token/raw_client.py b/src/merge/resources/ats/resources/account_token/raw_client.py index 53fd7c38..4baf51d2 100644 --- a/src/merge/resources/ats/resources/account_token/raw_client.py +++ b/src/merge/resources/ats/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/activities/__init__.py b/src/merge/resources/ats/resources/activities/__init__.py index 2dc1f4da..a365e7bc 100644 --- a/src/merge/resources/ats/resources/activities/__init__.py +++ b/src/merge/resources/ats/resources/activities/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/activities/raw_client.py b/src/merge/resources/ats/resources/activities/raw_client.py index 8a26093e..d656f6c0 100644 --- a/src/merge/resources/ats/resources/activities/raw_client.py +++ b/src/merge/resources/ats/resources/activities/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.activity import Activity @@ -21,7 +20,6 @@ from .types.activities_list_request_show_enum_origins import ActivitiesListRequestShowEnumOrigins from .types.activities_retrieve_request_remote_fields import ActivitiesRetrieveRequestRemoteFields from .types.activities_retrieve_request_show_enum_origins import ActivitiesRetrieveRequestShowEnumOrigins -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -139,10 +137,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -207,10 +201,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -279,10 +269,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -319,10 +305,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -438,10 +420,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -506,10 +484,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -578,10 +552,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -618,8 +588,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/activities/types/__init__.py b/src/merge/resources/ats/resources/activities/types/__init__.py index 742468b0..319b7dae 100644 --- a/src/merge/resources/ats/resources/activities/types/__init__.py +++ b/src/merge/resources/ats/resources/activities/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/activities/types/activities_list_request_remote_fields.py b/src/merge/resources/ats/resources/activities/types/activities_list_request_remote_fields.py index 695bb3e9..bd203f38 100644 --- a/src/merge/resources/ats/resources/activities/types/activities_list_request_remote_fields.py +++ b/src/merge/resources/ats/resources/activities/types/activities_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ActivitiesListRequestRemoteFields(enum.StrEnum): +class ActivitiesListRequestRemoteFields(str, enum.Enum): ACTIVITY_TYPE = "activity_type" ACTIVITY_TYPE_VISIBILITY = "activity_type,visibility" VISIBILITY = "visibility" diff --git a/src/merge/resources/ats/resources/activities/types/activities_list_request_show_enum_origins.py b/src/merge/resources/ats/resources/activities/types/activities_list_request_show_enum_origins.py index 06052ece..c38d72ac 100644 --- a/src/merge/resources/ats/resources/activities/types/activities_list_request_show_enum_origins.py +++ b/src/merge/resources/ats/resources/activities/types/activities_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ActivitiesListRequestShowEnumOrigins(enum.StrEnum): +class ActivitiesListRequestShowEnumOrigins(str, enum.Enum): ACTIVITY_TYPE = "activity_type" ACTIVITY_TYPE_VISIBILITY = "activity_type,visibility" VISIBILITY = "visibility" diff --git a/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_remote_fields.py b/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_remote_fields.py index 232f2611..3290370e 100644 --- a/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_remote_fields.py +++ b/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ActivitiesRetrieveRequestRemoteFields(enum.StrEnum): +class ActivitiesRetrieveRequestRemoteFields(str, enum.Enum): ACTIVITY_TYPE = "activity_type" ACTIVITY_TYPE_VISIBILITY = "activity_type,visibility" VISIBILITY = "visibility" diff --git a/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_show_enum_origins.py b/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_show_enum_origins.py index f00fad5b..26439eb1 100644 --- a/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/ats/resources/activities/types/activities_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ActivitiesRetrieveRequestShowEnumOrigins(enum.StrEnum): +class ActivitiesRetrieveRequestShowEnumOrigins(str, enum.Enum): ACTIVITY_TYPE = "activity_type" ACTIVITY_TYPE_VISIBILITY = "activity_type,visibility" VISIBILITY = "visibility" diff --git a/src/merge/resources/ats/resources/applications/__init__.py b/src/merge/resources/ats/resources/applications/__init__.py index 15079471..e7b1622c 100644 --- a/src/merge/resources/ats/resources/applications/__init__.py +++ b/src/merge/resources/ats/resources/applications/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/applications/raw_client.py b/src/merge/resources/ats/resources/applications/raw_client.py index d6b6923d..25d21918 100644 --- a/src/merge/resources/ats/resources/applications/raw_client.py +++ b/src/merge/resources/ats/resources/applications/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.application import Application @@ -19,7 +18,6 @@ from ...types.paginated_application_list import PaginatedApplicationList from .types.applications_list_request_expand_item import ApplicationsListRequestExpandItem from .types.applications_retrieve_request_expand_item import ApplicationsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -154,10 +152,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -225,10 +219,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -289,10 +279,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def change_stage_create( @@ -361,10 +347,6 @@ def change_stage_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -410,10 +392,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -546,10 +524,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -617,10 +591,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -681,10 +651,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def change_stage_create( @@ -753,10 +719,6 @@ async def change_stage_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -802,8 +764,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/applications/types/__init__.py b/src/merge/resources/ats/resources/applications/types/__init__.py index f0f8736a..35c9fbb8 100644 --- a/src/merge/resources/ats/resources/applications/types/__init__.py +++ b/src/merge/resources/ats/resources/applications/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/applications/types/applications_list_request_expand_item.py b/src/merge/resources/ats/resources/applications/types/applications_list_request_expand_item.py index f6b31056..3c9011af 100644 --- a/src/merge/resources/ats/resources/applications/types/applications_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/applications/types/applications_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ApplicationsListRequestExpandItem(enum.StrEnum): +class ApplicationsListRequestExpandItem(str, enum.Enum): CANDIDATE = "candidate" CREDITED_TO = "credited_to" CURRENT_STAGE = "current_stage" diff --git a/src/merge/resources/ats/resources/applications/types/applications_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/applications/types/applications_retrieve_request_expand_item.py index 7b621443..19a3f612 100644 --- a/src/merge/resources/ats/resources/applications/types/applications_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/applications/types/applications_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ApplicationsRetrieveRequestExpandItem(enum.StrEnum): +class ApplicationsRetrieveRequestExpandItem(str, enum.Enum): CANDIDATE = "candidate" CREDITED_TO = "credited_to" CURRENT_STAGE = "current_stage" diff --git a/src/merge/resources/ats/resources/async_passthrough/__init__.py b/src/merge/resources/ats/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/ats/resources/async_passthrough/__init__.py +++ b/src/merge/resources/ats/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/async_passthrough/raw_client.py b/src/merge/resources/ats/resources/async_passthrough/raw_client.py index 7a733e18..e5c894c1 100644 --- a/src/merge/resources/ats/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/ats/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/async_passthrough/types/__init__.py b/src/merge/resources/ats/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/ats/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/ats/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/attachments/raw_client.py b/src/merge/resources/ats/resources/attachments/raw_client.py index 147ba265..a0e48daf 100644 --- a/src/merge/resources/ats/resources/attachments/raw_client.py +++ b/src/merge/resources/ats/resources/attachments/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.attachment import Attachment @@ -17,7 +16,6 @@ from ...types.attachment_response import AttachmentResponse from ...types.meta_response import MetaResponse from ...types.paginated_attachment_list import PaginatedAttachmentList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -137,10 +135,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -205,10 +199,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -279,10 +269,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -319,10 +305,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -440,10 +422,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -508,10 +486,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -582,10 +556,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -622,8 +592,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/audit_trail/raw_client.py b/src/merge/resources/ats/resources/audit_trail/raw_client.py index bfa31482..888a9a67 100644 --- a/src/merge/resources/ats/resources/audit_trail/raw_client.py +++ b/src/merge/resources/ats/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/available_actions/raw_client.py b/src/merge/resources/ats/resources/available_actions/raw_client.py index 6d0a7134..6157a71b 100644 --- a/src/merge/resources/ats/resources/available_actions/raw_client.py +++ b/src/merge/resources/ats/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/candidates/__init__.py b/src/merge/resources/ats/resources/candidates/__init__.py index ccec300c..7a95f560 100644 --- a/src/merge/resources/ats/resources/candidates/__init__.py +++ b/src/merge/resources/ats/resources/candidates/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/candidates/raw_client.py b/src/merge/resources/ats/resources/candidates/raw_client.py index b2766059..d6a134ff 100644 --- a/src/merge/resources/ats/resources/candidates/raw_client.py +++ b/src/merge/resources/ats/resources/candidates/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.candidate import Candidate @@ -21,7 +20,6 @@ from ...types.patched_candidate_request import PatchedCandidateRequest from .types.candidates_list_request_expand_item import CandidatesListRequestExpandItem from .types.candidates_retrieve_request_expand_item import CandidatesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -146,10 +144,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -214,10 +208,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -278,10 +268,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -349,10 +335,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def ignore_create( @@ -394,10 +376,6 @@ def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -436,10 +414,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -476,10 +450,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -602,10 +572,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -670,10 +636,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -734,10 +696,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -805,10 +763,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def ignore_create( @@ -850,10 +804,6 @@ async def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -892,10 +842,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -932,8 +878,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/candidates/types/__init__.py b/src/merge/resources/ats/resources/candidates/types/__init__.py index fc851f9e..1d2180eb 100644 --- a/src/merge/resources/ats/resources/candidates/types/__init__.py +++ b/src/merge/resources/ats/resources/candidates/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/candidates/types/candidates_list_request_expand_item.py b/src/merge/resources/ats/resources/candidates/types/candidates_list_request_expand_item.py index c441608e..94d1c115 100644 --- a/src/merge/resources/ats/resources/candidates/types/candidates_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/candidates/types/candidates_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CandidatesListRequestExpandItem(enum.StrEnum): +class CandidatesListRequestExpandItem(str, enum.Enum): APPLICATIONS = "applications" ATTACHMENTS = "attachments" diff --git a/src/merge/resources/ats/resources/candidates/types/candidates_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/candidates/types/candidates_retrieve_request_expand_item.py index dc017179..8e68683e 100644 --- a/src/merge/resources/ats/resources/candidates/types/candidates_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/candidates/types/candidates_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CandidatesRetrieveRequestExpandItem(enum.StrEnum): +class CandidatesRetrieveRequestExpandItem(str, enum.Enum): APPLICATIONS = "applications" ATTACHMENTS = "attachments" diff --git a/src/merge/resources/ats/resources/delete_account/raw_client.py b/src/merge/resources/ats/resources/delete_account/raw_client.py index eaf097c0..e9752440 100644 --- a/src/merge/resources/ats/resources/delete_account/raw_client.py +++ b/src/merge/resources/ats/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/departments/raw_client.py b/src/merge/resources/ats/resources/departments/raw_client.py index bf6f1c5d..3e6908a0 100644 --- a/src/merge/resources/ats/resources/departments/raw_client.py +++ b/src/merge/resources/ats/resources/departments/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.department import Department from ...types.paginated_department_list import PaginatedDepartmentList -from pydantic import ValidationError class RawDepartmentsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/eeocs/__init__.py b/src/merge/resources/ats/resources/eeocs/__init__.py index 2a3b290e..76956393 100644 --- a/src/merge/resources/ats/resources/eeocs/__init__.py +++ b/src/merge/resources/ats/resources/eeocs/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/eeocs/raw_client.py b/src/merge/resources/ats/resources/eeocs/raw_client.py index 7d9af62d..a48c785f 100644 --- a/src/merge/resources/ats/resources/eeocs/raw_client.py +++ b/src/merge/resources/ats/resources/eeocs/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.eeoc import Eeoc @@ -18,7 +17,6 @@ from .types.eeocs_list_request_show_enum_origins import EeocsListRequestShowEnumOrigins from .types.eeocs_retrieve_request_remote_fields import EeocsRetrieveRequestRemoteFields from .types.eeocs_retrieve_request_show_enum_origins import EeocsRetrieveRequestShowEnumOrigins -from pydantic import ValidationError class RawEeocsClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -209,10 +203,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -330,10 +320,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -404,8 +390,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/eeocs/types/__init__.py b/src/merge/resources/ats/resources/eeocs/types/__init__.py index 404eaa28..31361448 100644 --- a/src/merge/resources/ats/resources/eeocs/types/__init__.py +++ b/src/merge/resources/ats/resources/eeocs/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_remote_fields.py b/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_remote_fields.py index 1ee913c8..97aa5294 100644 --- a/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_remote_fields.py +++ b/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EeocsListRequestRemoteFields(enum.StrEnum): +class EeocsListRequestRemoteFields(str, enum.Enum): DISABILITY_STATUS = "disability_status" DISABILITY_STATUS_GENDER = "disability_status,gender" DISABILITY_STATUS_GENDER_RACE = "disability_status,gender,race" diff --git a/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_show_enum_origins.py b/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_show_enum_origins.py index a8d16e09..0955f416 100644 --- a/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_show_enum_origins.py +++ b/src/merge/resources/ats/resources/eeocs/types/eeocs_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EeocsListRequestShowEnumOrigins(enum.StrEnum): +class EeocsListRequestShowEnumOrigins(str, enum.Enum): DISABILITY_STATUS = "disability_status" DISABILITY_STATUS_GENDER = "disability_status,gender" DISABILITY_STATUS_GENDER_RACE = "disability_status,gender,race" diff --git a/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_remote_fields.py b/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_remote_fields.py index ee01f87e..7c69e5bc 100644 --- a/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_remote_fields.py +++ b/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EeocsRetrieveRequestRemoteFields(enum.StrEnum): +class EeocsRetrieveRequestRemoteFields(str, enum.Enum): DISABILITY_STATUS = "disability_status" DISABILITY_STATUS_GENDER = "disability_status,gender" DISABILITY_STATUS_GENDER_RACE = "disability_status,gender,race" diff --git a/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_show_enum_origins.py b/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_show_enum_origins.py index 2a12865d..6ee784a3 100644 --- a/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/ats/resources/eeocs/types/eeocs_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EeocsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class EeocsRetrieveRequestShowEnumOrigins(str, enum.Enum): DISABILITY_STATUS = "disability_status" DISABILITY_STATUS_GENDER = "disability_status,gender" DISABILITY_STATUS_GENDER_RACE = "disability_status,gender,race" diff --git a/src/merge/resources/ats/resources/field_mapping/client.py b/src/merge/resources/ats/resources/field_mapping/client.py index 0a3bfa2c..a85d2668 100644 --- a/src/merge/resources/ats/resources/field_mapping/client.py +++ b/src/merge/resources/ats/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -92,7 +92,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -187,7 +187,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -203,7 +203,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -388,7 +388,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -407,7 +407,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -518,7 +518,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -534,7 +534,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/ats/resources/field_mapping/raw_client.py b/src/merge/resources/ats/resources/field_mapping/raw_client.py index 19f5924b..f2f2eb3e 100644 --- a/src/merge/resources/ats/resources/field_mapping/raw_client.py +++ b/src/merge/resources/ats/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -97,7 +91,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -157,10 +151,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -199,10 +189,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -210,7 +196,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -226,7 +212,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -277,10 +263,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -331,10 +313,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -371,10 +349,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -425,10 +399,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -436,7 +406,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -455,7 +425,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -515,10 +485,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -557,10 +523,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -568,7 +530,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -584,7 +546,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -635,10 +597,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -689,10 +647,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -729,8 +683,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/force_resync/raw_client.py b/src/merge/resources/ats/resources/force_resync/raw_client.py index dd2c15f7..49601e04 100644 --- a/src/merge/resources/ats/resources/force_resync/raw_client.py +++ b/src/merge/resources/ats/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/generate_key/raw_client.py b/src/merge/resources/ats/resources/generate_key/raw_client.py index bde4e05c..91614905 100644 --- a/src/merge/resources/ats/resources/generate_key/raw_client.py +++ b/src/merge/resources/ats/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/interviews/__init__.py b/src/merge/resources/ats/resources/interviews/__init__.py index 7864a9ff..2cff90b8 100644 --- a/src/merge/resources/ats/resources/interviews/__init__.py +++ b/src/merge/resources/ats/resources/interviews/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/interviews/raw_client.py b/src/merge/resources/ats/resources/interviews/raw_client.py index 6d2fab82..054bd55f 100644 --- a/src/merge/resources/ats/resources/interviews/raw_client.py +++ b/src/merge/resources/ats/resources/interviews/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -19,7 +18,6 @@ from ...types.scheduled_interview_response import ScheduledInterviewResponse from .types.interviews_list_request_expand_item import InterviewsListRequestExpandItem from .types.interviews_retrieve_request_expand_item import InterviewsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -154,10 +152,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -222,10 +216,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -296,10 +286,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -336,10 +322,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -472,10 +454,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -540,10 +518,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -614,10 +588,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -654,8 +624,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/interviews/types/__init__.py b/src/merge/resources/ats/resources/interviews/types/__init__.py index bab1bd37..bec156d5 100644 --- a/src/merge/resources/ats/resources/interviews/types/__init__.py +++ b/src/merge/resources/ats/resources/interviews/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/interviews/types/interviews_list_request_expand_item.py b/src/merge/resources/ats/resources/interviews/types/interviews_list_request_expand_item.py index 3644f53e..a0dcc590 100644 --- a/src/merge/resources/ats/resources/interviews/types/interviews_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/interviews/types/interviews_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InterviewsListRequestExpandItem(enum.StrEnum): +class InterviewsListRequestExpandItem(str, enum.Enum): APPLICATION = "application" INTERVIEWERS = "interviewers" JOB_INTERVIEW_STAGE = "job_interview_stage" diff --git a/src/merge/resources/ats/resources/interviews/types/interviews_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/interviews/types/interviews_retrieve_request_expand_item.py index 35cb4a9a..c3433115 100644 --- a/src/merge/resources/ats/resources/interviews/types/interviews_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/interviews/types/interviews_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class InterviewsRetrieveRequestExpandItem(enum.StrEnum): +class InterviewsRetrieveRequestExpandItem(str, enum.Enum): APPLICATION = "application" INTERVIEWERS = "interviewers" JOB_INTERVIEW_STAGE = "job_interview_stage" diff --git a/src/merge/resources/ats/resources/issues/__init__.py b/src/merge/resources/ats/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/ats/resources/issues/__init__.py +++ b/src/merge/resources/ats/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/issues/raw_client.py b/src/merge/resources/ats/resources/issues/raw_client.py index f4b9a716..634bcd60 100644 --- a/src/merge/resources/ats/resources/issues/raw_client.py +++ b/src/merge/resources/ats/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/issues/types/__init__.py b/src/merge/resources/ats/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/ats/resources/issues/types/__init__.py +++ b/src/merge/resources/ats/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/issues/types/issues_list_request_status.py b/src/merge/resources/ats/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/ats/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/ats/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/ats/resources/job_interview_stages/raw_client.py b/src/merge/resources/ats/resources/job_interview_stages/raw_client.py index 6159651a..ff780c1a 100644 --- a/src/merge/resources/ats/resources/job_interview_stages/raw_client.py +++ b/src/merge/resources/ats/resources/job_interview_stages/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.job_interview_stage import JobInterviewStage from ...types.paginated_job_interview_stage_list import PaginatedJobInterviewStageList -from pydantic import ValidationError class RawJobInterviewStagesClient: @@ -119,10 +117,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -181,10 +175,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -290,10 +280,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -352,8 +338,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/job_postings/__init__.py b/src/merge/resources/ats/resources/job_postings/__init__.py index 8b507898..64d6e432 100644 --- a/src/merge/resources/ats/resources/job_postings/__init__.py +++ b/src/merge/resources/ats/resources/job_postings/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/job_postings/raw_client.py b/src/merge/resources/ats/resources/job_postings/raw_client.py index 54a4d1f9..9ee3e898 100644 --- a/src/merge/resources/ats/resources/job_postings/raw_client.py +++ b/src/merge/resources/ats/resources/job_postings/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.job_posting import JobPosting from ...types.paginated_job_posting_list import PaginatedJobPostingList from .types.job_postings_list_request_status import JobPostingsListRequestStatus -from pydantic import ValidationError class RawJobPostingsClient: @@ -126,10 +124,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -188,10 +182,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -303,10 +293,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -365,8 +351,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/job_postings/types/__init__.py b/src/merge/resources/ats/resources/job_postings/types/__init__.py index efa5767c..1e05a87a 100644 --- a/src/merge/resources/ats/resources/job_postings/types/__init__.py +++ b/src/merge/resources/ats/resources/job_postings/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/job_postings/types/job_postings_list_request_status.py b/src/merge/resources/ats/resources/job_postings/types/job_postings_list_request_status.py index 9fd4568a..adbba7ee 100644 --- a/src/merge/resources/ats/resources/job_postings/types/job_postings_list_request_status.py +++ b/src/merge/resources/ats/resources/job_postings/types/job_postings_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JobPostingsListRequestStatus(enum.StrEnum): +class JobPostingsListRequestStatus(str, enum.Enum): CLOSED = "CLOSED" DRAFT = "DRAFT" INTERNAL = "INTERNAL" diff --git a/src/merge/resources/ats/resources/jobs/__init__.py b/src/merge/resources/ats/resources/jobs/__init__.py index 2a6dca06..4feabeec 100644 --- a/src/merge/resources/ats/resources/jobs/__init__.py +++ b/src/merge/resources/ats/resources/jobs/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/jobs/raw_client.py b/src/merge/resources/ats/resources/jobs/raw_client.py index ade5b0fc..8ab585b2 100644 --- a/src/merge/resources/ats/resources/jobs/raw_client.py +++ b/src/merge/resources/ats/resources/jobs/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.job import Job @@ -19,7 +18,6 @@ from .types.jobs_list_request_status import JobsListRequestStatus from .types.jobs_retrieve_request_expand_item import JobsRetrieveRequestExpandItem from .types.jobs_screening_questions_list_request_expand_item import JobsScreeningQuestionsListRequestExpandItem -from pydantic import ValidationError class RawJobsClient: @@ -152,10 +150,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -226,10 +220,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def screening_questions_list( @@ -308,10 +298,6 @@ def screening_questions_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -445,10 +431,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -519,10 +501,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def screening_questions_list( @@ -601,8 +579,4 @@ async def screening_questions_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/jobs/types/__init__.py b/src/merge/resources/ats/resources/jobs/types/__init__.py index 42ed96d8..00482c7a 100644 --- a/src/merge/resources/ats/resources/jobs/types/__init__.py +++ b/src/merge/resources/ats/resources/jobs/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/jobs/types/jobs_list_request_expand_item.py b/src/merge/resources/ats/resources/jobs/types/jobs_list_request_expand_item.py index 80754c3d..65a316a6 100644 --- a/src/merge/resources/ats/resources/jobs/types/jobs_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/jobs/types/jobs_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JobsListRequestExpandItem(enum.StrEnum): +class JobsListRequestExpandItem(str, enum.Enum): DEPARTMENTS = "departments" HIRING_MANAGERS = "hiring_managers" JOB_POSTINGS = "job_postings" diff --git a/src/merge/resources/ats/resources/jobs/types/jobs_list_request_status.py b/src/merge/resources/ats/resources/jobs/types/jobs_list_request_status.py index 54e576e5..08fec15e 100644 --- a/src/merge/resources/ats/resources/jobs/types/jobs_list_request_status.py +++ b/src/merge/resources/ats/resources/jobs/types/jobs_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JobsListRequestStatus(enum.StrEnum): +class JobsListRequestStatus(str, enum.Enum): ARCHIVED = "ARCHIVED" CLOSED = "CLOSED" DRAFT = "DRAFT" diff --git a/src/merge/resources/ats/resources/jobs/types/jobs_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/jobs/types/jobs_retrieve_request_expand_item.py index 2b08f67e..5826fa06 100644 --- a/src/merge/resources/ats/resources/jobs/types/jobs_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/jobs/types/jobs_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JobsRetrieveRequestExpandItem(enum.StrEnum): +class JobsRetrieveRequestExpandItem(str, enum.Enum): DEPARTMENTS = "departments" HIRING_MANAGERS = "hiring_managers" JOB_POSTINGS = "job_postings" diff --git a/src/merge/resources/ats/resources/jobs/types/jobs_screening_questions_list_request_expand_item.py b/src/merge/resources/ats/resources/jobs/types/jobs_screening_questions_list_request_expand_item.py index 6fc38fc8..e4ec2b29 100644 --- a/src/merge/resources/ats/resources/jobs/types/jobs_screening_questions_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/jobs/types/jobs_screening_questions_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class JobsScreeningQuestionsListRequestExpandItem(enum.StrEnum): +class JobsScreeningQuestionsListRequestExpandItem(str, enum.Enum): JOB = "job" OPTIONS = "options" diff --git a/src/merge/resources/ats/resources/link_token/__init__.py b/src/merge/resources/ats/resources/link_token/__init__.py index 15700960..3bad6adf 100644 --- a/src/merge/resources/ats/resources/link_token/__init__.py +++ b/src/merge/resources/ats/resources/link_token/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/link_token/client.py b/src/merge/resources/ats/resources/link_token/client.py index 7684469d..dabb5108 100644 --- a/src/merge/resources/ats/resources/link_token/client.py +++ b/src/merge/resources/ats/resources/link_token/client.py @@ -47,7 +47,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -94,7 +94,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -172,7 +172,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -219,7 +219,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] diff --git a/src/merge/resources/ats/resources/link_token/raw_client.py b/src/merge/resources/ats/resources/link_token/raw_client.py index c6be03b6..28b931bb 100644 --- a/src/merge/resources/ats/resources/link_token/raw_client.py +++ b/src/merge/resources/ats/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -14,7 +13,6 @@ from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest from ...types.link_token import LinkToken from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +39,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[LinkToken]: """ @@ -88,7 +86,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -136,10 +134,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,7 +158,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[LinkToken]: """ @@ -211,7 +205,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -259,8 +253,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/link_token/types/__init__.py b/src/merge/resources/ats/resources/link_token/types/__init__.py index dad2a14a..e9a7d3b9 100644 --- a/src/merge/resources/ats/resources/link_token/types/__init__.py +++ b/src/merge/resources/ats/resources/link_token/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/linked_accounts/__init__.py b/src/merge/resources/ats/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/ats/resources/linked_accounts/__init__.py +++ b/src/merge/resources/ats/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/linked_accounts/raw_client.py b/src/merge/resources/ats/resources/linked_accounts/raw_client.py index a2246068..24f3b5ac 100644 --- a/src/merge/resources/ats/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/ats/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -249,8 +243,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/linked_accounts/types/__init__.py b/src/merge/resources/ats/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/ats/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/ats/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/ats/resources/linked_accounts/types/linked_accounts_list_request_category.py index ce04d1de..bd873ea8 100644 --- a/src/merge/resources/ats/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/ats/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CRM = "crm" diff --git a/src/merge/resources/ats/resources/offers/__init__.py b/src/merge/resources/ats/resources/offers/__init__.py index 92239f7d..3eeed634 100644 --- a/src/merge/resources/ats/resources/offers/__init__.py +++ b/src/merge/resources/ats/resources/offers/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/offers/raw_client.py b/src/merge/resources/ats/resources/offers/raw_client.py index 821d9c1b..5b9282ae 100644 --- a/src/merge/resources/ats/resources/offers/raw_client.py +++ b/src/merge/resources/ats/resources/offers/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.offer import Offer @@ -17,7 +16,6 @@ from .types.offers_list_request_expand_item import OffersListRequestExpandItem from .types.offers_list_request_status import OffersListRequestStatus from .types.offers_retrieve_request_expand_item import OffersRetrieveRequestExpandItem -from pydantic import ValidationError class RawOffersClient: @@ -154,10 +152,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -228,10 +222,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -369,10 +359,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -443,8 +429,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/offers/types/__init__.py b/src/merge/resources/ats/resources/offers/types/__init__.py index ccbd015d..64f2772b 100644 --- a/src/merge/resources/ats/resources/offers/types/__init__.py +++ b/src/merge/resources/ats/resources/offers/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/offers/types/offers_list_request_expand_item.py b/src/merge/resources/ats/resources/offers/types/offers_list_request_expand_item.py index 224335cb..8b386364 100644 --- a/src/merge/resources/ats/resources/offers/types/offers_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/offers/types/offers_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OffersListRequestExpandItem(enum.StrEnum): +class OffersListRequestExpandItem(str, enum.Enum): APPLICATION = "application" CREATOR = "creator" diff --git a/src/merge/resources/ats/resources/offers/types/offers_list_request_status.py b/src/merge/resources/ats/resources/offers/types/offers_list_request_status.py index 075c30a2..8b23c596 100644 --- a/src/merge/resources/ats/resources/offers/types/offers_list_request_status.py +++ b/src/merge/resources/ats/resources/offers/types/offers_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OffersListRequestStatus(enum.StrEnum): +class OffersListRequestStatus(str, enum.Enum): APPROVAL_SENT = "APPROVAL-SENT" APPROVED = "APPROVED" DENIED = "DENIED" diff --git a/src/merge/resources/ats/resources/offers/types/offers_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/offers/types/offers_retrieve_request_expand_item.py index b7802a05..d65095df 100644 --- a/src/merge/resources/ats/resources/offers/types/offers_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/offers/types/offers_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OffersRetrieveRequestExpandItem(enum.StrEnum): +class OffersRetrieveRequestExpandItem(str, enum.Enum): APPLICATION = "application" CREATOR = "creator" diff --git a/src/merge/resources/ats/resources/offices/raw_client.py b/src/merge/resources/ats/resources/offices/raw_client.py index 1eab9fbe..7c6d528b 100644 --- a/src/merge/resources/ats/resources/offices/raw_client.py +++ b/src/merge/resources/ats/resources/offices/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.office import Office from ...types.paginated_office_list import PaginatedOfficeList -from pydantic import ValidationError class RawOfficesClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/passthrough/raw_client.py b/src/merge/resources/ats/resources/passthrough/raw_client.py index 41a4ffd4..610aae4f 100644 --- a/src/merge/resources/ats/resources/passthrough/raw_client.py +++ b/src/merge/resources/ats/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/regenerate_key/raw_client.py b/src/merge/resources/ats/resources/regenerate_key/raw_client.py index 9f16e2e6..7c563aa6 100644 --- a/src/merge/resources/ats/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/ats/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/reject_reasons/raw_client.py b/src/merge/resources/ats/resources/reject_reasons/raw_client.py index eeb836f9..036206c8 100644 --- a/src/merge/resources/ats/resources/reject_reasons/raw_client.py +++ b/src/merge/resources/ats/resources/reject_reasons/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_reject_reason_list import PaginatedRejectReasonList from ...types.reject_reason import RejectReason -from pydantic import ValidationError class RawRejectReasonsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/scopes/raw_client.py b/src/merge/resources/ats/resources/scopes/raw_client.py index 0c35b97b..498b5489 100644 --- a/src/merge/resources/ats/resources/scopes/raw_client.py +++ b/src/merge/resources/ats/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/scorecards/__init__.py b/src/merge/resources/ats/resources/scorecards/__init__.py index c3022c4b..bb2567f6 100644 --- a/src/merge/resources/ats/resources/scorecards/__init__.py +++ b/src/merge/resources/ats/resources/scorecards/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/scorecards/raw_client.py b/src/merge/resources/ats/resources/scorecards/raw_client.py index 4fd78976..bde15ffa 100644 --- a/src/merge/resources/ats/resources/scorecards/raw_client.py +++ b/src/merge/resources/ats/resources/scorecards/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_scorecard_list import PaginatedScorecardList from ...types.scorecard import Scorecard from .types.scorecards_list_request_expand_item import ScorecardsListRequestExpandItem from .types.scorecards_retrieve_request_expand_item import ScorecardsRetrieveRequestExpandItem -from pydantic import ValidationError class RawScorecardsClient: @@ -143,10 +141,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -217,10 +211,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -348,10 +338,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -422,8 +408,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/scorecards/types/__init__.py b/src/merge/resources/ats/resources/scorecards/types/__init__.py index 3ae8464b..d4ba55ae 100644 --- a/src/merge/resources/ats/resources/scorecards/types/__init__.py +++ b/src/merge/resources/ats/resources/scorecards/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ats/resources/scorecards/types/scorecards_list_request_expand_item.py b/src/merge/resources/ats/resources/scorecards/types/scorecards_list_request_expand_item.py index e8830dc1..2c0dbca4 100644 --- a/src/merge/resources/ats/resources/scorecards/types/scorecards_list_request_expand_item.py +++ b/src/merge/resources/ats/resources/scorecards/types/scorecards_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ScorecardsListRequestExpandItem(enum.StrEnum): +class ScorecardsListRequestExpandItem(str, enum.Enum): APPLICATION = "application" INTERVIEW = "interview" INTERVIEWER = "interviewer" diff --git a/src/merge/resources/ats/resources/scorecards/types/scorecards_retrieve_request_expand_item.py b/src/merge/resources/ats/resources/scorecards/types/scorecards_retrieve_request_expand_item.py index 151ba65e..76a28f62 100644 --- a/src/merge/resources/ats/resources/scorecards/types/scorecards_retrieve_request_expand_item.py +++ b/src/merge/resources/ats/resources/scorecards/types/scorecards_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ScorecardsRetrieveRequestExpandItem(enum.StrEnum): +class ScorecardsRetrieveRequestExpandItem(str, enum.Enum): APPLICATION = "application" INTERVIEW = "interview" INTERVIEWER = "interviewer" diff --git a/src/merge/resources/ats/resources/sync_status/raw_client.py b/src/merge/resources/ats/resources/sync_status/raw_client.py index a287d52f..6425060a 100644 --- a/src/merge/resources/ats/resources/sync_status/raw_client.py +++ b/src/merge/resources/ats/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/tags/raw_client.py b/src/merge/resources/ats/resources/tags/raw_client.py index 2becad1d..a6f0fb92 100644 --- a/src/merge/resources/ats/resources/tags/raw_client.py +++ b/src/merge/resources/ats/resources/tags/raw_client.py @@ -8,11 +8,9 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_tag_list import PaginatedTagList -from pydantic import ValidationError class RawTagsClient: @@ -107,10 +105,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -206,8 +200,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/users/raw_client.py b/src/merge/resources/ats/resources/users/raw_client.py index 7b80551a..363fd65e 100644 --- a/src/merge/resources/ats/resources/users/raw_client.py +++ b/src/merge/resources/ats/resources/users/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_remote_user_list import PaginatedRemoteUserList from ...types.remote_user import RemoteUser -from pydantic import ValidationError class RawUsersClient: @@ -124,10 +122,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -191,10 +185,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -372,8 +358,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/resources/webhook_receivers/raw_client.py b/src/merge/resources/ats/resources/webhook_receivers/raw_client.py index abfd719b..0df96f9e 100644 --- a/src/merge/resources/ats/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/ats/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ats/types/__init__.py b/src/merge/resources/ats/types/__init__.py index 1d4d2145..3d09de06 100644 --- a/src/merge/resources/ats/types/__init__.py +++ b/src/merge/resources/ats/types/__init__.py @@ -220,7 +220,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .tag import Tag from .url import Url from .url_request import UrlRequest @@ -445,7 +447,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "Tag": ".tag", "Url": ".url", "UrlRequest": ".url_request", @@ -466,10 +470,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -694,7 +696,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Tag", "Url", "UrlRequest", diff --git a/src/merge/resources/ats/types/access_role_enum.py b/src/merge/resources/ats/types/access_role_enum.py index 9bae7f25..fc75b705 100644 --- a/src/merge/resources/ats/types/access_role_enum.py +++ b/src/merge/resources/ats/types/access_role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccessRoleEnum(enum.StrEnum): +class AccessRoleEnum(str, enum.Enum): """ * `SUPER_ADMIN` - SUPER_ADMIN * `ADMIN` - ADMIN diff --git a/src/merge/resources/ats/types/account_details_and_actions.py b/src/merge/resources/ats/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/ats/types/account_details_and_actions.py +++ b/src/merge/resources/ats/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/account_details_and_actions_status_enum.py b/src/merge/resources/ats/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/ats/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/ats/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/ats/types/account_integration.py b/src/merge/resources/ats/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/ats/types/account_integration.py +++ b/src/merge/resources/ats/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/ats/types/activity.py b/src/merge/resources/ats/types/activity.py index 06e9b9a5..3a794363 100644 --- a/src/merge/resources/ats/types/activity.py +++ b/src/merge/resources/ats/types/activity.py @@ -81,7 +81,7 @@ class Activity(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/activity_request.py b/src/merge/resources/ats/types/activity_request.py index d83b44f2..5a6a4f30 100644 --- a/src/merge/resources/ats/types/activity_request.py +++ b/src/merge/resources/ats/types/activity_request.py @@ -53,8 +53,8 @@ class ActivityRequest(UncheckedBaseModel): """ candidate: typing.Optional[str] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/activity_type_enum.py b/src/merge/resources/ats/types/activity_type_enum.py index 08f00f8d..1ce3bf63 100644 --- a/src/merge/resources/ats/types/activity_type_enum.py +++ b/src/merge/resources/ats/types/activity_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ActivityTypeEnum(enum.StrEnum): +class ActivityTypeEnum(str, enum.Enum): """ * `NOTE` - NOTE * `EMAIL` - EMAIL diff --git a/src/merge/resources/ats/types/advanced_metadata.py b/src/merge/resources/ats/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/ats/types/advanced_metadata.py +++ b/src/merge/resources/ats/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/application.py b/src/merge/resources/ats/types/application.py index 716dee2c..3353858a 100644 --- a/src/merge/resources/ats/types/application.py +++ b/src/merge/resources/ats/types/application.py @@ -89,7 +89,7 @@ class Application(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -102,19 +102,11 @@ class Config: extra = pydantic.Extra.allow -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 +from .application_candidate import ApplicationCandidate # noqa: E402, F401, I001 +from .application_offers_item import ApplicationOffersItem # noqa: E402, F401, I001 + +update_forward_refs(Application) diff --git a/src/merge/resources/ats/types/application_request.py b/src/merge/resources/ats/types/application_request.py index 5eaa0293..5c75afbb 100644 --- a/src/merge/resources/ats/types/application_request.py +++ b/src/merge/resources/ats/types/application_request.py @@ -70,8 +70,8 @@ class ApplicationRequest(UncheckedBaseModel): """ remote_template_id: typing.Optional[str] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -83,4 +83,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(ApplicationRequest) diff --git a/src/merge/resources/ats/types/application_response.py b/src/merge/resources/ats/types/application_response.py index ce5849f3..ba7953b7 100644 --- a/src/merge/resources/ats/types/application_response.py +++ b/src/merge/resources/ats/types/application_response.py @@ -28,21 +28,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - ApplicationResponse, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + +update_forward_refs(ApplicationResponse) diff --git a/src/merge/resources/ats/types/attachment.py b/src/merge/resources/ats/types/attachment.py index e6d5bc98..8e988378 100644 --- a/src/merge/resources/ats/types/attachment.py +++ b/src/merge/resources/ats/types/attachment.py @@ -65,7 +65,7 @@ class Attachment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/attachment_request.py b/src/merge/resources/ats/types/attachment_request.py index 024d0d10..55ebdfff 100644 --- a/src/merge/resources/ats/types/attachment_request.py +++ b/src/merge/resources/ats/types/attachment_request.py @@ -42,8 +42,8 @@ class AttachmentRequest(UncheckedBaseModel): * `OTHER` - OTHER """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/attachment_type_enum.py b/src/merge/resources/ats/types/attachment_type_enum.py index dfadb4b5..51124af9 100644 --- a/src/merge/resources/ats/types/attachment_type_enum.py +++ b/src/merge/resources/ats/types/attachment_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AttachmentTypeEnum(enum.StrEnum): +class AttachmentTypeEnum(str, enum.Enum): """ * `RESUME` - RESUME * `COVER_LETTER` - COVER_LETTER diff --git a/src/merge/resources/ats/types/candidate.py b/src/merge/resources/ats/types/candidate.py index 3beefa38..071e4a1e 100644 --- a/src/merge/resources/ats/types/candidate.py +++ b/src/merge/resources/ats/types/candidate.py @@ -115,7 +115,7 @@ class Candidate(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -128,19 +128,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - Candidate, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 +from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, F401, I001 + +update_forward_refs(Candidate) diff --git a/src/merge/resources/ats/types/candidate_request.py b/src/merge/resources/ats/types/candidate_request.py index 91df6664..a7b112b9 100644 --- a/src/merge/resources/ats/types/candidate_request.py +++ b/src/merge/resources/ats/types/candidate_request.py @@ -87,8 +87,8 @@ class CandidateRequest(UncheckedBaseModel): """ remote_template_id: typing.Optional[str] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -100,4 +100,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(CandidateRequest) diff --git a/src/merge/resources/ats/types/candidate_response.py b/src/merge/resources/ats/types/candidate_response.py index a2389631..2bb8b8cc 100644 --- a/src/merge/resources/ats/types/candidate_response.py +++ b/src/merge/resources/ats/types/candidate_response.py @@ -28,21 +28,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - CandidateResponse, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + +update_forward_refs(CandidateResponse) diff --git a/src/merge/resources/ats/types/categories_enum.py b/src/merge/resources/ats/types/categories_enum.py index 82308151..3f2dc5a9 100644 --- a/src/merge/resources/ats/types/categories_enum.py +++ b/src/merge/resources/ats/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/ats/types/category_enum.py b/src/merge/resources/ats/types/category_enum.py index 9a2fa8c7..d37e48f5 100644 --- a/src/merge/resources/ats/types/category_enum.py +++ b/src/merge/resources/ats/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/ats/types/data_passthrough_request.py b/src/merge/resources/ats/types/data_passthrough_request.py index df3af029..c9f0a799 100644 --- a/src/merge/resources/ats/types/data_passthrough_request.py +++ b/src/merge/resources/ats/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/ats/types/department.py b/src/merge/resources/ats/types/department.py index 0eac0de1..7098c001 100644 --- a/src/merge/resources/ats/types/department.py +++ b/src/merge/resources/ats/types/department.py @@ -44,7 +44,7 @@ class Department(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/disability_status_enum.py b/src/merge/resources/ats/types/disability_status_enum.py index faf2bf27..e0987cfe 100644 --- a/src/merge/resources/ats/types/disability_status_enum.py +++ b/src/merge/resources/ats/types/disability_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class DisabilityStatusEnum(enum.StrEnum): +class DisabilityStatusEnum(str, enum.Enum): """ * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY diff --git a/src/merge/resources/ats/types/eeoc.py b/src/merge/resources/ats/types/eeoc.py index dbf8abce..dbdae892 100644 --- a/src/merge/resources/ats/types/eeoc.py +++ b/src/merge/resources/ats/types/eeoc.py @@ -99,7 +99,7 @@ class Eeoc(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -112,4 +112,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(Eeoc) diff --git a/src/merge/resources/ats/types/email_address_request.py b/src/merge/resources/ats/types/email_address_request.py index 2a000845..7bd79d2c 100644 --- a/src/merge/resources/ats/types/email_address_request.py +++ b/src/merge/resources/ats/types/email_address_request.py @@ -31,8 +31,8 @@ class EmailAddressRequest(UncheckedBaseModel): * `OTHER` - OTHER """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/email_address_type_enum.py b/src/merge/resources/ats/types/email_address_type_enum.py index dde90799..dd6b141e 100644 --- a/src/merge/resources/ats/types/email_address_type_enum.py +++ b/src/merge/resources/ats/types/email_address_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EmailAddressTypeEnum(enum.StrEnum): +class EmailAddressTypeEnum(str, enum.Enum): """ * `PERSONAL` - PERSONAL * `WORK` - WORK diff --git a/src/merge/resources/ats/types/enabled_actions_enum.py b/src/merge/resources/ats/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/ats/types/enabled_actions_enum.py +++ b/src/merge/resources/ats/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/ats/types/encoding_enum.py b/src/merge/resources/ats/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/ats/types/encoding_enum.py +++ b/src/merge/resources/ats/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/ats/types/event_type_enum.py b/src/merge/resources/ats/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/ats/types/event_type_enum.py +++ b/src/merge/resources/ats/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/ats/types/external_target_field_api_response.py b/src/merge/resources/ats/types/external_target_field_api_response.py index 768bb05d..2f4ac0fc 100644 --- a/src/merge/resources/ats/types/external_target_field_api_response.py +++ b/src/merge/resources/ats/types/external_target_field_api_response.py @@ -3,88 +3,36 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - activity: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Activity"), - pydantic.Field(alias="Activity"), - ] = None - application: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Application"), - pydantic.Field(alias="Application"), - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - candidate: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Candidate"), - pydantic.Field(alias="Candidate"), - ] = None - department: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Department"), - pydantic.Field(alias="Department"), - ] = None - eeoc: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="EEOC"), pydantic.Field(alias="EEOC") - ] = None - scheduled_interview: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="ScheduledInterview"), - pydantic.Field(alias="ScheduledInterview"), - ] = None - job: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Job"), pydantic.Field(alias="Job") - ] = None - job_posting: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="JobPosting"), - pydantic.Field(alias="JobPosting"), - ] = None - job_interview_stage: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="JobInterviewStage"), - pydantic.Field(alias="JobInterviewStage"), - ] = None - offer: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Offer"), - pydantic.Field(alias="Offer"), - ] = None - office: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Office"), - pydantic.Field(alias="Office"), - ] = None - reject_reason: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="RejectReason"), - pydantic.Field(alias="RejectReason"), - ] = None - scorecard: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Scorecard"), - pydantic.Field(alias="Scorecard"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - remote_user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="RemoteUser"), - pydantic.Field(alias="RemoteUser"), - ] = None + activity: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Activity", default=None) + application: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="Application", default=None + ) + attachment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Attachment", default=None) + candidate: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Candidate", default=None) + department: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Department", default=None) + eeoc: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="EEOC", default=None) + scheduled_interview: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="ScheduledInterview", default=None + ) + job: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Job", default=None) + job_posting: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="JobPosting", default=None) + job_interview_stage: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="JobInterviewStage", default=None + ) + offer: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Offer", default=None) + office: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Office", default=None) + reject_reason: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="RejectReason", default=None + ) + scorecard: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Scorecard", default=None) + tag: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Tag", default=None) + remote_user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="RemoteUser", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/ats/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/ats/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/ats/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/field_mapping_api_instance_response.py b/src/merge/resources/ats/types/field_mapping_api_instance_response.py index 7e46bd00..65d4f96c 100644 --- a/src/merge/resources/ats/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/ats/types/field_mapping_api_instance_response.py @@ -3,88 +3,40 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - activity: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Activity"), - pydantic.Field(alias="Activity"), - ] = None - application: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Application"), - pydantic.Field(alias="Application"), - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - candidate: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Candidate"), - pydantic.Field(alias="Candidate"), - ] = None - department: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Department"), - pydantic.Field(alias="Department"), - ] = None - eeoc: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="EEOC"), pydantic.Field(alias="EEOC") - ] = None - scheduled_interview: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="ScheduledInterview"), - pydantic.Field(alias="ScheduledInterview"), - ] = None - job: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Job"), pydantic.Field(alias="Job") - ] = None - job_posting: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="JobPosting"), - pydantic.Field(alias="JobPosting"), - ] = None - job_interview_stage: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="JobInterviewStage"), - pydantic.Field(alias="JobInterviewStage"), - ] = None - offer: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Offer"), - pydantic.Field(alias="Offer"), - ] = None - office: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Office"), - pydantic.Field(alias="Office"), - ] = None - reject_reason: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="RejectReason"), - pydantic.Field(alias="RejectReason"), - ] = None - scorecard: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Scorecard"), - pydantic.Field(alias="Scorecard"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - remote_user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="RemoteUser"), - pydantic.Field(alias="RemoteUser"), - ] = None + activity: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Activity", default=None) + application: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="Application", default=None + ) + attachment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Attachment", default=None) + candidate: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Candidate", default=None) + department: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Department", default=None) + eeoc: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="EEOC", default=None) + scheduled_interview: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="ScheduledInterview", default=None + ) + job: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Job", default=None) + job_posting: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="JobPosting", default=None + ) + job_interview_stage: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="JobInterviewStage", default=None + ) + offer: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Offer", default=None) + office: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Office", default=None) + reject_reason: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="RejectReason", default=None + ) + scorecard: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Scorecard", default=None) + tag: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Tag", default=None) + remote_user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="RemoteUser", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/field_permission_deserializer.py b/src/merge/resources/ats/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/ats/types/field_permission_deserializer.py +++ b/src/merge/resources/ats/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/field_permission_deserializer_request.py b/src/merge/resources/ats/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/ats/types/field_permission_deserializer_request.py +++ b/src/merge/resources/ats/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/gender_enum.py b/src/merge/resources/ats/types/gender_enum.py index 786aa010..26393a8b 100644 --- a/src/merge/resources/ats/types/gender_enum.py +++ b/src/merge/resources/ats/types/gender_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class GenderEnum(enum.StrEnum): +class GenderEnum(str, enum.Enum): """ * `MALE` - MALE * `FEMALE` - FEMALE diff --git a/src/merge/resources/ats/types/issue.py b/src/merge/resources/ats/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/ats/types/issue.py +++ b/src/merge/resources/ats/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/ats/types/issue_status_enum.py b/src/merge/resources/ats/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/ats/types/issue_status_enum.py +++ b/src/merge/resources/ats/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/ats/types/job.py b/src/merge/resources/ats/types/job.py index 35df81c0..389cd697 100644 --- a/src/merge/resources/ats/types/job.py +++ b/src/merge/resources/ats/types/job.py @@ -124,7 +124,7 @@ class Job(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -137,8 +137,7 @@ class Config: extra = pydantic.Extra.allow -from .job_job_postings_item import JobJobPostingsItem # noqa: E402, I001 -from .job_posting import JobPosting # noqa: E402, I001 -from .job_posting_job import JobPostingJob # noqa: E402, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .job_job_postings_item import JobJobPostingsItem # noqa: E402, F401, I001 -update_forward_refs(Job, JobJobPostingsItem=JobJobPostingsItem, JobPosting=JobPosting, JobPostingJob=JobPostingJob) +update_forward_refs(Job) diff --git a/src/merge/resources/ats/types/job_interview_stage.py b/src/merge/resources/ats/types/job_interview_stage.py index e17d37fd..7e09aca8 100644 --- a/src/merge/resources/ats/types/job_interview_stage.py +++ b/src/merge/resources/ats/types/job_interview_stage.py @@ -57,7 +57,7 @@ class JobInterviewStage(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -70,4 +70,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(JobInterviewStage) diff --git a/src/merge/resources/ats/types/job_posting.py b/src/merge/resources/ats/types/job_posting.py index 533b1b2c..a43467d8 100644 --- a/src/merge/resources/ats/types/job_posting.py +++ b/src/merge/resources/ats/types/job_posting.py @@ -89,7 +89,7 @@ class JobPosting(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -102,8 +102,7 @@ class Config: extra = pydantic.Extra.allow -from .job import Job # noqa: E402, I001 -from .job_job_postings_item import JobJobPostingsItem # noqa: E402, I001 -from .job_posting_job import JobPostingJob # noqa: E402, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting_job import JobPostingJob # noqa: E402, F401, I001 -update_forward_refs(JobPosting, Job=Job, JobJobPostingsItem=JobJobPostingsItem, JobPostingJob=JobPostingJob) +update_forward_refs(JobPosting) diff --git a/src/merge/resources/ats/types/job_posting_status_enum.py b/src/merge/resources/ats/types/job_posting_status_enum.py index 3642c40e..92f45ae4 100644 --- a/src/merge/resources/ats/types/job_posting_status_enum.py +++ b/src/merge/resources/ats/types/job_posting_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class JobPostingStatusEnum(enum.StrEnum): +class JobPostingStatusEnum(str, enum.Enum): """ * `PUBLISHED` - PUBLISHED * `CLOSED` - CLOSED diff --git a/src/merge/resources/ats/types/job_status_enum.py b/src/merge/resources/ats/types/job_status_enum.py index 3c717fba..eda892ce 100644 --- a/src/merge/resources/ats/types/job_status_enum.py +++ b/src/merge/resources/ats/types/job_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class JobStatusEnum(enum.StrEnum): +class JobStatusEnum(str, enum.Enum): """ * `OPEN` - OPEN * `CLOSED` - CLOSED diff --git a/src/merge/resources/ats/types/job_type_enum.py b/src/merge/resources/ats/types/job_type_enum.py index ac9c2dad..6de04249 100644 --- a/src/merge/resources/ats/types/job_type_enum.py +++ b/src/merge/resources/ats/types/job_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class JobTypeEnum(enum.StrEnum): +class JobTypeEnum(str, enum.Enum): """ * `POSTING` - POSTING * `REQUISITION` - REQUISITION diff --git a/src/merge/resources/ats/types/language_enum.py b/src/merge/resources/ats/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/ats/types/language_enum.py +++ b/src/merge/resources/ats/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/ats/types/last_sync_result_enum.py b/src/merge/resources/ats/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/ats/types/last_sync_result_enum.py +++ b/src/merge/resources/ats/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/ats/types/meta_response.py b/src/merge/resources/ats/types/meta_response.py index 0da37619..caa2c831 100644 --- a/src/merge/resources/ats/types/meta_response.py +++ b/src/merge/resources/ats/types/meta_response.py @@ -9,8 +9,8 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] - remote_field_classes: typing.Optional[typing.Dict[str, typing.Any]] = None + request_schema: typing.Dict[str, typing.Optional[typing.Any]] + remote_field_classes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/ats/types/method_enum.py b/src/merge/resources/ats/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/ats/types/method_enum.py +++ b/src/merge/resources/ats/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/ats/types/offer.py b/src/merge/resources/ats/types/offer.py index a9f85ba7..a41e1f18 100644 --- a/src/merge/resources/ats/types/offer.py +++ b/src/merge/resources/ats/types/offer.py @@ -88,7 +88,7 @@ class Offer(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -101,19 +101,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - Offer, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer_application import OfferApplication # noqa: E402, F401, I001 + +update_forward_refs(Offer) diff --git a/src/merge/resources/ats/types/offer_status_enum.py b/src/merge/resources/ats/types/offer_status_enum.py index d9a3b52b..1650d47f 100644 --- a/src/merge/resources/ats/types/offer_status_enum.py +++ b/src/merge/resources/ats/types/offer_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class OfferStatusEnum(enum.StrEnum): +class OfferStatusEnum(str, enum.Enum): """ * `DRAFT` - DRAFT * `APPROVAL-SENT` - APPROVAL-SENT diff --git a/src/merge/resources/ats/types/office.py b/src/merge/resources/ats/types/office.py index 636b5293..120980d2 100644 --- a/src/merge/resources/ats/types/office.py +++ b/src/merge/resources/ats/types/office.py @@ -49,7 +49,7 @@ class Office(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/overall_recommendation_enum.py b/src/merge/resources/ats/types/overall_recommendation_enum.py index d99db237..66aa9223 100644 --- a/src/merge/resources/ats/types/overall_recommendation_enum.py +++ b/src/merge/resources/ats/types/overall_recommendation_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class OverallRecommendationEnum(enum.StrEnum): +class OverallRecommendationEnum(str, enum.Enum): """ * `DEFINITELY_NO` - DEFINITELY_NO * `NO` - NO diff --git a/src/merge/resources/ats/types/paginated_application_list.py b/src/merge/resources/ats/types/paginated_application_list.py index a612892d..3ae4a8c3 100644 --- a/src/merge/resources/ats/types/paginated_application_list.py +++ b/src/merge/resources/ats/types/paginated_application_list.py @@ -24,21 +24,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - PaginatedApplicationList, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + +update_forward_refs(PaginatedApplicationList) diff --git a/src/merge/resources/ats/types/paginated_candidate_list.py b/src/merge/resources/ats/types/paginated_candidate_list.py index 6e9f8cee..5ecf773c 100644 --- a/src/merge/resources/ats/types/paginated_candidate_list.py +++ b/src/merge/resources/ats/types/paginated_candidate_list.py @@ -24,21 +24,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - PaginatedCandidateList, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + +update_forward_refs(PaginatedCandidateList) diff --git a/src/merge/resources/ats/types/paginated_eeoc_list.py b/src/merge/resources/ats/types/paginated_eeoc_list.py index f64b7ec9..0073b706 100644 --- a/src/merge/resources/ats/types/paginated_eeoc_list.py +++ b/src/merge/resources/ats/types/paginated_eeoc_list.py @@ -25,4 +25,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(PaginatedEeocList) diff --git a/src/merge/resources/ats/types/paginated_job_interview_stage_list.py b/src/merge/resources/ats/types/paginated_job_interview_stage_list.py index a7c04308..204fb1a7 100644 --- a/src/merge/resources/ats/types/paginated_job_interview_stage_list.py +++ b/src/merge/resources/ats/types/paginated_job_interview_stage_list.py @@ -25,4 +25,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(PaginatedJobInterviewStageList) diff --git a/src/merge/resources/ats/types/paginated_job_list.py b/src/merge/resources/ats/types/paginated_job_list.py index c90b9d65..c949837c 100644 --- a/src/merge/resources/ats/types/paginated_job_list.py +++ b/src/merge/resources/ats/types/paginated_job_list.py @@ -24,11 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .job import Job # noqa: E402, I001 -from .job_job_postings_item import JobJobPostingsItem # noqa: E402, I001 -from .job_posting import JobPosting # noqa: E402, I001 -from .job_posting_job import JobPostingJob # noqa: E402, I001 - -update_forward_refs( - PaginatedJobList, Job=Job, JobJobPostingsItem=JobJobPostingsItem, JobPosting=JobPosting, JobPostingJob=JobPostingJob -) +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + +update_forward_refs(PaginatedJobList) diff --git a/src/merge/resources/ats/types/paginated_job_posting_list.py b/src/merge/resources/ats/types/paginated_job_posting_list.py index 12a21419..f80a22f8 100644 --- a/src/merge/resources/ats/types/paginated_job_posting_list.py +++ b/src/merge/resources/ats/types/paginated_job_posting_list.py @@ -24,15 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .job import Job # noqa: E402, I001 -from .job_job_postings_item import JobJobPostingsItem # noqa: E402, I001 -from .job_posting import JobPosting # noqa: E402, I001 -from .job_posting_job import JobPostingJob # noqa: E402, I001 - -update_forward_refs( - PaginatedJobPostingList, - Job=Job, - JobJobPostingsItem=JobJobPostingsItem, - JobPosting=JobPosting, - JobPostingJob=JobPostingJob, -) +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + +update_forward_refs(PaginatedJobPostingList) diff --git a/src/merge/resources/ats/types/paginated_offer_list.py b/src/merge/resources/ats/types/paginated_offer_list.py index f3849d84..b7575abc 100644 --- a/src/merge/resources/ats/types/paginated_offer_list.py +++ b/src/merge/resources/ats/types/paginated_offer_list.py @@ -24,21 +24,10 @@ class Config: extra = pydantic.Extra.allow -from .application import Application # noqa: E402, I001 -from .application_candidate import ApplicationCandidate # noqa: E402, I001 -from .application_offers_item import ApplicationOffersItem # noqa: E402, I001 -from .candidate import Candidate # noqa: E402, I001 -from .candidate_applications_item import CandidateApplicationsItem # noqa: E402, I001 -from .offer import Offer # noqa: E402, I001 -from .offer_application import OfferApplication # noqa: E402, I001 - -update_forward_refs( - PaginatedOfferList, - Application=Application, - ApplicationCandidate=ApplicationCandidate, - ApplicationOffersItem=ApplicationOffersItem, - Candidate=Candidate, - CandidateApplicationsItem=CandidateApplicationsItem, - Offer=Offer, - OfferApplication=OfferApplication, -) +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + +update_forward_refs(PaginatedOfferList) diff --git a/src/merge/resources/ats/types/paginated_scheduled_interview_list.py b/src/merge/resources/ats/types/paginated_scheduled_interview_list.py index d8951726..193baa45 100644 --- a/src/merge/resources/ats/types/paginated_scheduled_interview_list.py +++ b/src/merge/resources/ats/types/paginated_scheduled_interview_list.py @@ -25,4 +25,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(PaginatedScheduledInterviewList) diff --git a/src/merge/resources/ats/types/paginated_scorecard_list.py b/src/merge/resources/ats/types/paginated_scorecard_list.py index 004784b6..e8bf292c 100644 --- a/src/merge/resources/ats/types/paginated_scorecard_list.py +++ b/src/merge/resources/ats/types/paginated_scorecard_list.py @@ -25,4 +25,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(PaginatedScorecardList) diff --git a/src/merge/resources/ats/types/paginated_screening_question_list.py b/src/merge/resources/ats/types/paginated_screening_question_list.py index 4ef8eb40..2455ae4f 100644 --- a/src/merge/resources/ats/types/paginated_screening_question_list.py +++ b/src/merge/resources/ats/types/paginated_screening_question_list.py @@ -25,4 +25,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(PaginatedScreeningQuestionList) diff --git a/src/merge/resources/ats/types/patched_candidate_request.py b/src/merge/resources/ats/types/patched_candidate_request.py index c2a23fa2..4f2bdfc8 100644 --- a/src/merge/resources/ats/types/patched_candidate_request.py +++ b/src/merge/resources/ats/types/patched_candidate_request.py @@ -83,8 +83,8 @@ class PatchedCandidateRequest(UncheckedBaseModel): """ remote_template_id: typing.Optional[str] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -96,4 +96,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(PatchedCandidateRequest) diff --git a/src/merge/resources/ats/types/phone_number_request.py b/src/merge/resources/ats/types/phone_number_request.py index b500f228..aa54db17 100644 --- a/src/merge/resources/ats/types/phone_number_request.py +++ b/src/merge/resources/ats/types/phone_number_request.py @@ -33,8 +33,8 @@ class PhoneNumberRequest(UncheckedBaseModel): * `OTHER` - OTHER """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/phone_number_type_enum.py b/src/merge/resources/ats/types/phone_number_type_enum.py index d3335353..5fa42f3c 100644 --- a/src/merge/resources/ats/types/phone_number_type_enum.py +++ b/src/merge/resources/ats/types/phone_number_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PhoneNumberTypeEnum(enum.StrEnum): +class PhoneNumberTypeEnum(str, enum.Enum): """ * `HOME` - HOME * `WORK` - WORK diff --git a/src/merge/resources/ats/types/race_enum.py b/src/merge/resources/ats/types/race_enum.py index c1fbdd81..98d37f9d 100644 --- a/src/merge/resources/ats/types/race_enum.py +++ b/src/merge/resources/ats/types/race_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RaceEnum(enum.StrEnum): +class RaceEnum(str, enum.Enum): """ * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE * `ASIAN` - ASIAN diff --git a/src/merge/resources/ats/types/reason_enum.py b/src/merge/resources/ats/types/reason_enum.py index 77c6e96c..ea6ba5b6 100644 --- a/src/merge/resources/ats/types/reason_enum.py +++ b/src/merge/resources/ats/types/reason_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ReasonEnum(enum.StrEnum): +class ReasonEnum(str, enum.Enum): """ * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST * `GDPR` - GDPR diff --git a/src/merge/resources/ats/types/reject_reason.py b/src/merge/resources/ats/types/reject_reason.py index f1373b41..7f2d533e 100644 --- a/src/merge/resources/ats/types/reject_reason.py +++ b/src/merge/resources/ats/types/reject_reason.py @@ -44,7 +44,7 @@ class RejectReason(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/remote_data.py b/src/merge/resources/ats/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/ats/types/remote_data.py +++ b/src/merge/resources/ats/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/ats/types/remote_endpoint_info.py b/src/merge/resources/ats/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/ats/types/remote_endpoint_info.py +++ b/src/merge/resources/ats/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/remote_field_api.py b/src/merge/resources/ats/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/ats/types/remote_field_api.py +++ b/src/merge/resources/ats/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/ats/types/remote_field_api_response.py b/src/merge/resources/ats/types/remote_field_api_response.py index d1f1f481..3d3e79f5 100644 --- a/src/merge/resources/ats/types/remote_field_api_response.py +++ b/src/merge/resources/ats/types/remote_field_api_response.py @@ -3,82 +3,32 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - activity: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Activity"), pydantic.Field(alias="Activity") - ] = None - application: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Application"), - pydantic.Field(alias="Application"), - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - candidate: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Candidate"), - pydantic.Field(alias="Candidate"), - ] = None - department: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Department"), - pydantic.Field(alias="Department"), - ] = None - eeoc: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="EEOC"), pydantic.Field(alias="EEOC") - ] = None - scheduled_interview: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="ScheduledInterview"), - pydantic.Field(alias="ScheduledInterview"), - ] = None - job: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Job"), pydantic.Field(alias="Job") - ] = None - job_posting: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="JobPosting"), - pydantic.Field(alias="JobPosting"), - ] = None - job_interview_stage: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="JobInterviewStage"), - pydantic.Field(alias="JobInterviewStage"), - ] = None - offer: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Offer"), pydantic.Field(alias="Offer") - ] = None - office: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Office"), pydantic.Field(alias="Office") - ] = None - reject_reason: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="RejectReason"), - pydantic.Field(alias="RejectReason"), - ] = None - scorecard: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Scorecard"), - pydantic.Field(alias="Scorecard"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - remote_user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="RemoteUser"), - pydantic.Field(alias="RemoteUser"), - ] = None + activity: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Activity", default=None) + application: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Application", default=None) + attachment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Attachment", default=None) + candidate: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Candidate", default=None) + department: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Department", default=None) + eeoc: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="EEOC", default=None) + scheduled_interview: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="ScheduledInterview", default=None + ) + job: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Job", default=None) + job_posting: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="JobPosting", default=None) + job_interview_stage: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="JobInterviewStage", default=None + ) + offer: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Offer", default=None) + office: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Office", default=None) + reject_reason: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="RejectReason", default=None) + scorecard: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Scorecard", default=None) + tag: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Tag", default=None) + remote_user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="RemoteUser", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/remote_response.py b/src/merge/resources/ats/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/ats/types/remote_response.py +++ b/src/merge/resources/ats/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/remote_user.py b/src/merge/resources/ats/types/remote_user.py index fe56da6f..de6ec49a 100644 --- a/src/merge/resources/ats/types/remote_user.py +++ b/src/merge/resources/ats/types/remote_user.py @@ -76,7 +76,7 @@ class RemoteUser(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ats/types/request_format_enum.py b/src/merge/resources/ats/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/ats/types/request_format_enum.py +++ b/src/merge/resources/ats/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/ats/types/response_type_enum.py b/src/merge/resources/ats/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/ats/types/response_type_enum.py +++ b/src/merge/resources/ats/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/ats/types/role_enum.py b/src/merge/resources/ats/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/ats/types/role_enum.py +++ b/src/merge/resources/ats/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/ats/types/scheduled_interview.py b/src/merge/resources/ats/types/scheduled_interview.py index 5000e479..68029b8f 100644 --- a/src/merge/resources/ats/types/scheduled_interview.py +++ b/src/merge/resources/ats/types/scheduled_interview.py @@ -102,7 +102,7 @@ class ScheduledInterview(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -115,4 +115,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(ScheduledInterview) diff --git a/src/merge/resources/ats/types/scheduled_interview_request.py b/src/merge/resources/ats/types/scheduled_interview_request.py index a5d19c49..34e03ee7 100644 --- a/src/merge/resources/ats/types/scheduled_interview_request.py +++ b/src/merge/resources/ats/types/scheduled_interview_request.py @@ -70,8 +70,8 @@ class ScheduledInterviewRequest(UncheckedBaseModel): * `COMPLETE` - COMPLETE """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -83,4 +83,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(ScheduledInterviewRequest) diff --git a/src/merge/resources/ats/types/scheduled_interview_response.py b/src/merge/resources/ats/types/scheduled_interview_response.py index 3a62a42f..13022119 100644 --- a/src/merge/resources/ats/types/scheduled_interview_response.py +++ b/src/merge/resources/ats/types/scheduled_interview_response.py @@ -29,4 +29,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(ScheduledInterviewResponse) diff --git a/src/merge/resources/ats/types/scheduled_interview_status_enum.py b/src/merge/resources/ats/types/scheduled_interview_status_enum.py index b6b5de0b..5ca38557 100644 --- a/src/merge/resources/ats/types/scheduled_interview_status_enum.py +++ b/src/merge/resources/ats/types/scheduled_interview_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ScheduledInterviewStatusEnum(enum.StrEnum): +class ScheduledInterviewStatusEnum(str, enum.Enum): """ * `SCHEDULED` - SCHEDULED * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK diff --git a/src/merge/resources/ats/types/scorecard.py b/src/merge/resources/ats/types/scorecard.py index dbefd368..b2863185 100644 --- a/src/merge/resources/ats/types/scorecard.py +++ b/src/merge/resources/ats/types/scorecard.py @@ -81,7 +81,7 @@ class Scorecard(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -94,4 +94,10 @@ class Config: extra = pydantic.Extra.allow +from .application import Application # noqa: E402, F401, I001 +from .candidate import Candidate # noqa: E402, F401, I001 +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 +from .offer import Offer # noqa: E402, F401, I001 + update_forward_refs(Scorecard) diff --git a/src/merge/resources/ats/types/screening_question.py b/src/merge/resources/ats/types/screening_question.py index 2e91a0a2..a55d7622 100644 --- a/src/merge/resources/ats/types/screening_question.py +++ b/src/merge/resources/ats/types/screening_question.py @@ -89,4 +89,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(ScreeningQuestion) diff --git a/src/merge/resources/ats/types/screening_question_answer.py b/src/merge/resources/ats/types/screening_question_answer.py index af61919b..83c26ecf 100644 --- a/src/merge/resources/ats/types/screening_question_answer.py +++ b/src/merge/resources/ats/types/screening_question_answer.py @@ -62,4 +62,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(ScreeningQuestionAnswer) diff --git a/src/merge/resources/ats/types/screening_question_answer_request.py b/src/merge/resources/ats/types/screening_question_answer_request.py index fd777f12..21910969 100644 --- a/src/merge/resources/ats/types/screening_question_answer_request.py +++ b/src/merge/resources/ats/types/screening_question_answer_request.py @@ -35,8 +35,8 @@ class ScreeningQuestionAnswerRequest(UncheckedBaseModel): The candidate’s response to the screening question. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -48,4 +48,7 @@ class Config: extra = pydantic.Extra.allow +from .job import Job # noqa: E402, F401, I001 +from .job_posting import JobPosting # noqa: E402, F401, I001 + update_forward_refs(ScreeningQuestionAnswerRequest) diff --git a/src/merge/resources/ats/types/screening_question_type_enum.py b/src/merge/resources/ats/types/screening_question_type_enum.py index 656bff13..ba2fd9d8 100644 --- a/src/merge/resources/ats/types/screening_question_type_enum.py +++ b/src/merge/resources/ats/types/screening_question_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ScreeningQuestionTypeEnum(enum.StrEnum): +class ScreeningQuestionTypeEnum(str, enum.Enum): """ * `DATE` - DATE * `FILE` - FILE diff --git a/src/merge/resources/ats/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/ats/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/ats/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/ats/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/ats/types/status_fd_5_enum.py b/src/merge/resources/ats/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/ats/types/status_fd_5_enum.py +++ b/src/merge/resources/ats/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/ats/types/sync_status.py b/src/merge/resources/ats/types/sync_status.py index 07ab1dc2..4bb187e3 100644 --- a/src/merge/resources/ats/types/sync_status.py +++ b/src/merge/resources/ats/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/ats/types/sync_status_reason_enum.py b/src/merge/resources/ats/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/ats/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/ats/types/sync_status_sync_status_reason.py b/src/merge/resources/ats/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/ats/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/ats/types/tag.py b/src/merge/resources/ats/types/tag.py index 944d771d..6d73f731 100644 --- a/src/merge/resources/ats/types/tag.py +++ b/src/merge/resources/ats/types/tag.py @@ -42,8 +42,8 @@ class Tag(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None - remote_data: typing.Optional[typing.List[typing.Optional[typing.Dict[str, typing.Any]]]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + remote_data: typing.Optional[typing.List[typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/url_request.py b/src/merge/resources/ats/types/url_request.py index fab9639c..292911d8 100644 --- a/src/merge/resources/ats/types/url_request.py +++ b/src/merge/resources/ats/types/url_request.py @@ -35,8 +35,8 @@ class UrlRequest(UncheckedBaseModel): * `JOB_POSTING` - JOB_POSTING """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ats/types/url_type_enum.py b/src/merge/resources/ats/types/url_type_enum.py index a622a3e0..7e29213d 100644 --- a/src/merge/resources/ats/types/url_type_enum.py +++ b/src/merge/resources/ats/types/url_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class UrlTypeEnum(enum.StrEnum): +class UrlTypeEnum(str, enum.Enum): """ * `PERSONAL` - PERSONAL * `COMPANY` - COMPANY diff --git a/src/merge/resources/ats/types/veteran_status_enum.py b/src/merge/resources/ats/types/veteran_status_enum.py index 14972771..92685dd7 100644 --- a/src/merge/resources/ats/types/veteran_status_enum.py +++ b/src/merge/resources/ats/types/veteran_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class VeteranStatusEnum(enum.StrEnum): +class VeteranStatusEnum(str, enum.Enum): """ * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN * `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN diff --git a/src/merge/resources/ats/types/visibility_enum.py b/src/merge/resources/ats/types/visibility_enum.py index d28c6ffb..efcaafb7 100644 --- a/src/merge/resources/ats/types/visibility_enum.py +++ b/src/merge/resources/ats/types/visibility_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class VisibilityEnum(enum.StrEnum): +class VisibilityEnum(str, enum.Enum): """ * `ADMIN_ONLY` - ADMIN_ONLY * `PUBLIC` - PUBLIC diff --git a/src/merge/resources/calendar/__init__.py b/src/merge/resources/calendar/__init__.py index 21bd54bd..3f428f4f 100644 --- a/src/merge/resources/calendar/__init__.py +++ b/src/merge/resources/calendar/__init__.py @@ -114,7 +114,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, User, UserFieldMappings, ValidationProblemSource, @@ -275,7 +277,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "User": ".types", "UserFieldMappings": ".types", "ValidationProblemSource": ".types", @@ -312,10 +316,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -446,7 +448,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "ValidationProblemSource", diff --git a/src/merge/resources/calendar/resources/__init__.py b/src/merge/resources/calendar/resources/__init__.py index 0d641660..9022a9e2 100644 --- a/src/merge/resources/calendar/resources/__init__.py +++ b/src/merge/resources/calendar/resources/__init__.py @@ -53,28 +53,28 @@ "GroupsRetrieveRequestExpandItem": ".groups", "IssuesListRequestStatus": ".issues", "LinkedAccountsListRequestCategory": ".linked_accounts", - "account_details": ".account_details", - "account_token": ".account_token", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "calendars": ".calendars", - "delete_account": ".delete_account", - "events": ".events", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "series": ".series", - "sync_status": ".sync_status", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "calendars": ".", + "delete_account": ".", + "events": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "series": ".", + "sync_status": ".", + "users": ".", + "webhook_receivers": ".", } @@ -84,10 +84,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/account_details/raw_client.py b/src/merge/resources/calendar/resources/account_details/raw_client.py index f2f4ca12..07d61c08 100644 --- a/src/merge/resources/calendar/resources/account_details/raw_client.py +++ b/src/merge/resources/calendar/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/account_token/raw_client.py b/src/merge/resources/calendar/resources/account_token/raw_client.py index 9f973434..3dc72af9 100644 --- a/src/merge/resources/calendar/resources/account_token/raw_client.py +++ b/src/merge/resources/calendar/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/async_passthrough/__init__.py b/src/merge/resources/calendar/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/calendar/resources/async_passthrough/__init__.py +++ b/src/merge/resources/calendar/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/async_passthrough/raw_client.py b/src/merge/resources/calendar/resources/async_passthrough/raw_client.py index 4ca8a20f..f8789f33 100644 --- a/src/merge/resources/calendar/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/calendar/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/async_passthrough/types/__init__.py b/src/merge/resources/calendar/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/calendar/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/calendar/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/audit_trail/raw_client.py b/src/merge/resources/calendar/resources/audit_trail/raw_client.py index b777cd99..4933dc8c 100644 --- a/src/merge/resources/calendar/resources/audit_trail/raw_client.py +++ b/src/merge/resources/calendar/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/available_actions/raw_client.py b/src/merge/resources/calendar/resources/available_actions/raw_client.py index 3d003126..f8163766 100644 --- a/src/merge/resources/calendar/resources/available_actions/raw_client.py +++ b/src/merge/resources/calendar/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/calendars/__init__.py b/src/merge/resources/calendar/resources/calendars/__init__.py index 9cf2210a..76b4783e 100644 --- a/src/merge/resources/calendar/resources/calendars/__init__.py +++ b/src/merge/resources/calendar/resources/calendars/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/calendars/raw_client.py b/src/merge/resources/calendar/resources/calendars/raw_client.py index ad96a01e..3e3f95a9 100644 --- a/src/merge/resources/calendar/resources/calendars/raw_client.py +++ b/src/merge/resources/calendar/resources/calendars/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.calendar import Calendar from ...types.paginated_calendar_list import PaginatedCalendarList from .types.calendars_list_request_type import CalendarsListRequestType -from pydantic import ValidationError class RawCalendarsClient: @@ -132,10 +130,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -196,10 +190,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -317,10 +307,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -381,8 +367,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/calendars/types/__init__.py b/src/merge/resources/calendar/resources/calendars/types/__init__.py index e64930ea..3926b304 100644 --- a/src/merge/resources/calendar/resources/calendars/types/__init__.py +++ b/src/merge/resources/calendar/resources/calendars/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/calendars/types/calendars_list_request_type.py b/src/merge/resources/calendar/resources/calendars/types/calendars_list_request_type.py index fadb1f7f..d0de07b1 100644 --- a/src/merge/resources/calendar/resources/calendars/types/calendars_list_request_type.py +++ b/src/merge/resources/calendar/resources/calendars/types/calendars_list_request_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CalendarsListRequestType(enum.StrEnum): +class CalendarsListRequestType(str, enum.Enum): EMPTY = "" PERSONAL = "PERSONAL" SHARED = "SHARED" diff --git a/src/merge/resources/calendar/resources/delete_account/raw_client.py b/src/merge/resources/calendar/resources/delete_account/raw_client.py index 5af135be..2a7d6c14 100644 --- a/src/merge/resources/calendar/resources/delete_account/raw_client.py +++ b/src/merge/resources/calendar/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/events/__init__.py b/src/merge/resources/calendar/resources/events/__init__.py index fb0a961d..5281b077 100644 --- a/src/merge/resources/calendar/resources/events/__init__.py +++ b/src/merge/resources/calendar/resources/events/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/events/raw_client.py b/src/merge/resources/calendar/resources/events/raw_client.py index 2d674b06..5fbebbc2 100644 --- a/src/merge/resources/calendar/resources/events/raw_client.py +++ b/src/merge/resources/calendar/resources/events/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.event import Event @@ -19,7 +18,6 @@ from .types.events_invitees_list_request_expand_item import EventsInviteesListRequestExpandItem from .types.events_list_request_expand_item import EventsListRequestExpandItem from .types.events_retrieve_request_expand_item import EventsRetrieveRequestExpandItem -from pydantic import ValidationError class RawEventsClient: @@ -161,10 +159,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def invitees_list( @@ -240,10 +234,6 @@ def invitees_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def locations_list( @@ -317,10 +307,6 @@ def locations_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -381,10 +367,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -527,10 +509,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def invitees_list( @@ -606,10 +584,6 @@ async def invitees_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def locations_list( @@ -683,10 +657,6 @@ async def locations_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -747,8 +717,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/events/types/__init__.py b/src/merge/resources/calendar/resources/events/types/__init__.py index 393c2f92..cef851bc 100644 --- a/src/merge/resources/calendar/resources/events/types/__init__.py +++ b/src/merge/resources/calendar/resources/events/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/events/types/events_invitees_list_request_expand_item.py b/src/merge/resources/calendar/resources/events/types/events_invitees_list_request_expand_item.py index 9544e737..8db9dfad 100644 --- a/src/merge/resources/calendar/resources/events/types/events_invitees_list_request_expand_item.py +++ b/src/merge/resources/calendar/resources/events/types/events_invitees_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EventsInviteesListRequestExpandItem(enum.StrEnum): +class EventsInviteesListRequestExpandItem(str, enum.Enum): EVENT = "event" GROUP = "group" USER = "user" diff --git a/src/merge/resources/calendar/resources/events/types/events_list_request_expand_item.py b/src/merge/resources/calendar/resources/events/types/events_list_request_expand_item.py index 37eae6f4..6fc1651b 100644 --- a/src/merge/resources/calendar/resources/events/types/events_list_request_expand_item.py +++ b/src/merge/resources/calendar/resources/events/types/events_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EventsListRequestExpandItem(enum.StrEnum): +class EventsListRequestExpandItem(str, enum.Enum): CALENDAR = "calendar" INVITEES = "invitees" LOCATIONS = "locations" diff --git a/src/merge/resources/calendar/resources/events/types/events_retrieve_request_expand_item.py b/src/merge/resources/calendar/resources/events/types/events_retrieve_request_expand_item.py index 04c2ac5a..09b908d3 100644 --- a/src/merge/resources/calendar/resources/events/types/events_retrieve_request_expand_item.py +++ b/src/merge/resources/calendar/resources/events/types/events_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EventsRetrieveRequestExpandItem(enum.StrEnum): +class EventsRetrieveRequestExpandItem(str, enum.Enum): CALENDAR = "calendar" INVITEES = "invitees" LOCATIONS = "locations" diff --git a/src/merge/resources/calendar/resources/field_mapping/client.py b/src/merge/resources/calendar/resources/field_mapping/client.py index 0c6be1b7..5686f87d 100644 --- a/src/merge/resources/calendar/resources/field_mapping/client.py +++ b/src/merge/resources/calendar/resources/field_mapping/client.py @@ -71,7 +71,7 @@ def field_mappings_retrieve( def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -90,7 +90,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -206,7 +206,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -223,7 +223,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -458,7 +458,7 @@ async def main() -> None: async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -477,7 +477,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -609,7 +609,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -626,7 +626,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/calendar/resources/field_mapping/raw_client.py b/src/merge/resources/calendar/resources/field_mapping/raw_client.py index 619d4d10..a3f76da6 100644 --- a/src/merge/resources/calendar/resources/field_mapping/raw_client.py +++ b/src/merge/resources/calendar/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,16 +65,12 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -95,7 +89,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -177,10 +171,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -219,10 +209,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -230,7 +216,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -247,7 +233,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -302,10 +288,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -356,10 +338,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -396,10 +374,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_create( @@ -459,10 +433,6 @@ def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -513,16 +483,12 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -541,7 +507,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -623,10 +589,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -665,10 +627,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -676,7 +634,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -693,7 +651,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -748,10 +706,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -802,10 +756,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -842,10 +792,6 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_create( @@ -905,8 +851,4 @@ async def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/force_resync/raw_client.py b/src/merge/resources/calendar/resources/force_resync/raw_client.py index c5a72081..170a57e3 100644 --- a/src/merge/resources/calendar/resources/force_resync/raw_client.py +++ b/src/merge/resources/calendar/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/generate_key/raw_client.py b/src/merge/resources/calendar/resources/generate_key/raw_client.py index c749b52c..2e397101 100644 --- a/src/merge/resources/calendar/resources/generate_key/raw_client.py +++ b/src/merge/resources/calendar/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/groups/__init__.py b/src/merge/resources/calendar/resources/groups/__init__.py index 833b79cd..c42a8d2e 100644 --- a/src/merge/resources/calendar/resources/groups/__init__.py +++ b/src/merge/resources/calendar/resources/groups/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/groups/raw_client.py b/src/merge/resources/calendar/resources/groups/raw_client.py index 722c639a..34a418d3 100644 --- a/src/merge/resources/calendar/resources/groups/raw_client.py +++ b/src/merge/resources/calendar/resources/groups/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList from .types.groups_list_request_expand_item import GroupsListRequestExpandItem from .types.groups_retrieve_request_expand_item import GroupsRetrieveRequestExpandItem -from pydantic import ValidationError class RawGroupsClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -202,10 +196,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -328,10 +318,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -392,8 +378,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/groups/types/__init__.py b/src/merge/resources/calendar/resources/groups/types/__init__.py index 1ac662da..9f5d7290 100644 --- a/src/merge/resources/calendar/resources/groups/types/__init__.py +++ b/src/merge/resources/calendar/resources/groups/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/groups/types/groups_list_request_expand_item.py b/src/merge/resources/calendar/resources/groups/types/groups_list_request_expand_item.py index b3402014..7e74c3cc 100644 --- a/src/merge/resources/calendar/resources/groups/types/groups_list_request_expand_item.py +++ b/src/merge/resources/calendar/resources/groups/types/groups_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsListRequestExpandItem(enum.StrEnum): +class GroupsListRequestExpandItem(str, enum.Enum): CHILD_GROUPS = "child_groups" USERS = "users" diff --git a/src/merge/resources/calendar/resources/groups/types/groups_retrieve_request_expand_item.py b/src/merge/resources/calendar/resources/groups/types/groups_retrieve_request_expand_item.py index 2d5c0147..4843d494 100644 --- a/src/merge/resources/calendar/resources/groups/types/groups_retrieve_request_expand_item.py +++ b/src/merge/resources/calendar/resources/groups/types/groups_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsRetrieveRequestExpandItem(enum.StrEnum): +class GroupsRetrieveRequestExpandItem(str, enum.Enum): CHILD_GROUPS = "child_groups" USERS = "users" diff --git a/src/merge/resources/calendar/resources/issues/__init__.py b/src/merge/resources/calendar/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/calendar/resources/issues/__init__.py +++ b/src/merge/resources/calendar/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/issues/raw_client.py b/src/merge/resources/calendar/resources/issues/raw_client.py index 421f1b8b..34099c4f 100644 --- a/src/merge/resources/calendar/resources/issues/raw_client.py +++ b/src/merge/resources/calendar/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -175,10 +169,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -299,10 +289,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -341,8 +327,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/issues/types/__init__.py b/src/merge/resources/calendar/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/calendar/resources/issues/types/__init__.py +++ b/src/merge/resources/calendar/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/issues/types/issues_list_request_status.py b/src/merge/resources/calendar/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/calendar/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/calendar/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/calendar/resources/link_token/__init__.py b/src/merge/resources/calendar/resources/link_token/__init__.py index 834918c1..be8c3839 100644 --- a/src/merge/resources/calendar/resources/link_token/__init__.py +++ b/src/merge/resources/calendar/resources/link_token/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/link_token/client.py b/src/merge/resources/calendar/resources/link_token/client.py index ebe227a9..fc022fb8 100644 --- a/src/merge/resources/calendar/resources/link_token/client.py +++ b/src/merge/resources/calendar/resources/link_token/client.py @@ -50,7 +50,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -98,7 +98,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -192,7 +192,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -240,7 +240,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] diff --git a/src/merge/resources/calendar/resources/link_token/raw_client.py b/src/merge/resources/calendar/resources/link_token/raw_client.py index 80e491ba..e8f9ad02 100644 --- a/src/merge/resources/calendar/resources/link_token/raw_client.py +++ b/src/merge/resources/calendar/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -17,7 +16,6 @@ EndUserDetailsRequestCompletedAccountInitialScreen, ) from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -44,7 +42,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -92,7 +90,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -156,10 +154,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -184,7 +178,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -232,7 +226,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -296,8 +290,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/link_token/types/__init__.py b/src/merge/resources/calendar/resources/link_token/types/__init__.py index 1846dfb1..55cc1d4e 100644 --- a/src/merge/resources/calendar/resources/link_token/types/__init__.py +++ b/src/merge/resources/calendar/resources/link_token/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/linked_accounts/__init__.py b/src/merge/resources/calendar/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/calendar/resources/linked_accounts/__init__.py +++ b/src/merge/resources/calendar/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/linked_accounts/raw_client.py b/src/merge/resources/calendar/resources/linked_accounts/raw_client.py index f7055de9..252ab5d0 100644 --- a/src/merge/resources/calendar/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/calendar/resources/linked_accounts/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.linked_account_patch_response import LinkedAccountPatchResponse from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -125,10 +123,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -180,10 +174,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -293,10 +283,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -348,8 +334,4 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/linked_accounts/types/__init__.py b/src/merge/resources/calendar/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/calendar/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/calendar/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/calendar/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/calendar/resources/linked_accounts/types/linked_accounts_list_request_category.py index 035ed972..97df0150 100644 --- a/src/merge/resources/calendar/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/calendar/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CHAT = "chat" diff --git a/src/merge/resources/calendar/resources/passthrough/raw_client.py b/src/merge/resources/calendar/resources/passthrough/raw_client.py index 808ab3a5..7d4701a3 100644 --- a/src/merge/resources/calendar/resources/passthrough/raw_client.py +++ b/src/merge/resources/calendar/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/regenerate_key/raw_client.py b/src/merge/resources/calendar/resources/regenerate_key/raw_client.py index 2cd89102..fa185f01 100644 --- a/src/merge/resources/calendar/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/calendar/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/scopes/raw_client.py b/src/merge/resources/calendar/resources/scopes/raw_client.py index 454e01fb..a9d45363 100644 --- a/src/merge/resources/calendar/resources/scopes/raw_client.py +++ b/src/merge/resources/calendar/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/series/raw_client.py b/src/merge/resources/calendar/resources/series/raw_client.py index aedc1cfd..b8bd8af1 100644 --- a/src/merge/resources/calendar/resources/series/raw_client.py +++ b/src/merge/resources/calendar/resources/series/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_series_list import PaginatedSeriesList from ...types.series import Series -from pydantic import ValidationError class RawSeriesClient: @@ -136,10 +134,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -200,10 +194,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -326,10 +316,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -390,8 +376,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/sync_status/raw_client.py b/src/merge/resources/calendar/resources/sync_status/raw_client.py index 60e09c81..8cd4755d 100644 --- a/src/merge/resources/calendar/resources/sync_status/raw_client.py +++ b/src/merge/resources/calendar/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/users/raw_client.py b/src/merge/resources/calendar/resources/users/raw_client.py index 77de9afe..fa1e1d88 100644 --- a/src/merge/resources/calendar/resources/users/raw_client.py +++ b/src/merge/resources/calendar/resources/users/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User -from pydantic import ValidationError class RawUsersClient: @@ -126,10 +124,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -190,10 +184,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -306,10 +296,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -370,8 +356,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/resources/webhook_receivers/raw_client.py b/src/merge/resources/calendar/resources/webhook_receivers/raw_client.py index 524ee72a..fb945786 100644 --- a/src/merge/resources/calendar/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/calendar/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/calendar/types/__init__.py b/src/merge/resources/calendar/types/__init__.py index a45668f0..a25979b0 100644 --- a/src/merge/resources/calendar/types/__init__.py +++ b/src/merge/resources/calendar/types/__init__.py @@ -115,7 +115,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .user import User from .user_field_mappings import UserFieldMappings from .validation_problem_source import ValidationProblemSource @@ -229,7 +231,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "User": ".user", "UserFieldMappings": ".user_field_mappings", "ValidationProblemSource": ".validation_problem_source", @@ -244,10 +248,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -367,7 +369,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "ValidationProblemSource", diff --git a/src/merge/resources/calendar/types/account_details_and_actions.py b/src/merge/resources/calendar/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/calendar/types/account_details_and_actions.py +++ b/src/merge/resources/calendar/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/account_details_and_actions_status_enum.py b/src/merge/resources/calendar/types/account_details_and_actions_status_enum.py index 323189b4..0701a829 100644 --- a/src/merge/resources/calendar/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/calendar/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" diff --git a/src/merge/resources/calendar/types/account_integration.py b/src/merge/resources/calendar/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/calendar/types/account_integration.py +++ b/src/merge/resources/calendar/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/calendar/types/advanced_metadata.py b/src/merge/resources/calendar/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/calendar/types/advanced_metadata.py +++ b/src/merge/resources/calendar/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/availability_status_enum.py b/src/merge/resources/calendar/types/availability_status_enum.py index 21a409d8..a9fa8980 100644 --- a/src/merge/resources/calendar/types/availability_status_enum.py +++ b/src/merge/resources/calendar/types/availability_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AvailabilityStatusEnum(enum.StrEnum): +class AvailabilityStatusEnum(str, enum.Enum): FREE = "FREE" BUSY = "BUSY" OUT_OF_OFFICE = "OUT_OF_OFFICE" diff --git a/src/merge/resources/calendar/types/calendar_field_mappings.py b/src/merge/resources/calendar/types/calendar_field_mappings.py index 37c701c4..f2fef070 100644 --- a/src/merge/resources/calendar/types/calendar_field_mappings.py +++ b/src/merge/resources/calendar/types/calendar_field_mappings.py @@ -8,8 +8,8 @@ class CalendarFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/calendar_type_enum.py b/src/merge/resources/calendar/types/calendar_type_enum.py index 84339657..2ffef4f6 100644 --- a/src/merge/resources/calendar/types/calendar_type_enum.py +++ b/src/merge/resources/calendar/types/calendar_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CalendarTypeEnum(enum.StrEnum): +class CalendarTypeEnum(str, enum.Enum): PERSONAL = "PERSONAL" SHARED = "SHARED" diff --git a/src/merge/resources/calendar/types/categories_enum.py b/src/merge/resources/calendar/types/categories_enum.py index f92febf4..b6575458 100644 --- a/src/merge/resources/calendar/types/categories_enum.py +++ b/src/merge/resources/calendar/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/calendar/types/category_enum.py b/src/merge/resources/calendar/types/category_enum.py index ac0be82b..4ee2f4e4 100644 --- a/src/merge/resources/calendar/types/category_enum.py +++ b/src/merge/resources/calendar/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/calendar/types/data_passthrough_request.py b/src/merge/resources/calendar/types/data_passthrough_request.py index d8d42b8d..5a60bfb6 100644 --- a/src/merge/resources/calendar/types/data_passthrough_request.py +++ b/src/merge/resources/calendar/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/calendar/types/effective_role_enum.py b/src/merge/resources/calendar/types/effective_role_enum.py index c71d0303..c0f90e36 100644 --- a/src/merge/resources/calendar/types/effective_role_enum.py +++ b/src/merge/resources/calendar/types/effective_role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EffectiveRoleEnum(enum.StrEnum): +class EffectiveRoleEnum(str, enum.Enum): OWNER = "OWNER" FULL_READ = "FULL_READ" TITLE_READ = "TITLE_READ" diff --git a/src/merge/resources/calendar/types/enabled_actions_enum.py b/src/merge/resources/calendar/types/enabled_actions_enum.py index ded7aa80..cb19286a 100644 --- a/src/merge/resources/calendar/types/enabled_actions_enum.py +++ b/src/merge/resources/calendar/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): READ = "READ" WRITE = "WRITE" diff --git a/src/merge/resources/calendar/types/encoding_enum.py b/src/merge/resources/calendar/types/encoding_enum.py index 27686241..7d4b8977 100644 --- a/src/merge/resources/calendar/types/encoding_enum.py +++ b/src/merge/resources/calendar/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): RAW = "RAW" BASE_64 = "BASE64" GZIP_BASE_64 = "GZIP_BASE64" diff --git a/src/merge/resources/calendar/types/event_field_mappings.py b/src/merge/resources/calendar/types/event_field_mappings.py index 24e45520..c267cb1d 100644 --- a/src/merge/resources/calendar/types/event_field_mappings.py +++ b/src/merge/resources/calendar/types/event_field_mappings.py @@ -8,8 +8,8 @@ class EventFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/event_type_enum.py b/src/merge/resources/calendar/types/event_type_enum.py index 42ce9abb..a04b9681 100644 --- a/src/merge/resources/calendar/types/event_type_enum.py +++ b/src/merge/resources/calendar/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY" DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY" CREATED_TEST_API_KEY = "CREATED_TEST_API_KEY" diff --git a/src/merge/resources/calendar/types/external_target_field_api_response.py b/src/merge/resources/calendar/types/external_target_field_api_response.py index 6b9965fa..1ec7a83f 100644 --- a/src/merge/resources/calendar/types/external_target_field_api_response.py +++ b/src/merge/resources/calendar/types/external_target_field_api_response.py @@ -3,37 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - calendar: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Calendar"), - pydantic.Field(alias="Calendar"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - series: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Series"), - pydantic.Field(alias="Series"), - ] = None - event: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Event"), - pydantic.Field(alias="Event"), - ] = None + calendar: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Calendar", default=None) + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) + series: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Series", default=None) + event: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Event", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/calendar/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/calendar/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/calendar/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/calendar/types/field_mapping_api_instance_response.py b/src/merge/resources/calendar/types/field_mapping_api_instance_response.py index c93db208..7c251f62 100644 --- a/src/merge/resources/calendar/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/calendar/types/field_mapping_api_instance_response.py @@ -3,37 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - calendar: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Calendar"), - pydantic.Field(alias="Calendar"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - series: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Series"), - pydantic.Field(alias="Series"), - ] = None - event: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Event"), - pydantic.Field(alias="Event"), - ] = None + calendar: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Calendar", default=None) + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) + series: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Series", default=None) + event: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Event", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/field_permission_deserializer.py b/src/merge/resources/calendar/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/calendar/types/field_permission_deserializer.py +++ b/src/merge/resources/calendar/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/field_permission_deserializer_request.py b/src/merge/resources/calendar/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/calendar/types/field_permission_deserializer_request.py +++ b/src/merge/resources/calendar/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/group_field_mappings.py b/src/merge/resources/calendar/types/group_field_mappings.py index eaef7341..3be990d2 100644 --- a/src/merge/resources/calendar/types/group_field_mappings.py +++ b/src/merge/resources/calendar/types/group_field_mappings.py @@ -8,8 +8,8 @@ class GroupFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/issue.py b/src/merge/resources/calendar/types/issue.py index ab038c54..8f1027ca 100644 --- a/src/merge/resources/calendar/types/issue.py +++ b/src/merge/resources/calendar/types/issue.py @@ -17,7 +17,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/calendar/types/issue_status_enum.py b/src/merge/resources/calendar/types/issue_status_enum.py index 932ae51c..d75e26e2 100644 --- a/src/merge/resources/calendar/types/issue_status_enum.py +++ b/src/merge/resources/calendar/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/calendar/types/language_enum.py b/src/merge/resources/calendar/types/language_enum.py index 16d6cd0e..19f87fe0 100644 --- a/src/merge/resources/calendar/types/language_enum.py +++ b/src/merge/resources/calendar/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): EN = "en" DE = "de" diff --git a/src/merge/resources/calendar/types/last_sync_result_enum.py b/src/merge/resources/calendar/types/last_sync_result_enum.py index 5cb86bc3..52ecd845 100644 --- a/src/merge/resources/calendar/types/last_sync_result_enum.py +++ b/src/merge/resources/calendar/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/calendar/types/location_type_enum.py b/src/merge/resources/calendar/types/location_type_enum.py index de160978..c762b0b7 100644 --- a/src/merge/resources/calendar/types/location_type_enum.py +++ b/src/merge/resources/calendar/types/location_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LocationTypeEnum(enum.StrEnum): +class LocationTypeEnum(str, enum.Enum): PHYSICAL = "PHYSICAL" VIRTUAL = "VIRTUAL" UNKNOWN = "UNKNOWN" diff --git a/src/merge/resources/calendar/types/method_enum.py b/src/merge/resources/calendar/types/method_enum.py index 45c9f89e..73d2556f 100644 --- a/src/merge/resources/calendar/types/method_enum.py +++ b/src/merge/resources/calendar/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): GET = "GET" OPTIONS = "OPTIONS" HEAD = "HEAD" diff --git a/src/merge/resources/calendar/types/permission_field_mappings.py b/src/merge/resources/calendar/types/permission_field_mappings.py index 0672b491..9c2804c2 100644 --- a/src/merge/resources/calendar/types/permission_field_mappings.py +++ b/src/merge/resources/calendar/types/permission_field_mappings.py @@ -8,8 +8,8 @@ class PermissionFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/permission_type_enum.py b/src/merge/resources/calendar/types/permission_type_enum.py index 2247aba0..26e823f5 100644 --- a/src/merge/resources/calendar/types/permission_type_enum.py +++ b/src/merge/resources/calendar/types/permission_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PermissionTypeEnum(enum.StrEnum): +class PermissionTypeEnum(str, enum.Enum): USER = "USER" GROUP = "GROUP" COMPANY = "COMPANY" diff --git a/src/merge/resources/calendar/types/remote_data.py b/src/merge/resources/calendar/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/calendar/types/remote_data.py +++ b/src/merge/resources/calendar/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/calendar/types/remote_endpoint_info.py b/src/merge/resources/calendar/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/calendar/types/remote_endpoint_info.py +++ b/src/merge/resources/calendar/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/remote_field_api.py b/src/merge/resources/calendar/types/remote_field_api.py index 5f2c2ab1..0756bfc3 100644 --- a/src/merge/resources/calendar/types/remote_field_api.py +++ b/src/merge/resources/calendar/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_endpoint_info import RemoteEndpointInfo from .remote_field_api_advanced_metadata import RemoteFieldApiAdvancedMetadata @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[RemoteFieldApiAdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/calendar/types/remote_field_api_response.py b/src/merge/resources/calendar/types/remote_field_api_response.py index 02acdf17..654ea3bf 100644 --- a/src/merge/resources/calendar/types/remote_field_api_response.py +++ b/src/merge/resources/calendar/types/remote_field_api_response.py @@ -3,29 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - calendar: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Calendar"), pydantic.Field(alias="Calendar") - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None - series: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Series"), pydantic.Field(alias="Series") - ] = None - event: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Event"), pydantic.Field(alias="Event") - ] = None + calendar: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Calendar", default=None) + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) + series: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Series", default=None) + event: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Event", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/remote_response.py b/src/merge/resources/calendar/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/calendar/types/remote_response.py +++ b/src/merge/resources/calendar/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/request_format_enum.py b/src/merge/resources/calendar/types/request_format_enum.py index 711b2df8..70ecd9bb 100644 --- a/src/merge/resources/calendar/types/request_format_enum.py +++ b/src/merge/resources/calendar/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): JSON = "JSON" XML = "XML" MULTIPART = "MULTIPART" diff --git a/src/merge/resources/calendar/types/response_type_enum.py b/src/merge/resources/calendar/types/response_type_enum.py index ce3f3d04..23b6bb5b 100644 --- a/src/merge/resources/calendar/types/response_type_enum.py +++ b/src/merge/resources/calendar/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): JSON = "JSON" BASE_64_GZIP = "BASE64_GZIP" diff --git a/src/merge/resources/calendar/types/role_enum.py b/src/merge/resources/calendar/types/role_enum.py index 752d2454..c97de31f 100644 --- a/src/merge/resources/calendar/types/role_enum.py +++ b/src/merge/resources/calendar/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): ADMIN = "ADMIN" DEVELOPER = "DEVELOPER" MEMBER = "MEMBER" diff --git a/src/merge/resources/calendar/types/roles_enum.py b/src/merge/resources/calendar/types/roles_enum.py index a1df27d8..b746d32d 100644 --- a/src/merge/resources/calendar/types/roles_enum.py +++ b/src/merge/resources/calendar/types/roles_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RolesEnum(enum.StrEnum): +class RolesEnum(str, enum.Enum): OWNER = "OWNER" FULL_READ = "FULL_READ" TITLE_READ = "TITLE_READ" diff --git a/src/merge/resources/calendar/types/rsvp_enum.py b/src/merge/resources/calendar/types/rsvp_enum.py index 9e5b2e57..4720d3bd 100644 --- a/src/merge/resources/calendar/types/rsvp_enum.py +++ b/src/merge/resources/calendar/types/rsvp_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RsvpEnum(enum.StrEnum): +class RsvpEnum(str, enum.Enum): YES = "YES" NO = "NO" MAYBE = "MAYBE" diff --git a/src/merge/resources/calendar/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/calendar/types/selective_sync_configurations_usage_enum.py index 953775e9..7b486b59 100644 --- a/src/merge/resources/calendar/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/calendar/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): IN_NEXT_SYNC = "IN_NEXT_SYNC" IN_LAST_SYNC = "IN_LAST_SYNC" diff --git a/src/merge/resources/calendar/types/series_field_mappings.py b/src/merge/resources/calendar/types/series_field_mappings.py index b04051cd..cefa8bd8 100644 --- a/src/merge/resources/calendar/types/series_field_mappings.py +++ b/src/merge/resources/calendar/types/series_field_mappings.py @@ -8,8 +8,8 @@ class SeriesFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/calendar/types/status_fd_5_enum.py b/src/merge/resources/calendar/types/status_fd_5_enum.py index 52c212e4..3bf97afd 100644 --- a/src/merge/resources/calendar/types/status_fd_5_enum.py +++ b/src/merge/resources/calendar/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/calendar/types/sync_status.py b/src/merge/resources/calendar/types/sync_status.py index e8564068..e27689eb 100644 --- a/src/merge/resources/calendar/types/sync_status.py +++ b/src/merge/resources/calendar/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/calendar/types/sync_status_reason_enum.py b/src/merge/resources/calendar/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/calendar/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/calendar/types/sync_status_sync_status_reason.py b/src/merge/resources/calendar/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/calendar/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/calendar/types/user_field_mappings.py b/src/merge/resources/calendar/types/user_field_mappings.py index 6a27272a..374935d7 100644 --- a/src/merge/resources/calendar/types/user_field_mappings.py +++ b/src/merge/resources/calendar/types/user_field_mappings.py @@ -8,8 +8,8 @@ class UserFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/__init__.py b/src/merge/resources/chat/__init__.py index 5233cf52..f98183d8 100644 --- a/src/merge/resources/chat/__init__.py +++ b/src/merge/resources/chat/__init__.py @@ -98,7 +98,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, TypeEnum, User, UserFieldMappings, @@ -238,7 +240,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "TypeEnum": ".types", "User": ".types", "UserFieldMappings": ".types", @@ -276,10 +280,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -391,7 +393,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TypeEnum", "User", "UserFieldMappings", diff --git a/src/merge/resources/chat/resources/__init__.py b/src/merge/resources/chat/resources/__init__.py index 6e20dd4e..f6813ae8 100644 --- a/src/merge/resources/chat/resources/__init__.py +++ b/src/merge/resources/chat/resources/__init__.py @@ -44,27 +44,27 @@ "LinkedAccountsListRequestCategory": ".linked_accounts", "MessagesListRequestOrderBy": ".messages", "MessagesRepliesListRequestOrderBy": ".messages", - "account_details": ".account_details", - "account_token": ".account_token", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "conversations": ".conversations", - "delete_account": ".delete_account", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "messages": ".messages", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "sync_status": ".sync_status", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "conversations": ".", + "delete_account": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "messages": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "sync_status": ".", + "users": ".", + "webhook_receivers": ".", } @@ -74,10 +74,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/account_details/raw_client.py b/src/merge/resources/chat/resources/account_details/raw_client.py index c68691bd..4ea5e641 100644 --- a/src/merge/resources/chat/resources/account_details/raw_client.py +++ b/src/merge/resources/chat/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/account_token/raw_client.py b/src/merge/resources/chat/resources/account_token/raw_client.py index 784bd67e..6f6a4c1b 100644 --- a/src/merge/resources/chat/resources/account_token/raw_client.py +++ b/src/merge/resources/chat/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/async_passthrough/__init__.py b/src/merge/resources/chat/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/chat/resources/async_passthrough/__init__.py +++ b/src/merge/resources/chat/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/async_passthrough/raw_client.py b/src/merge/resources/chat/resources/async_passthrough/raw_client.py index 31d5f415..37006b02 100644 --- a/src/merge/resources/chat/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/chat/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/async_passthrough/types/__init__.py b/src/merge/resources/chat/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/chat/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/chat/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/audit_trail/raw_client.py b/src/merge/resources/chat/resources/audit_trail/raw_client.py index b65aa7dc..3e5f7e89 100644 --- a/src/merge/resources/chat/resources/audit_trail/raw_client.py +++ b/src/merge/resources/chat/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/available_actions/raw_client.py b/src/merge/resources/chat/resources/available_actions/raw_client.py index 06b87c07..ba47baf7 100644 --- a/src/merge/resources/chat/resources/available_actions/raw_client.py +++ b/src/merge/resources/chat/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/conversations/__init__.py b/src/merge/resources/chat/resources/conversations/__init__.py index c79f7259..8d7d65e4 100644 --- a/src/merge/resources/chat/resources/conversations/__init__.py +++ b/src/merge/resources/chat/resources/conversations/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/conversations/raw_client.py b/src/merge/resources/chat/resources/conversations/raw_client.py index d0d4ad22..06539a5c 100644 --- a/src/merge/resources/chat/resources/conversations/raw_client.py +++ b/src/merge/resources/chat/resources/conversations/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.conversation import Conversation from ...types.paginated_conversation_list import PaginatedConversationList from ...types.paginated_member_list import PaginatedMemberList from .types.conversations_members_list_request_expand_item import ConversationsMembersListRequestExpandItem -from pydantic import ValidationError class RawConversationsClient: @@ -118,10 +116,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def members_list( @@ -199,10 +193,6 @@ def members_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -263,10 +253,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -369,10 +355,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def members_list( @@ -450,10 +432,6 @@ async def members_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -514,8 +492,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/conversations/types/__init__.py b/src/merge/resources/chat/resources/conversations/types/__init__.py index ba58ab50..0975cccc 100644 --- a/src/merge/resources/chat/resources/conversations/types/__init__.py +++ b/src/merge/resources/chat/resources/conversations/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/conversations/types/conversations_members_list_request_expand_item.py b/src/merge/resources/chat/resources/conversations/types/conversations_members_list_request_expand_item.py index bc04d712..4f3e1c40 100644 --- a/src/merge/resources/chat/resources/conversations/types/conversations_members_list_request_expand_item.py +++ b/src/merge/resources/chat/resources/conversations/types/conversations_members_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ConversationsMembersListRequestExpandItem(enum.StrEnum): +class ConversationsMembersListRequestExpandItem(str, enum.Enum): GROUP = "group" USER = "user" diff --git a/src/merge/resources/chat/resources/delete_account/raw_client.py b/src/merge/resources/chat/resources/delete_account/raw_client.py index 6c073957..67cfa096 100644 --- a/src/merge/resources/chat/resources/delete_account/raw_client.py +++ b/src/merge/resources/chat/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/field_mapping/client.py b/src/merge/resources/chat/resources/field_mapping/client.py index 540e78fa..4d2d1b3b 100644 --- a/src/merge/resources/chat/resources/field_mapping/client.py +++ b/src/merge/resources/chat/resources/field_mapping/client.py @@ -71,7 +71,7 @@ def field_mappings_retrieve( def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -90,7 +90,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -206,7 +206,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -223,7 +223,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -458,7 +458,7 @@ async def main() -> None: async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -477,7 +477,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -609,7 +609,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -626,7 +626,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/chat/resources/field_mapping/raw_client.py b/src/merge/resources/chat/resources/field_mapping/raw_client.py index 8a51a044..013b2577 100644 --- a/src/merge/resources/chat/resources/field_mapping/raw_client.py +++ b/src/merge/resources/chat/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,16 +65,12 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -95,7 +89,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -177,10 +171,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -219,10 +209,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -230,7 +216,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -247,7 +233,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -302,10 +288,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -356,10 +338,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -396,10 +374,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_create( @@ -459,10 +433,6 @@ def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -513,16 +483,12 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -541,7 +507,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -623,10 +589,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -665,10 +627,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -676,7 +634,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -693,7 +651,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -748,10 +706,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -802,10 +756,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -842,10 +792,6 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_create( @@ -905,8 +851,4 @@ async def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/force_resync/raw_client.py b/src/merge/resources/chat/resources/force_resync/raw_client.py index 5d80f3c9..76da107a 100644 --- a/src/merge/resources/chat/resources/force_resync/raw_client.py +++ b/src/merge/resources/chat/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/generate_key/raw_client.py b/src/merge/resources/chat/resources/generate_key/raw_client.py index 514a4c58..869fcbb1 100644 --- a/src/merge/resources/chat/resources/generate_key/raw_client.py +++ b/src/merge/resources/chat/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/groups/raw_client.py b/src/merge/resources/chat/resources/groups/raw_client.py index 3e40f8f0..7f8da74c 100644 --- a/src/merge/resources/chat/resources/groups/raw_client.py +++ b/src/merge/resources/chat/resources/groups/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList -from pydantic import ValidationError class RawGroupsClient: @@ -114,10 +112,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -176,10 +170,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -280,10 +270,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -342,8 +328,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/issues/__init__.py b/src/merge/resources/chat/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/chat/resources/issues/__init__.py +++ b/src/merge/resources/chat/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/issues/raw_client.py b/src/merge/resources/chat/resources/issues/raw_client.py index b4c5d47f..63c9e88f 100644 --- a/src/merge/resources/chat/resources/issues/raw_client.py +++ b/src/merge/resources/chat/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -175,10 +169,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -299,10 +289,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -341,8 +327,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/issues/types/__init__.py b/src/merge/resources/chat/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/chat/resources/issues/types/__init__.py +++ b/src/merge/resources/chat/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/issues/types/issues_list_request_status.py b/src/merge/resources/chat/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/chat/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/chat/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/chat/resources/link_token/__init__.py b/src/merge/resources/chat/resources/link_token/__init__.py index 834918c1..be8c3839 100644 --- a/src/merge/resources/chat/resources/link_token/__init__.py +++ b/src/merge/resources/chat/resources/link_token/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/link_token/client.py b/src/merge/resources/chat/resources/link_token/client.py index 012e3a93..9751cd83 100644 --- a/src/merge/resources/chat/resources/link_token/client.py +++ b/src/merge/resources/chat/resources/link_token/client.py @@ -50,7 +50,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -97,7 +97,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -187,7 +187,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -234,7 +234,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] diff --git a/src/merge/resources/chat/resources/link_token/raw_client.py b/src/merge/resources/chat/resources/link_token/raw_client.py index 5126dc69..edf6f602 100644 --- a/src/merge/resources/chat/resources/link_token/raw_client.py +++ b/src/merge/resources/chat/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -17,7 +16,6 @@ EndUserDetailsRequestCompletedAccountInitialScreen, ) from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -44,7 +42,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -91,7 +89,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -151,10 +149,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -179,7 +173,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -226,7 +220,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -286,8 +280,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/link_token/types/__init__.py b/src/merge/resources/chat/resources/link_token/types/__init__.py index 1846dfb1..55cc1d4e 100644 --- a/src/merge/resources/chat/resources/link_token/types/__init__.py +++ b/src/merge/resources/chat/resources/link_token/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/linked_accounts/__init__.py b/src/merge/resources/chat/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/chat/resources/linked_accounts/__init__.py +++ b/src/merge/resources/chat/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/linked_accounts/raw_client.py b/src/merge/resources/chat/resources/linked_accounts/raw_client.py index 2ec47496..dc0b1eb3 100644 --- a/src/merge/resources/chat/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/chat/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -120,10 +118,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -233,8 +227,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/linked_accounts/types/__init__.py b/src/merge/resources/chat/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/chat/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/chat/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/chat/resources/linked_accounts/types/linked_accounts_list_request_category.py index 035ed972..97df0150 100644 --- a/src/merge/resources/chat/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/chat/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CHAT = "chat" diff --git a/src/merge/resources/chat/resources/messages/__init__.py b/src/merge/resources/chat/resources/messages/__init__.py index 5cac946e..07bbf100 100644 --- a/src/merge/resources/chat/resources/messages/__init__.py +++ b/src/merge/resources/chat/resources/messages/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/messages/raw_client.py b/src/merge/resources/chat/resources/messages/raw_client.py index 890e5fef..ef732e06 100644 --- a/src/merge/resources/chat/resources/messages/raw_client.py +++ b/src/merge/resources/chat/resources/messages/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.message import Message from ...types.paginated_message_list import PaginatedMessageList from .types.messages_list_request_order_by import MessagesListRequestOrderBy from .types.messages_replies_list_request_order_by import MessagesRepliesListRequestOrderBy -from pydantic import ValidationError class RawMessagesClient: @@ -126,10 +124,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -183,10 +177,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def replies_list( @@ -260,10 +250,6 @@ def replies_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -374,10 +360,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -431,10 +413,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def replies_list( @@ -508,8 +486,4 @@ async def replies_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/messages/types/__init__.py b/src/merge/resources/chat/resources/messages/types/__init__.py index 9c656760..fac1eeff 100644 --- a/src/merge/resources/chat/resources/messages/types/__init__.py +++ b/src/merge/resources/chat/resources/messages/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/chat/resources/messages/types/messages_list_request_order_by.py b/src/merge/resources/chat/resources/messages/types/messages_list_request_order_by.py index 077b81d0..f10d0646 100644 --- a/src/merge/resources/chat/resources/messages/types/messages_list_request_order_by.py +++ b/src/merge/resources/chat/resources/messages/types/messages_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MessagesListRequestOrderBy(enum.StrEnum): +class MessagesListRequestOrderBy(str, enum.Enum): REMOTE_CREATED_AT_DESCENDING = "-remote_created_at" REMOTE_CREATED_AT_ASCENDING = "remote_created_at" diff --git a/src/merge/resources/chat/resources/messages/types/messages_replies_list_request_order_by.py b/src/merge/resources/chat/resources/messages/types/messages_replies_list_request_order_by.py index 4af5801d..6b8df524 100644 --- a/src/merge/resources/chat/resources/messages/types/messages_replies_list_request_order_by.py +++ b/src/merge/resources/chat/resources/messages/types/messages_replies_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MessagesRepliesListRequestOrderBy(enum.StrEnum): +class MessagesRepliesListRequestOrderBy(str, enum.Enum): REMOTE_CREATED_AT_DESCENDING = "-remote_created_at" REMOTE_CREATED_AT_ASCENDING = "remote_created_at" diff --git a/src/merge/resources/chat/resources/passthrough/raw_client.py b/src/merge/resources/chat/resources/passthrough/raw_client.py index 54b8d924..d87bb971 100644 --- a/src/merge/resources/chat/resources/passthrough/raw_client.py +++ b/src/merge/resources/chat/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/regenerate_key/raw_client.py b/src/merge/resources/chat/resources/regenerate_key/raw_client.py index f81d301b..55fed130 100644 --- a/src/merge/resources/chat/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/chat/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/scopes/raw_client.py b/src/merge/resources/chat/resources/scopes/raw_client.py index 480f72c3..5b80be62 100644 --- a/src/merge/resources/chat/resources/scopes/raw_client.py +++ b/src/merge/resources/chat/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/sync_status/raw_client.py b/src/merge/resources/chat/resources/sync_status/raw_client.py index 898e7186..2e94b022 100644 --- a/src/merge/resources/chat/resources/sync_status/raw_client.py +++ b/src/merge/resources/chat/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/users/raw_client.py b/src/merge/resources/chat/resources/users/raw_client.py index f2468a66..dae7b212 100644 --- a/src/merge/resources/chat/resources/users/raw_client.py +++ b/src/merge/resources/chat/resources/users/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User -from pydantic import ValidationError class RawUsersClient: @@ -116,10 +114,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -180,10 +174,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -286,10 +276,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -350,8 +336,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/resources/webhook_receivers/raw_client.py b/src/merge/resources/chat/resources/webhook_receivers/raw_client.py index a39ce3aa..56ad6750 100644 --- a/src/merge/resources/chat/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/chat/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/chat/types/__init__.py b/src/merge/resources/chat/types/__init__.py index 559764ef..8140a168 100644 --- a/src/merge/resources/chat/types/__init__.py +++ b/src/merge/resources/chat/types/__init__.py @@ -99,7 +99,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .type_enum import TypeEnum from .user import User from .user_field_mappings import UserFieldMappings @@ -199,7 +201,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "TypeEnum": ".type_enum", "User": ".user", "UserFieldMappings": ".user_field_mappings", @@ -216,10 +220,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -323,7 +325,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TypeEnum", "User", "UserFieldMappings", diff --git a/src/merge/resources/chat/types/account_details_and_actions.py b/src/merge/resources/chat/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/chat/types/account_details_and_actions.py +++ b/src/merge/resources/chat/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/account_details_and_actions_status_enum.py b/src/merge/resources/chat/types/account_details_and_actions_status_enum.py index 323189b4..0701a829 100644 --- a/src/merge/resources/chat/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/chat/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" diff --git a/src/merge/resources/chat/types/account_integration.py b/src/merge/resources/chat/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/chat/types/account_integration.py +++ b/src/merge/resources/chat/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/chat/types/advanced_metadata.py b/src/merge/resources/chat/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/chat/types/advanced_metadata.py +++ b/src/merge/resources/chat/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/categories_enum.py b/src/merge/resources/chat/types/categories_enum.py index f92febf4..b6575458 100644 --- a/src/merge/resources/chat/types/categories_enum.py +++ b/src/merge/resources/chat/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/chat/types/category_enum.py b/src/merge/resources/chat/types/category_enum.py index ac0be82b..4ee2f4e4 100644 --- a/src/merge/resources/chat/types/category_enum.py +++ b/src/merge/resources/chat/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/chat/types/conversation.py b/src/merge/resources/chat/types/conversation.py index bd62405a..9f6bddfe 100644 --- a/src/merge/resources/chat/types/conversation.py +++ b/src/merge/resources/chat/types/conversation.py @@ -89,4 +89,7 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + update_forward_refs(Conversation) diff --git a/src/merge/resources/chat/types/conversation_field_mappings.py b/src/merge/resources/chat/types/conversation_field_mappings.py index 92da0643..21a8d43e 100644 --- a/src/merge/resources/chat/types/conversation_field_mappings.py +++ b/src/merge/resources/chat/types/conversation_field_mappings.py @@ -8,8 +8,8 @@ class ConversationFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/data_passthrough_request.py b/src/merge/resources/chat/types/data_passthrough_request.py index d8d42b8d..5a60bfb6 100644 --- a/src/merge/resources/chat/types/data_passthrough_request.py +++ b/src/merge/resources/chat/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/chat/types/enabled_actions_enum.py b/src/merge/resources/chat/types/enabled_actions_enum.py index ded7aa80..cb19286a 100644 --- a/src/merge/resources/chat/types/enabled_actions_enum.py +++ b/src/merge/resources/chat/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): READ = "READ" WRITE = "WRITE" diff --git a/src/merge/resources/chat/types/encoding_enum.py b/src/merge/resources/chat/types/encoding_enum.py index 27686241..7d4b8977 100644 --- a/src/merge/resources/chat/types/encoding_enum.py +++ b/src/merge/resources/chat/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): RAW = "RAW" BASE_64 = "BASE64" GZIP_BASE_64 = "GZIP_BASE64" diff --git a/src/merge/resources/chat/types/event_type_enum.py b/src/merge/resources/chat/types/event_type_enum.py index 42ce9abb..a04b9681 100644 --- a/src/merge/resources/chat/types/event_type_enum.py +++ b/src/merge/resources/chat/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY" DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY" CREATED_TEST_API_KEY = "CREATED_TEST_API_KEY" diff --git a/src/merge/resources/chat/types/external_target_field_api_response.py b/src/merge/resources/chat/types/external_target_field_api_response.py index cc584be6..624d13ef 100644 --- a/src/merge/resources/chat/types/external_target_field_api_response.py +++ b/src/merge/resources/chat/types/external_target_field_api_response.py @@ -3,32 +3,18 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - conversation: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Conversation"), - pydantic.Field(alias="Conversation"), - ] = None - member: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Member"), - pydantic.Field(alias="Member"), - ] = None + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) + conversation: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="Conversation", default=None + ) + member: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Member", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/chat/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/chat/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/chat/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/chat/types/field_mapping_api_instance_response.py b/src/merge/resources/chat/types/field_mapping_api_instance_response.py index a514be8f..ebded9e9 100644 --- a/src/merge/resources/chat/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/chat/types/field_mapping_api_instance_response.py @@ -3,32 +3,18 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - conversation: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Conversation"), - pydantic.Field(alias="Conversation"), - ] = None - member: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Member"), - pydantic.Field(alias="Member"), - ] = None + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) + conversation: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="Conversation", default=None + ) + member: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Member", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/field_permission_deserializer.py b/src/merge/resources/chat/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/chat/types/field_permission_deserializer.py +++ b/src/merge/resources/chat/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/field_permission_deserializer_request.py b/src/merge/resources/chat/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/chat/types/field_permission_deserializer_request.py +++ b/src/merge/resources/chat/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/group.py b/src/merge/resources/chat/types/group.py index 8535053c..b0ab11f4 100644 --- a/src/merge/resources/chat/types/group.py +++ b/src/merge/resources/chat/types/group.py @@ -71,8 +71,7 @@ class Config: extra = pydantic.Extra.allow -from .group_users_item import GroupUsersItem # noqa: E402, I001 -from .user import User # noqa: E402, I001 -from .user_groups_item import UserGroupsItem # noqa: E402, I001 +from .user import User # noqa: E402, F401, I001 +from .group_users_item import GroupUsersItem # noqa: E402, F401, I001 -update_forward_refs(Group, GroupUsersItem=GroupUsersItem, User=User, UserGroupsItem=UserGroupsItem) +update_forward_refs(Group) diff --git a/src/merge/resources/chat/types/group_field_mappings.py b/src/merge/resources/chat/types/group_field_mappings.py index eaef7341..3be990d2 100644 --- a/src/merge/resources/chat/types/group_field_mappings.py +++ b/src/merge/resources/chat/types/group_field_mappings.py @@ -8,8 +8,8 @@ class GroupFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/issue.py b/src/merge/resources/chat/types/issue.py index ab038c54..8f1027ca 100644 --- a/src/merge/resources/chat/types/issue.py +++ b/src/merge/resources/chat/types/issue.py @@ -17,7 +17,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/chat/types/issue_status_enum.py b/src/merge/resources/chat/types/issue_status_enum.py index 932ae51c..d75e26e2 100644 --- a/src/merge/resources/chat/types/issue_status_enum.py +++ b/src/merge/resources/chat/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/chat/types/language_enum.py b/src/merge/resources/chat/types/language_enum.py index 16d6cd0e..19f87fe0 100644 --- a/src/merge/resources/chat/types/language_enum.py +++ b/src/merge/resources/chat/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): EN = "en" DE = "de" diff --git a/src/merge/resources/chat/types/last_sync_result_enum.py b/src/merge/resources/chat/types/last_sync_result_enum.py index 5cb86bc3..52ecd845 100644 --- a/src/merge/resources/chat/types/last_sync_result_enum.py +++ b/src/merge/resources/chat/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/chat/types/member.py b/src/merge/resources/chat/types/member.py index 03078dea..97acdd53 100644 --- a/src/merge/resources/chat/types/member.py +++ b/src/merge/resources/chat/types/member.py @@ -83,4 +83,7 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + update_forward_refs(Member) diff --git a/src/merge/resources/chat/types/member_field_mappings.py b/src/merge/resources/chat/types/member_field_mappings.py index 1e15b6f5..a102d18d 100644 --- a/src/merge/resources/chat/types/member_field_mappings.py +++ b/src/merge/resources/chat/types/member_field_mappings.py @@ -8,8 +8,8 @@ class MemberFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/method_enum.py b/src/merge/resources/chat/types/method_enum.py index 45c9f89e..73d2556f 100644 --- a/src/merge/resources/chat/types/method_enum.py +++ b/src/merge/resources/chat/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): GET = "GET" OPTIONS = "OPTIONS" HEAD = "HEAD" diff --git a/src/merge/resources/chat/types/paginated_conversation_list.py b/src/merge/resources/chat/types/paginated_conversation_list.py index 70fad94a..3b95e565 100644 --- a/src/merge/resources/chat/types/paginated_conversation_list.py +++ b/src/merge/resources/chat/types/paginated_conversation_list.py @@ -25,4 +25,7 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + update_forward_refs(PaginatedConversationList) diff --git a/src/merge/resources/chat/types/paginated_group_list.py b/src/merge/resources/chat/types/paginated_group_list.py index 3e46b774..1405b628 100644 --- a/src/merge/resources/chat/types/paginated_group_list.py +++ b/src/merge/resources/chat/types/paginated_group_list.py @@ -24,11 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .group import Group # noqa: E402, I001 -from .group_users_item import GroupUsersItem # noqa: E402, I001 -from .user import User # noqa: E402, I001 -from .user_groups_item import UserGroupsItem # noqa: E402, I001 - -update_forward_refs( - PaginatedGroupList, Group=Group, GroupUsersItem=GroupUsersItem, User=User, UserGroupsItem=UserGroupsItem -) +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + +update_forward_refs(PaginatedGroupList) diff --git a/src/merge/resources/chat/types/paginated_member_list.py b/src/merge/resources/chat/types/paginated_member_list.py index 5e83e6a1..d3071471 100644 --- a/src/merge/resources/chat/types/paginated_member_list.py +++ b/src/merge/resources/chat/types/paginated_member_list.py @@ -25,4 +25,7 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + update_forward_refs(PaginatedMemberList) diff --git a/src/merge/resources/chat/types/paginated_user_list.py b/src/merge/resources/chat/types/paginated_user_list.py index ff3ad345..b7efd863 100644 --- a/src/merge/resources/chat/types/paginated_user_list.py +++ b/src/merge/resources/chat/types/paginated_user_list.py @@ -24,11 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .group import Group # noqa: E402, I001 -from .group_users_item import GroupUsersItem # noqa: E402, I001 -from .user import User # noqa: E402, I001 -from .user_groups_item import UserGroupsItem # noqa: E402, I001 - -update_forward_refs( - PaginatedUserList, Group=Group, GroupUsersItem=GroupUsersItem, User=User, UserGroupsItem=UserGroupsItem -) +from .group import Group # noqa: E402, F401, I001 +from .user import User # noqa: E402, F401, I001 + +update_forward_refs(PaginatedUserList) diff --git a/src/merge/resources/chat/types/remote_data.py b/src/merge/resources/chat/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/chat/types/remote_data.py +++ b/src/merge/resources/chat/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/chat/types/remote_endpoint_info.py b/src/merge/resources/chat/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/chat/types/remote_endpoint_info.py +++ b/src/merge/resources/chat/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/remote_field_api.py b/src/merge/resources/chat/types/remote_field_api.py index 5f2c2ab1..0756bfc3 100644 --- a/src/merge/resources/chat/types/remote_field_api.py +++ b/src/merge/resources/chat/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_endpoint_info import RemoteEndpointInfo from .remote_field_api_advanced_metadata import RemoteFieldApiAdvancedMetadata @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[RemoteFieldApiAdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/chat/types/remote_field_api_response.py b/src/merge/resources/chat/types/remote_field_api_response.py index ffedf99e..7e47f247 100644 --- a/src/merge/resources/chat/types/remote_field_api_response.py +++ b/src/merge/resources/chat/types/remote_field_api_response.py @@ -3,28 +3,16 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None - conversation: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Conversation"), - pydantic.Field(alias="Conversation"), - ] = None - member: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Member"), pydantic.Field(alias="Member") - ] = None + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) + conversation: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Conversation", default=None) + member: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Member", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/remote_response.py b/src/merge/resources/chat/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/chat/types/remote_response.py +++ b/src/merge/resources/chat/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/chat/types/request_format_enum.py b/src/merge/resources/chat/types/request_format_enum.py index 711b2df8..70ecd9bb 100644 --- a/src/merge/resources/chat/types/request_format_enum.py +++ b/src/merge/resources/chat/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): JSON = "JSON" XML = "XML" MULTIPART = "MULTIPART" diff --git a/src/merge/resources/chat/types/response_type_enum.py b/src/merge/resources/chat/types/response_type_enum.py index ce3f3d04..23b6bb5b 100644 --- a/src/merge/resources/chat/types/response_type_enum.py +++ b/src/merge/resources/chat/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): JSON = "JSON" BASE_64_GZIP = "BASE64_GZIP" diff --git a/src/merge/resources/chat/types/role_enum.py b/src/merge/resources/chat/types/role_enum.py index 752d2454..c97de31f 100644 --- a/src/merge/resources/chat/types/role_enum.py +++ b/src/merge/resources/chat/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): ADMIN = "ADMIN" DEVELOPER = "DEVELOPER" MEMBER = "MEMBER" diff --git a/src/merge/resources/chat/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/chat/types/selective_sync_configurations_usage_enum.py index 953775e9..7b486b59 100644 --- a/src/merge/resources/chat/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/chat/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): IN_NEXT_SYNC = "IN_NEXT_SYNC" IN_LAST_SYNC = "IN_LAST_SYNC" diff --git a/src/merge/resources/chat/types/status_fd_5_enum.py b/src/merge/resources/chat/types/status_fd_5_enum.py index 52c212e4..3bf97afd 100644 --- a/src/merge/resources/chat/types/status_fd_5_enum.py +++ b/src/merge/resources/chat/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/chat/types/sync_status.py b/src/merge/resources/chat/types/sync_status.py index e8564068..e27689eb 100644 --- a/src/merge/resources/chat/types/sync_status.py +++ b/src/merge/resources/chat/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/chat/types/sync_status_reason_enum.py b/src/merge/resources/chat/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/chat/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/chat/types/sync_status_sync_status_reason.py b/src/merge/resources/chat/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/chat/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/chat/types/type_enum.py b/src/merge/resources/chat/types/type_enum.py index d569bf79..4ae2cabe 100644 --- a/src/merge/resources/chat/types/type_enum.py +++ b/src/merge/resources/chat/types/type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TypeEnum(enum.StrEnum): +class TypeEnum(str, enum.Enum): PRIVATE_INTERNAL = "PRIVATE_INTERNAL" PRIVATE_EXTERNAL = "PRIVATE_EXTERNAL" PUBLIC_INTERNAL = "PUBLIC_INTERNAL" diff --git a/src/merge/resources/chat/types/user.py b/src/merge/resources/chat/types/user.py index 7c7cc901..4c08fc66 100644 --- a/src/merge/resources/chat/types/user.py +++ b/src/merge/resources/chat/types/user.py @@ -97,8 +97,7 @@ class Config: extra = pydantic.Extra.allow -from .group import Group # noqa: E402, I001 -from .group_users_item import GroupUsersItem # noqa: E402, I001 -from .user_groups_item import UserGroupsItem # noqa: E402, I001 +from .group import Group # noqa: E402, F401, I001 +from .user_groups_item import UserGroupsItem # noqa: E402, F401, I001 -update_forward_refs(User, Group=Group, GroupUsersItem=GroupUsersItem, UserGroupsItem=UserGroupsItem) +update_forward_refs(User) diff --git a/src/merge/resources/chat/types/user_field_mappings.py b/src/merge/resources/chat/types/user_field_mappings.py index 6a27272a..374935d7 100644 --- a/src/merge/resources/chat/types/user_field_mappings.py +++ b/src/merge/resources/chat/types/user_field_mappings.py @@ -8,8 +8,8 @@ class UserFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/__init__.py b/src/merge/resources/crm/__init__.py index 7381a0d1..e3494509 100644 --- a/src/merge/resources/crm/__init__.py +++ b/src/merge/resources/crm/__init__.py @@ -230,7 +230,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, Task, TaskAccount, TaskContact, @@ -539,7 +541,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "Task": ".types", "TaskAccount": ".types", "TaskContact": ".types", @@ -600,10 +604,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -854,7 +856,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Task", "TaskAccount", "TaskContact", diff --git a/src/merge/resources/crm/resources/__init__.py b/src/merge/resources/crm/resources/__init__.py index 7eda442f..c7752e72 100644 --- a/src/merge/resources/crm/resources/__init__.py +++ b/src/merge/resources/crm/resources/__init__.py @@ -71,37 +71,37 @@ "OpportunitiesRetrieveRequestExpandItem": ".opportunities", "TasksListRequestExpandItem": ".tasks", "TasksRetrieveRequestExpandItem": ".tasks", - "account_details": ".account_details", - "account_token": ".account_token", - "accounts": ".accounts", - "association_types": ".association_types", - "associations": ".associations", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "contacts": ".contacts", - "custom_object_classes": ".custom_object_classes", - "custom_objects": ".custom_objects", - "delete_account": ".delete_account", - "engagement_types": ".engagement_types", - "engagements": ".engagements", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "issues": ".issues", - "leads": ".leads", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "notes": ".notes", - "opportunities": ".opportunities", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "stages": ".stages", - "sync_status": ".sync_status", - "tasks": ".tasks", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "accounts": ".", + "association_types": ".", + "associations": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "contacts": ".", + "custom_object_classes": ".", + "custom_objects": ".", + "delete_account": ".", + "engagement_types": ".", + "engagements": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "issues": ".", + "leads": ".", + "link_token": ".", + "linked_accounts": ".", + "notes": ".", + "opportunities": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "stages": ".", + "sync_status": ".", + "tasks": ".", + "users": ".", + "webhook_receivers": ".", } @@ -111,10 +111,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/account_details/raw_client.py b/src/merge/resources/crm/resources/account_details/raw_client.py index ea9b7ba4..3f119c05 100644 --- a/src/merge/resources/crm/resources/account_details/raw_client.py +++ b/src/merge/resources/crm/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/account_token/raw_client.py b/src/merge/resources/crm/resources/account_token/raw_client.py index d0828e72..c7cb3d38 100644 --- a/src/merge/resources/crm/resources/account_token/raw_client.py +++ b/src/merge/resources/crm/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/accounts/raw_client.py b/src/merge/resources/crm/resources/accounts/raw_client.py index 18f5199b..e070f3c0 100644 --- a/src/merge/resources/crm/resources/accounts/raw_client.py +++ b/src/merge/resources/crm/resources/accounts/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account import Account @@ -19,7 +18,6 @@ from ...types.paginated_account_list import PaginatedAccountList from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from ...types.patched_account_request import PatchedAccountRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -137,10 +135,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -201,10 +195,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -268,10 +258,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -335,10 +321,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -377,10 +359,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -417,10 +395,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -501,10 +475,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -620,10 +590,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -684,10 +650,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -751,10 +713,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -818,10 +776,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -860,10 +814,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -900,10 +850,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -984,8 +930,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/association_types/raw_client.py b/src/merge/resources/crm/resources/association_types/raw_client.py index 39684d52..666675d2 100644 --- a/src/merge/resources/crm/resources/association_types/raw_client.py +++ b/src/merge/resources/crm/resources/association_types/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.association_type import AssociationType @@ -17,7 +16,6 @@ from ...types.crm_association_type_response import CrmAssociationTypeResponse from ...types.meta_response import MetaResponse from ...types.paginated_association_type_list import PaginatedAssociationTypeList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -127,10 +125,6 @@ def custom_object_classes_association_types_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_association_types_create( @@ -194,10 +188,6 @@ def custom_object_classes_association_types_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_association_types_retrieve( @@ -263,10 +253,6 @@ def custom_object_classes_association_types_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_association_types_meta_post_retrieve( @@ -305,10 +291,6 @@ def custom_object_classes_association_types_meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -416,10 +398,6 @@ async def custom_object_classes_association_types_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_association_types_create( @@ -483,10 +461,6 @@ async def custom_object_classes_association_types_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_association_types_retrieve( @@ -552,10 +526,6 @@ async def custom_object_classes_association_types_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_association_types_meta_post_retrieve( @@ -594,8 +564,4 @@ async def custom_object_classes_association_types_meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/associations/raw_client.py b/src/merge/resources/crm/resources/associations/raw_client.py index 98053db5..7ebdb493 100644 --- a/src/merge/resources/crm/resources/associations/raw_client.py +++ b/src/merge/resources/crm/resources/associations/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.association import Association from ...types.paginated_association_list import PaginatedAssociationList -from pydantic import ValidationError class RawAssociationsClient: @@ -127,10 +125,6 @@ def custom_object_classes_custom_objects_associations_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_custom_objects_associations_update( @@ -196,10 +190,6 @@ def custom_object_classes_custom_objects_associations_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -313,10 +303,6 @@ async def custom_object_classes_custom_objects_associations_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_custom_objects_associations_update( @@ -382,8 +368,4 @@ async def custom_object_classes_custom_objects_associations_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/async_passthrough/__init__.py b/src/merge/resources/crm/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/crm/resources/async_passthrough/__init__.py +++ b/src/merge/resources/crm/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/async_passthrough/raw_client.py b/src/merge/resources/crm/resources/async_passthrough/raw_client.py index 8c22295e..cfcc8c38 100644 --- a/src/merge/resources/crm/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/crm/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/async_passthrough/types/__init__.py b/src/merge/resources/crm/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/crm/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/crm/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/audit_trail/raw_client.py b/src/merge/resources/crm/resources/audit_trail/raw_client.py index f1c38b35..fa5db2d4 100644 --- a/src/merge/resources/crm/resources/audit_trail/raw_client.py +++ b/src/merge/resources/crm/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/available_actions/raw_client.py b/src/merge/resources/crm/resources/available_actions/raw_client.py index 65b3cdea..43d6bb17 100644 --- a/src/merge/resources/crm/resources/available_actions/raw_client.py +++ b/src/merge/resources/crm/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/contacts/__init__.py b/src/merge/resources/crm/resources/contacts/__init__.py index a361a8ca..2c1bb6ab 100644 --- a/src/merge/resources/crm/resources/contacts/__init__.py +++ b/src/merge/resources/crm/resources/contacts/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/contacts/raw_client.py b/src/merge/resources/crm/resources/contacts/raw_client.py index ac4c2dd8..6af7dc7a 100644 --- a/src/merge/resources/crm/resources/contacts/raw_client.py +++ b/src/merge/resources/crm/resources/contacts/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.contact import Contact @@ -22,7 +21,6 @@ from ...types.patched_contact_request import PatchedContactRequest from .types.contacts_list_request_expand_item import ContactsListRequestExpandItem from .types.contacts_retrieve_request_expand_item import ContactsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -147,10 +145,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -211,10 +205,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -280,10 +270,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -347,10 +333,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def ignore_create( @@ -392,10 +374,6 @@ def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -434,10 +412,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -474,10 +448,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -558,10 +528,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -684,10 +650,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -748,10 +710,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -817,10 +775,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -884,10 +838,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def ignore_create( @@ -929,10 +879,6 @@ async def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -971,10 +917,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1011,10 +953,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1095,8 +1033,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/contacts/types/__init__.py b/src/merge/resources/crm/resources/contacts/types/__init__.py index 0aa692b4..45a632d4 100644 --- a/src/merge/resources/crm/resources/contacts/types/__init__.py +++ b/src/merge/resources/crm/resources/contacts/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/contacts/types/contacts_list_request_expand_item.py b/src/merge/resources/crm/resources/contacts/types/contacts_list_request_expand_item.py index 3d519c2a..535fbae5 100644 --- a/src/merge/resources/crm/resources/contacts/types/contacts_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/contacts/types/contacts_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContactsListRequestExpandItem(enum.StrEnum): +class ContactsListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" OWNER = "owner" diff --git a/src/merge/resources/crm/resources/contacts/types/contacts_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/contacts/types/contacts_retrieve_request_expand_item.py index 206fba86..bacd3801 100644 --- a/src/merge/resources/crm/resources/contacts/types/contacts_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/contacts/types/contacts_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContactsRetrieveRequestExpandItem(enum.StrEnum): +class ContactsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" OWNER = "owner" diff --git a/src/merge/resources/crm/resources/custom_object_classes/raw_client.py b/src/merge/resources/crm/resources/custom_object_classes/raw_client.py index 6bede609..2e56fb9c 100644 --- a/src/merge/resources/crm/resources/custom_object_classes/raw_client.py +++ b/src/merge/resources/crm/resources/custom_object_classes/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.custom_object_class import CustomObjectClass from ...types.paginated_custom_object_class_list import PaginatedCustomObjectClassList -from pydantic import ValidationError class RawCustomObjectClassesClient: @@ -116,10 +114,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -180,10 +174,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -286,10 +276,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -350,8 +336,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/custom_objects/raw_client.py b/src/merge/resources/crm/resources/custom_objects/raw_client.py index fd38ba59..e9591c5e 100644 --- a/src/merge/resources/crm/resources/custom_objects/raw_client.py +++ b/src/merge/resources/crm/resources/custom_objects/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.crm_custom_object_response import CrmCustomObjectResponse @@ -18,7 +17,6 @@ from ...types.meta_response import MetaResponse from ...types.paginated_custom_object_list import PaginatedCustomObjectList from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -124,10 +122,6 @@ def custom_object_classes_custom_objects_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_custom_objects_create( @@ -191,10 +185,6 @@ def custom_object_classes_custom_objects_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_custom_objects_retrieve( @@ -256,10 +246,6 @@ def custom_object_classes_custom_objects_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_custom_objects_meta_post_retrieve( @@ -298,10 +284,6 @@ def custom_object_classes_custom_objects_meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def custom_object_classes_custom_objects_remote_field_classes_list( @@ -382,10 +364,6 @@ def custom_object_classes_custom_objects_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -489,10 +467,6 @@ async def custom_object_classes_custom_objects_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_custom_objects_create( @@ -556,10 +530,6 @@ async def custom_object_classes_custom_objects_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_custom_objects_retrieve( @@ -621,10 +591,6 @@ async def custom_object_classes_custom_objects_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_custom_objects_meta_post_retrieve( @@ -663,10 +629,6 @@ async def custom_object_classes_custom_objects_meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def custom_object_classes_custom_objects_remote_field_classes_list( @@ -747,8 +709,4 @@ async def custom_object_classes_custom_objects_remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/delete_account/raw_client.py b/src/merge/resources/crm/resources/delete_account/raw_client.py index aea32dba..ea9a0ba6 100644 --- a/src/merge/resources/crm/resources/delete_account/raw_client.py +++ b/src/merge/resources/crm/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/engagement_types/raw_client.py b/src/merge/resources/crm/resources/engagement_types/raw_client.py index 83b7adf9..420333d6 100644 --- a/src/merge/resources/crm/resources/engagement_types/raw_client.py +++ b/src/merge/resources/crm/resources/engagement_types/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.engagement_type import EngagementType from ...types.paginated_engagement_type_list import PaginatedEngagementTypeList from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList -from pydantic import ValidationError class RawEngagementTypesClient: @@ -115,10 +113,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -177,10 +171,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -261,10 +251,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -365,10 +351,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -427,10 +409,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -511,8 +489,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/engagements/__init__.py b/src/merge/resources/crm/resources/engagements/__init__.py index 526c1c1a..26d23f3e 100644 --- a/src/merge/resources/crm/resources/engagements/__init__.py +++ b/src/merge/resources/crm/resources/engagements/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/engagements/raw_client.py b/src/merge/resources/crm/resources/engagements/raw_client.py index 5927521e..d119a9c7 100644 --- a/src/merge/resources/crm/resources/engagements/raw_client.py +++ b/src/merge/resources/crm/resources/engagements/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.engagement import Engagement @@ -21,7 +20,6 @@ from ...types.patched_engagement_request import PatchedEngagementRequest from .types.engagements_list_request_expand_item import EngagementsListRequestExpandItem from .types.engagements_retrieve_request_expand_item import EngagementsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -141,10 +139,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -205,10 +199,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -274,10 +264,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -341,10 +327,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -383,10 +365,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -423,10 +401,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -507,10 +481,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -628,10 +598,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -692,10 +658,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -761,10 +723,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -828,10 +786,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -870,10 +824,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -910,10 +860,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -994,8 +940,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/engagements/types/__init__.py b/src/merge/resources/crm/resources/engagements/types/__init__.py index 95555c3d..8bcded71 100644 --- a/src/merge/resources/crm/resources/engagements/types/__init__.py +++ b/src/merge/resources/crm/resources/engagements/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/engagements/types/engagements_list_request_expand_item.py b/src/merge/resources/crm/resources/engagements/types/engagements_list_request_expand_item.py index e7bba1c4..436161b5 100644 --- a/src/merge/resources/crm/resources/engagements/types/engagements_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/engagements/types/engagements_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EngagementsListRequestExpandItem(enum.StrEnum): +class EngagementsListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACTS = "contacts" ENGAGEMENT_TYPE = "engagement_type" diff --git a/src/merge/resources/crm/resources/engagements/types/engagements_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/engagements/types/engagements_retrieve_request_expand_item.py index 4546651f..1232f6e3 100644 --- a/src/merge/resources/crm/resources/engagements/types/engagements_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/engagements/types/engagements_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EngagementsRetrieveRequestExpandItem(enum.StrEnum): +class EngagementsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACTS = "contacts" ENGAGEMENT_TYPE = "engagement_type" diff --git a/src/merge/resources/crm/resources/field_mapping/client.py b/src/merge/resources/crm/resources/field_mapping/client.py index c83f9f5e..6dc22cea 100644 --- a/src/merge/resources/crm/resources/field_mapping/client.py +++ b/src/merge/resources/crm/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -93,7 +93,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -193,7 +193,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -209,7 +209,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -394,7 +394,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -414,7 +414,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -530,7 +530,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -546,7 +546,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/crm/resources/field_mapping/raw_client.py b/src/merge/resources/crm/resources/field_mapping/raw_client.py index 60ea9245..0d5652ee 100644 --- a/src/merge/resources/crm/resources/field_mapping/raw_client.py +++ b/src/merge/resources/crm/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -98,7 +92,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -162,10 +156,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -204,10 +194,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -215,7 +201,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -231,7 +217,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -282,10 +268,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -336,10 +318,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -376,10 +354,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -430,10 +404,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -441,7 +411,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -461,7 +431,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -525,10 +495,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -567,10 +533,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -578,7 +540,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -594,7 +556,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -645,10 +607,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -699,10 +657,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -739,8 +693,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/force_resync/raw_client.py b/src/merge/resources/crm/resources/force_resync/raw_client.py index 99b5cb01..7f58564f 100644 --- a/src/merge/resources/crm/resources/force_resync/raw_client.py +++ b/src/merge/resources/crm/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/generate_key/raw_client.py b/src/merge/resources/crm/resources/generate_key/raw_client.py index cdd41e16..9e1ed9cd 100644 --- a/src/merge/resources/crm/resources/generate_key/raw_client.py +++ b/src/merge/resources/crm/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/issues/__init__.py b/src/merge/resources/crm/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/crm/resources/issues/__init__.py +++ b/src/merge/resources/crm/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/issues/raw_client.py b/src/merge/resources/crm/resources/issues/raw_client.py index e1c80471..8a9bdd39 100644 --- a/src/merge/resources/crm/resources/issues/raw_client.py +++ b/src/merge/resources/crm/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/issues/types/__init__.py b/src/merge/resources/crm/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/crm/resources/issues/types/__init__.py +++ b/src/merge/resources/crm/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/issues/types/issues_list_request_status.py b/src/merge/resources/crm/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/crm/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/crm/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/crm/resources/leads/__init__.py b/src/merge/resources/crm/resources/leads/__init__.py index d7d10fed..d12cf119 100644 --- a/src/merge/resources/crm/resources/leads/__init__.py +++ b/src/merge/resources/crm/resources/leads/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/leads/raw_client.py b/src/merge/resources/crm/resources/leads/raw_client.py index 0d6770cd..28c69dfc 100644 --- a/src/merge/resources/crm/resources/leads/raw_client.py +++ b/src/merge/resources/crm/resources/leads/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.lead import Lead @@ -20,7 +19,6 @@ from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from .types.leads_list_request_expand_item import LeadsListRequestExpandItem from .types.leads_retrieve_request_expand_item import LeadsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -155,10 +153,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -219,10 +213,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -288,10 +278,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -328,10 +314,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -412,10 +394,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -548,10 +526,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -612,10 +586,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -681,10 +651,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -721,10 +687,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -805,8 +767,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/leads/types/__init__.py b/src/merge/resources/crm/resources/leads/types/__init__.py index 7109ede0..d3af6e19 100644 --- a/src/merge/resources/crm/resources/leads/types/__init__.py +++ b/src/merge/resources/crm/resources/leads/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/leads/types/leads_list_request_expand_item.py b/src/merge/resources/crm/resources/leads/types/leads_list_request_expand_item.py index 59042f2f..386fe5db 100644 --- a/src/merge/resources/crm/resources/leads/types/leads_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/leads/types/leads_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LeadsListRequestExpandItem(enum.StrEnum): +class LeadsListRequestExpandItem(str, enum.Enum): CONVERTED_ACCOUNT = "converted_account" CONVERTED_CONTACT = "converted_contact" OWNER = "owner" diff --git a/src/merge/resources/crm/resources/leads/types/leads_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/leads/types/leads_retrieve_request_expand_item.py index 40ce9a16..19c71587 100644 --- a/src/merge/resources/crm/resources/leads/types/leads_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/leads/types/leads_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LeadsRetrieveRequestExpandItem(enum.StrEnum): +class LeadsRetrieveRequestExpandItem(str, enum.Enum): CONVERTED_ACCOUNT = "converted_account" CONVERTED_CONTACT = "converted_contact" OWNER = "owner" diff --git a/src/merge/resources/crm/resources/link_token/__init__.py b/src/merge/resources/crm/resources/link_token/__init__.py index 15700960..3bad6adf 100644 --- a/src/merge/resources/crm/resources/link_token/__init__.py +++ b/src/merge/resources/crm/resources/link_token/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/link_token/client.py b/src/merge/resources/crm/resources/link_token/client.py index f67093b7..92a78722 100644 --- a/src/merge/resources/crm/resources/link_token/client.py +++ b/src/merge/resources/crm/resources/link_token/client.py @@ -47,7 +47,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -94,7 +94,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -172,7 +172,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -219,7 +219,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] diff --git a/src/merge/resources/crm/resources/link_token/raw_client.py b/src/merge/resources/crm/resources/link_token/raw_client.py index 7d72b03c..0c829e1d 100644 --- a/src/merge/resources/crm/resources/link_token/raw_client.py +++ b/src/merge/resources/crm/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -14,7 +13,6 @@ from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest from ...types.link_token import LinkToken from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +39,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[LinkToken]: """ @@ -88,7 +86,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -136,10 +134,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,7 +158,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[LinkToken]: """ @@ -211,7 +205,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -259,8 +253,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/link_token/types/__init__.py b/src/merge/resources/crm/resources/link_token/types/__init__.py index dad2a14a..e9a7d3b9 100644 --- a/src/merge/resources/crm/resources/link_token/types/__init__.py +++ b/src/merge/resources/crm/resources/link_token/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/linked_accounts/__init__.py b/src/merge/resources/crm/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/crm/resources/linked_accounts/__init__.py +++ b/src/merge/resources/crm/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/linked_accounts/raw_client.py b/src/merge/resources/crm/resources/linked_accounts/raw_client.py index c1481bac..443e75e0 100644 --- a/src/merge/resources/crm/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/crm/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -249,8 +243,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/linked_accounts/types/__init__.py b/src/merge/resources/crm/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/crm/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/crm/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/crm/resources/linked_accounts/types/linked_accounts_list_request_category.py index ce04d1de..bd873ea8 100644 --- a/src/merge/resources/crm/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/crm/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CRM = "crm" diff --git a/src/merge/resources/crm/resources/notes/__init__.py b/src/merge/resources/crm/resources/notes/__init__.py index 2c436175..00283fd0 100644 --- a/src/merge/resources/crm/resources/notes/__init__.py +++ b/src/merge/resources/crm/resources/notes/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/notes/raw_client.py b/src/merge/resources/crm/resources/notes/raw_client.py index 07e14bb7..5e3618c4 100644 --- a/src/merge/resources/crm/resources/notes/raw_client.py +++ b/src/merge/resources/crm/resources/notes/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -20,7 +19,6 @@ from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from .types.notes_list_request_expand_item import NotesListRequestExpandItem from .types.notes_retrieve_request_expand_item import NotesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -150,10 +148,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -214,10 +208,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -283,10 +273,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -323,10 +309,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -407,10 +389,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -538,10 +516,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -602,10 +576,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -671,10 +641,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -711,10 +677,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -795,8 +757,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/notes/types/__init__.py b/src/merge/resources/crm/resources/notes/types/__init__.py index ff841cff..ccddadf7 100644 --- a/src/merge/resources/crm/resources/notes/types/__init__.py +++ b/src/merge/resources/crm/resources/notes/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/notes/types/notes_list_request_expand_item.py b/src/merge/resources/crm/resources/notes/types/notes_list_request_expand_item.py index 87864ee3..b062d7bf 100644 --- a/src/merge/resources/crm/resources/notes/types/notes_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/notes/types/notes_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class NotesListRequestExpandItem(enum.StrEnum): +class NotesListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACT = "contact" OPPORTUNITY = "opportunity" diff --git a/src/merge/resources/crm/resources/notes/types/notes_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/notes/types/notes_retrieve_request_expand_item.py index ef0bbdae..3680c443 100644 --- a/src/merge/resources/crm/resources/notes/types/notes_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/notes/types/notes_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class NotesRetrieveRequestExpandItem(enum.StrEnum): +class NotesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACT = "contact" OPPORTUNITY = "opportunity" diff --git a/src/merge/resources/crm/resources/opportunities/__init__.py b/src/merge/resources/crm/resources/opportunities/__init__.py index ce948f15..2768275c 100644 --- a/src/merge/resources/crm/resources/opportunities/__init__.py +++ b/src/merge/resources/crm/resources/opportunities/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/opportunities/raw_client.py b/src/merge/resources/crm/resources/opportunities/raw_client.py index 26a5ceff..857ce6ea 100644 --- a/src/merge/resources/crm/resources/opportunities/raw_client.py +++ b/src/merge/resources/crm/resources/opportunities/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -22,7 +21,6 @@ from .types.opportunities_list_request_expand_item import OpportunitiesListRequestExpandItem from .types.opportunities_list_request_status import OpportunitiesListRequestStatus from .types.opportunities_retrieve_request_expand_item import OpportunitiesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -173,10 +171,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -237,10 +231,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -318,10 +308,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -385,10 +371,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -427,10 +409,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -467,10 +445,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -551,10 +525,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -703,10 +673,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -767,10 +733,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -848,10 +810,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -915,10 +873,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -957,10 +911,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -997,10 +947,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1081,8 +1027,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/opportunities/types/__init__.py b/src/merge/resources/crm/resources/opportunities/types/__init__.py index 0c0a80d6..1de02ea6 100644 --- a/src/merge/resources/crm/resources/opportunities/types/__init__.py +++ b/src/merge/resources/crm/resources/opportunities/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_expand_item.py b/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_expand_item.py index 4bb31b73..f8c1e8ce 100644 --- a/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OpportunitiesListRequestExpandItem(enum.StrEnum): +class OpportunitiesListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" OWNER = "owner" STAGE = "stage" diff --git a/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_status.py b/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_status.py index 3d11a529..e194cf42 100644 --- a/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_status.py +++ b/src/merge/resources/crm/resources/opportunities/types/opportunities_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OpportunitiesListRequestStatus(enum.StrEnum): +class OpportunitiesListRequestStatus(str, enum.Enum): LOST = "LOST" OPEN = "OPEN" WON = "WON" diff --git a/src/merge/resources/crm/resources/opportunities/types/opportunities_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/opportunities/types/opportunities_retrieve_request_expand_item.py index fb843ba5..68e8adfa 100644 --- a/src/merge/resources/crm/resources/opportunities/types/opportunities_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/opportunities/types/opportunities_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class OpportunitiesRetrieveRequestExpandItem(enum.StrEnum): +class OpportunitiesRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" OWNER = "owner" STAGE = "stage" diff --git a/src/merge/resources/crm/resources/passthrough/raw_client.py b/src/merge/resources/crm/resources/passthrough/raw_client.py index 2950cf58..82732697 100644 --- a/src/merge/resources/crm/resources/passthrough/raw_client.py +++ b/src/merge/resources/crm/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/regenerate_key/raw_client.py b/src/merge/resources/crm/resources/regenerate_key/raw_client.py index 6549bd3b..2c036af9 100644 --- a/src/merge/resources/crm/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/crm/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/scopes/raw_client.py b/src/merge/resources/crm/resources/scopes/raw_client.py index cbafb67a..39fc9689 100644 --- a/src/merge/resources/crm/resources/scopes/raw_client.py +++ b/src/merge/resources/crm/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/stages/raw_client.py b/src/merge/resources/crm/resources/stages/raw_client.py index 4e2d5006..040973cc 100644 --- a/src/merge/resources/crm/resources/stages/raw_client.py +++ b/src/merge/resources/crm/resources/stages/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from ...types.paginated_stage_list import PaginatedStageList from ...types.stage import Stage -from pydantic import ValidationError class RawStagesClient: @@ -115,10 +113,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -177,10 +171,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -261,10 +251,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -365,10 +351,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -427,10 +409,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -511,8 +489,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/sync_status/raw_client.py b/src/merge/resources/crm/resources/sync_status/raw_client.py index 6b9b3214..d93258e4 100644 --- a/src/merge/resources/crm/resources/sync_status/raw_client.py +++ b/src/merge/resources/crm/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/tasks/__init__.py b/src/merge/resources/crm/resources/tasks/__init__.py index 7677ff28..bbae5eef 100644 --- a/src/merge/resources/crm/resources/tasks/__init__.py +++ b/src/merge/resources/crm/resources/tasks/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/tasks/raw_client.py b/src/merge/resources/crm/resources/tasks/raw_client.py index 35dfb5e6..6510826e 100644 --- a/src/merge/resources/crm/resources/tasks/raw_client.py +++ b/src/merge/resources/crm/resources/tasks/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -21,7 +20,6 @@ from ...types.task_response import TaskResponse from .types.tasks_list_request_expand_item import TasksListRequestExpandItem from .types.tasks_retrieve_request_expand_item import TasksRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -131,10 +129,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -195,10 +189,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -264,10 +254,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -331,10 +317,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_patch_retrieve( @@ -373,10 +355,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -413,10 +391,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -497,10 +471,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -608,10 +578,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -672,10 +638,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -741,10 +703,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -808,10 +766,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_patch_retrieve( @@ -850,10 +804,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -890,10 +840,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -974,8 +920,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/tasks/types/__init__.py b/src/merge/resources/crm/resources/tasks/types/__init__.py index 47590abf..9395dcba 100644 --- a/src/merge/resources/crm/resources/tasks/types/__init__.py +++ b/src/merge/resources/crm/resources/tasks/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/crm/resources/tasks/types/tasks_list_request_expand_item.py b/src/merge/resources/crm/resources/tasks/types/tasks_list_request_expand_item.py index 54a6ffe9..67e914f9 100644 --- a/src/merge/resources/crm/resources/tasks/types/tasks_list_request_expand_item.py +++ b/src/merge/resources/crm/resources/tasks/types/tasks_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TasksListRequestExpandItem(enum.StrEnum): +class TasksListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACT = "contact" OPPORTUNITY = "opportunity" diff --git a/src/merge/resources/crm/resources/tasks/types/tasks_retrieve_request_expand_item.py b/src/merge/resources/crm/resources/tasks/types/tasks_retrieve_request_expand_item.py index dd682992..c1c1f294 100644 --- a/src/merge/resources/crm/resources/tasks/types/tasks_retrieve_request_expand_item.py +++ b/src/merge/resources/crm/resources/tasks/types/tasks_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TasksRetrieveRequestExpandItem(enum.StrEnum): +class TasksRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" CONTACT = "contact" OPPORTUNITY = "opportunity" diff --git a/src/merge/resources/crm/resources/users/raw_client.py b/src/merge/resources/crm/resources/users/raw_client.py index dcb0a585..40698bc6 100644 --- a/src/merge/resources/crm/resources/users/raw_client.py +++ b/src/merge/resources/crm/resources/users/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.ignore_common_model_request import IgnoreCommonModelRequest from ...types.paginated_remote_field_class_list import PaginatedRemoteFieldClassList from ...types.paginated_user_list import PaginatedUserList from ...types.user import User -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -124,10 +122,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -186,10 +180,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def ignore_create( @@ -231,10 +221,6 @@ def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -315,10 +301,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -424,10 +406,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -486,10 +464,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def ignore_create( @@ -531,10 +505,6 @@ async def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -615,8 +585,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/resources/webhook_receivers/raw_client.py b/src/merge/resources/crm/resources/webhook_receivers/raw_client.py index 5a4fe5da..fed0c538 100644 --- a/src/merge/resources/crm/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/crm/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/crm/types/__init__.py b/src/merge/resources/crm/types/__init__.py index 2f1acbbb..5596e8de 100644 --- a/src/merge/resources/crm/types/__init__.py +++ b/src/merge/resources/crm/types/__init__.py @@ -235,7 +235,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .task import Task from .task_account import TaskAccount from .task_contact import TaskContact @@ -478,7 +480,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "Task": ".task", "TaskAccount": ".task_account", "TaskContact": ".task_contact", @@ -506,10 +510,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -745,7 +747,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Task", "TaskAccount", "TaskContact", diff --git a/src/merge/resources/crm/types/account.py b/src/merge/resources/crm/types/account.py index 20e073e5..a76e2b6f 100644 --- a/src/merge/resources/crm/types/account.py +++ b/src/merge/resources/crm/types/account.py @@ -90,7 +90,7 @@ class Account(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/account_details_and_actions.py b/src/merge/resources/crm/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/crm/types/account_details_and_actions.py +++ b/src/merge/resources/crm/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/account_details_and_actions_status_enum.py b/src/merge/resources/crm/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/crm/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/crm/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/crm/types/account_integration.py b/src/merge/resources/crm/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/crm/types/account_integration.py +++ b/src/merge/resources/crm/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/crm/types/account_request.py b/src/merge/resources/crm/types/account_request.py index 0560ebb3..0f7fc493 100644 --- a/src/merge/resources/crm/types/account_request.py +++ b/src/merge/resources/crm/types/account_request.py @@ -56,8 +56,8 @@ class AccountRequest(UncheckedBaseModel): The last date (either most recent or furthest in the future) of when an activity occurs in an account. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/activity_type_enum.py b/src/merge/resources/crm/types/activity_type_enum.py index bb665b9a..f6cf5846 100644 --- a/src/merge/resources/crm/types/activity_type_enum.py +++ b/src/merge/resources/crm/types/activity_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ActivityTypeEnum(enum.StrEnum): +class ActivityTypeEnum(str, enum.Enum): """ * `CALL` - CALL * `MEETING` - MEETING diff --git a/src/merge/resources/crm/types/address_request.py b/src/merge/resources/crm/types/address_request.py index 55b1fedf..6ae6189e 100644 --- a/src/merge/resources/crm/types/address_request.py +++ b/src/merge/resources/crm/types/address_request.py @@ -306,8 +306,8 @@ class AddressRequest(UncheckedBaseModel): * `SHIPPING` - SHIPPING """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/address_type_enum.py b/src/merge/resources/crm/types/address_type_enum.py index 397f768d..69be620b 100644 --- a/src/merge/resources/crm/types/address_type_enum.py +++ b/src/merge/resources/crm/types/address_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AddressTypeEnum(enum.StrEnum): +class AddressTypeEnum(str, enum.Enum): """ * `BILLING` - BILLING * `SHIPPING` - SHIPPING diff --git a/src/merge/resources/crm/types/advanced_metadata.py b/src/merge/resources/crm/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/crm/types/advanced_metadata.py +++ b/src/merge/resources/crm/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/association_type.py b/src/merge/resources/crm/types/association_type.py index 877f36ba..e71d63b3 100644 --- a/src/merge/resources/crm/types/association_type.py +++ b/src/merge/resources/crm/types/association_type.py @@ -35,7 +35,7 @@ class AssociationType(UncheckedBaseModel): The datetime that this object was modified by Merge. """ - source_object_class: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + source_object_class: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The class of the source object (Custom Object or Common Model) for the association type. """ diff --git a/src/merge/resources/crm/types/cardinality_enum.py b/src/merge/resources/crm/types/cardinality_enum.py index 793a52ca..d15b96fe 100644 --- a/src/merge/resources/crm/types/cardinality_enum.py +++ b/src/merge/resources/crm/types/cardinality_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CardinalityEnum(enum.StrEnum): +class CardinalityEnum(str, enum.Enum): """ * `ONE_TO_ONE` - ONE_TO_ONE * `MANY_TO_ONE` - MANY_TO_ONE diff --git a/src/merge/resources/crm/types/categories_enum.py b/src/merge/resources/crm/types/categories_enum.py index 82308151..3f2dc5a9 100644 --- a/src/merge/resources/crm/types/categories_enum.py +++ b/src/merge/resources/crm/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/crm/types/category_enum.py b/src/merge/resources/crm/types/category_enum.py index 9a2fa8c7..d37e48f5 100644 --- a/src/merge/resources/crm/types/category_enum.py +++ b/src/merge/resources/crm/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/crm/types/contact.py b/src/merge/resources/crm/types/contact.py index 3829b700..d5b7019a 100644 --- a/src/merge/resources/crm/types/contact.py +++ b/src/merge/resources/crm/types/contact.py @@ -78,7 +78,7 @@ class Contact(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/contact_request.py b/src/merge/resources/crm/types/contact_request.py index 2570ed7c..12849554 100644 --- a/src/merge/resources/crm/types/contact_request.py +++ b/src/merge/resources/crm/types/contact_request.py @@ -51,8 +51,8 @@ class ContactRequest(UncheckedBaseModel): When the contact's last activity occurred. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/country_enum.py b/src/merge/resources/crm/types/country_enum.py index f2dd1f87..a631e320 100644 --- a/src/merge/resources/crm/types/country_enum.py +++ b/src/merge/resources/crm/types/country_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CountryEnum(enum.StrEnum): +class CountryEnum(str, enum.Enum): """ * `AF` - Afghanistan * `AX` - Åland Islands diff --git a/src/merge/resources/crm/types/custom_object.py b/src/merge/resources/crm/types/custom_object.py index d4621387..8f61f187 100644 --- a/src/merge/resources/crm/types/custom_object.py +++ b/src/merge/resources/crm/types/custom_object.py @@ -39,7 +39,7 @@ class CustomObject(UncheckedBaseModel): The custom object class the custom object record belongs to. """ - fields: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The fields and values contained within the custom object record. """ diff --git a/src/merge/resources/crm/types/custom_object_class.py b/src/merge/resources/crm/types/custom_object_class.py index b0479973..988806de 100644 --- a/src/merge/resources/crm/types/custom_object_class.py +++ b/src/merge/resources/crm/types/custom_object_class.py @@ -42,7 +42,9 @@ class CustomObjectClass(UncheckedBaseModel): """ fields: typing.Optional[typing.List[CustomObjectClassFieldsItem]] = None - association_types: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic.Field(default=None) + association_types: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field( + default=None + ) """ The types of associations with other models that the custom object class can have. """ diff --git a/src/merge/resources/crm/types/custom_object_request.py b/src/merge/resources/crm/types/custom_object_request.py index b5d526da..012650f9 100644 --- a/src/merge/resources/crm/types/custom_object_request.py +++ b/src/merge/resources/crm/types/custom_object_request.py @@ -8,9 +8,9 @@ class CustomObjectRequest(UncheckedBaseModel): - fields: typing.Dict[str, typing.Any] - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + fields: typing.Dict[str, typing.Optional[typing.Any]] + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/data_passthrough_request.py b/src/merge/resources/crm/types/data_passthrough_request.py index df3af029..c9f0a799 100644 --- a/src/merge/resources/crm/types/data_passthrough_request.py +++ b/src/merge/resources/crm/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/crm/types/direction_enum.py b/src/merge/resources/crm/types/direction_enum.py index 94a809c9..07c93ea6 100644 --- a/src/merge/resources/crm/types/direction_enum.py +++ b/src/merge/resources/crm/types/direction_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class DirectionEnum(enum.StrEnum): +class DirectionEnum(str, enum.Enum): """ * `INBOUND` - INBOUND * `OUTBOUND` - OUTBOUND diff --git a/src/merge/resources/crm/types/email_address_request.py b/src/merge/resources/crm/types/email_address_request.py index 0633cce6..ae878e00 100644 --- a/src/merge/resources/crm/types/email_address_request.py +++ b/src/merge/resources/crm/types/email_address_request.py @@ -26,8 +26,8 @@ class EmailAddressRequest(UncheckedBaseModel): The email address's type. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/enabled_actions_enum.py b/src/merge/resources/crm/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/crm/types/enabled_actions_enum.py +++ b/src/merge/resources/crm/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/crm/types/encoding_enum.py b/src/merge/resources/crm/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/crm/types/encoding_enum.py +++ b/src/merge/resources/crm/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/crm/types/engagement.py b/src/merge/resources/crm/types/engagement.py index e149fd8b..4a351907 100644 --- a/src/merge/resources/crm/types/engagement.py +++ b/src/merge/resources/crm/types/engagement.py @@ -89,7 +89,7 @@ class Engagement(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/engagement_request.py b/src/merge/resources/crm/types/engagement_request.py index 6f161e98..682149c2 100644 --- a/src/merge/resources/crm/types/engagement_request.py +++ b/src/merge/resources/crm/types/engagement_request.py @@ -67,8 +67,8 @@ class EngagementRequest(UncheckedBaseModel): """ contacts: typing.Optional[typing.List[typing.Optional[EngagementRequestContactsItem]]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/event_type_enum.py b/src/merge/resources/crm/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/crm/types/event_type_enum.py +++ b/src/merge/resources/crm/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/crm/types/external_target_field_api_response.py b/src/merge/resources/crm/types/external_target_field_api_response.py index be9db5e9..8613e032 100644 --- a/src/merge/resources/crm/types/external_target_field_api_response.py +++ b/src/merge/resources/crm/types/external_target_field_api_response.py @@ -3,51 +3,23 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None - lead: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Lead"), pydantic.Field(alias="Lead") - ] = None - note: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Note"), pydantic.Field(alias="Note") - ] = None - opportunity: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Opportunity"), - pydantic.Field(alias="Opportunity"), - ] = None - stage: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Stage"), - pydantic.Field(alias="Stage"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - task: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Task"), pydantic.Field(alias="Task") - ] = None - engagement: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Engagement"), - pydantic.Field(alias="Engagement"), - ] = None + account: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Account", default=None) + contact: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Contact", default=None) + lead: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Lead", default=None) + note: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Note", default=None) + opportunity: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="Opportunity", default=None + ) + stage: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Stage", default=None) + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + task: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Task", default=None) + engagement: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Engagement", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/field_format_enum.py b/src/merge/resources/crm/types/field_format_enum.py index 26052239..2f6eda2f 100644 --- a/src/merge/resources/crm/types/field_format_enum.py +++ b/src/merge/resources/crm/types/field_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldFormatEnum(enum.StrEnum): +class FieldFormatEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/crm/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/crm/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/crm/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/crm/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/field_mapping_api_instance_response.py b/src/merge/resources/crm/types/field_mapping_api_instance_response.py index c03cc878..83c33ca6 100644 --- a/src/merge/resources/crm/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/crm/types/field_mapping_api_instance_response.py @@ -3,51 +3,23 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None - lead: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Lead"), pydantic.Field(alias="Lead") - ] = None - note: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Note"), pydantic.Field(alias="Note") - ] = None - opportunity: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Opportunity"), - pydantic.Field(alias="Opportunity"), - ] = None - stage: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Stage"), - pydantic.Field(alias="Stage"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - task: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Task"), pydantic.Field(alias="Task") - ] = None - engagement: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Engagement"), - pydantic.Field(alias="Engagement"), - ] = None + account: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Account", default=None) + contact: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Contact", default=None) + lead: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Lead", default=None) + note: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Note", default=None) + opportunity: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="Opportunity", default=None + ) + stage: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Stage", default=None) + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + task: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Task", default=None) + engagement: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Engagement", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/field_permission_deserializer.py b/src/merge/resources/crm/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/crm/types/field_permission_deserializer.py +++ b/src/merge/resources/crm/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/field_permission_deserializer_request.py b/src/merge/resources/crm/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/crm/types/field_permission_deserializer_request.py +++ b/src/merge/resources/crm/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/field_type_enum.py b/src/merge/resources/crm/types/field_type_enum.py index d3635f4b..b99c1309 100644 --- a/src/merge/resources/crm/types/field_type_enum.py +++ b/src/merge/resources/crm/types/field_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldTypeEnum(enum.StrEnum): +class FieldTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/crm/types/issue.py b/src/merge/resources/crm/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/crm/types/issue.py +++ b/src/merge/resources/crm/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/crm/types/issue_status_enum.py b/src/merge/resources/crm/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/crm/types/issue_status_enum.py +++ b/src/merge/resources/crm/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/crm/types/item_format_enum.py b/src/merge/resources/crm/types/item_format_enum.py index 6e1e81ce..6fef7236 100644 --- a/src/merge/resources/crm/types/item_format_enum.py +++ b/src/merge/resources/crm/types/item_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFormatEnum(enum.StrEnum): +class ItemFormatEnum(str, enum.Enum): """ * `string` - uuid * `number` - url diff --git a/src/merge/resources/crm/types/item_type_enum.py b/src/merge/resources/crm/types/item_type_enum.py index f92370d0..afcc4dd6 100644 --- a/src/merge/resources/crm/types/item_type_enum.py +++ b/src/merge/resources/crm/types/item_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemTypeEnum(enum.StrEnum): +class ItemTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/crm/types/language_enum.py b/src/merge/resources/crm/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/crm/types/language_enum.py +++ b/src/merge/resources/crm/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/crm/types/last_sync_result_enum.py b/src/merge/resources/crm/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/crm/types/last_sync_result_enum.py +++ b/src/merge/resources/crm/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/crm/types/lead.py b/src/merge/resources/crm/types/lead.py index 45803fff..a588e0bb 100644 --- a/src/merge/resources/crm/types/lead.py +++ b/src/merge/resources/crm/types/lead.py @@ -115,7 +115,7 @@ class Lead(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/lead_request.py b/src/merge/resources/crm/types/lead_request.py index fc3db849..f2cb290a 100644 --- a/src/merge/resources/crm/types/lead_request.py +++ b/src/merge/resources/crm/types/lead_request.py @@ -72,8 +72,8 @@ class LeadRequest(UncheckedBaseModel): The account of the converted lead. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/lead_status_enum.py b/src/merge/resources/crm/types/lead_status_enum.py index f14b8010..31069a59 100644 --- a/src/merge/resources/crm/types/lead_status_enum.py +++ b/src/merge/resources/crm/types/lead_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LeadStatusEnum(enum.StrEnum): +class LeadStatusEnum(str, enum.Enum): """ * `OPEN` - OPEN * `CLOSED` - CLOSED diff --git a/src/merge/resources/crm/types/meta_response.py b/src/merge/resources/crm/types/meta_response.py index 0da37619..caa2c831 100644 --- a/src/merge/resources/crm/types/meta_response.py +++ b/src/merge/resources/crm/types/meta_response.py @@ -9,8 +9,8 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] - remote_field_classes: typing.Optional[typing.Dict[str, typing.Any]] = None + request_schema: typing.Dict[str, typing.Optional[typing.Any]] + remote_field_classes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/crm/types/method_enum.py b/src/merge/resources/crm/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/crm/types/method_enum.py +++ b/src/merge/resources/crm/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/crm/types/note.py b/src/merge/resources/crm/types/note.py index 6e529029..06410996 100644 --- a/src/merge/resources/crm/types/note.py +++ b/src/merge/resources/crm/types/note.py @@ -79,7 +79,7 @@ class Note(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/note_request.py b/src/merge/resources/crm/types/note_request.py index 16fc6220..7e9b1186 100644 --- a/src/merge/resources/crm/types/note_request.py +++ b/src/merge/resources/crm/types/note_request.py @@ -46,8 +46,8 @@ class NoteRequest(UncheckedBaseModel): The note's opportunity. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/opportunity.py b/src/merge/resources/crm/types/opportunity.py index 424ef76c..681c24e0 100644 --- a/src/merge/resources/crm/types/opportunity.py +++ b/src/merge/resources/crm/types/opportunity.py @@ -98,7 +98,7 @@ class Opportunity(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/opportunity_request.py b/src/merge/resources/crm/types/opportunity_request.py index 85733a75..d39733e5 100644 --- a/src/merge/resources/crm/types/opportunity_request.py +++ b/src/merge/resources/crm/types/opportunity_request.py @@ -71,8 +71,8 @@ class OpportunityRequest(UncheckedBaseModel): When the opportunity was closed. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/opportunity_status_enum.py b/src/merge/resources/crm/types/opportunity_status_enum.py index cea777e9..b07f8a0a 100644 --- a/src/merge/resources/crm/types/opportunity_status_enum.py +++ b/src/merge/resources/crm/types/opportunity_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class OpportunityStatusEnum(enum.StrEnum): +class OpportunityStatusEnum(str, enum.Enum): """ * `OPEN` - OPEN * `WON` - WON diff --git a/src/merge/resources/crm/types/origin_type_enum.py b/src/merge/resources/crm/types/origin_type_enum.py index 18a6a736..e9ac3c11 100644 --- a/src/merge/resources/crm/types/origin_type_enum.py +++ b/src/merge/resources/crm/types/origin_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class OriginTypeEnum(enum.StrEnum): +class OriginTypeEnum(str, enum.Enum): """ * `CUSTOM_OBJECT` - CUSTOM_OBJECT * `COMMON_MODEL` - COMMON_MODEL diff --git a/src/merge/resources/crm/types/patched_account_request.py b/src/merge/resources/crm/types/patched_account_request.py index 0b41ddf2..00aa39a4 100644 --- a/src/merge/resources/crm/types/patched_account_request.py +++ b/src/merge/resources/crm/types/patched_account_request.py @@ -56,8 +56,8 @@ class PatchedAccountRequest(UncheckedBaseModel): The last date (either most recent or furthest in the future) of when an activity occurs in an account. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/patched_contact_request.py b/src/merge/resources/crm/types/patched_contact_request.py index 18f25a50..54125162 100644 --- a/src/merge/resources/crm/types/patched_contact_request.py +++ b/src/merge/resources/crm/types/patched_contact_request.py @@ -51,8 +51,8 @@ class PatchedContactRequest(UncheckedBaseModel): When the contact's last activity occurred. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/patched_engagement_request.py b/src/merge/resources/crm/types/patched_engagement_request.py index 84d080a8..2f38009d 100644 --- a/src/merge/resources/crm/types/patched_engagement_request.py +++ b/src/merge/resources/crm/types/patched_engagement_request.py @@ -67,8 +67,8 @@ class PatchedEngagementRequest(UncheckedBaseModel): """ contacts: typing.Optional[typing.List[PatchedEngagementRequestContactsItem]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/patched_opportunity_request.py b/src/merge/resources/crm/types/patched_opportunity_request.py index 6cb928bd..eb65aa70 100644 --- a/src/merge/resources/crm/types/patched_opportunity_request.py +++ b/src/merge/resources/crm/types/patched_opportunity_request.py @@ -71,8 +71,8 @@ class PatchedOpportunityRequest(UncheckedBaseModel): When the opportunity was closed. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/patched_task_request.py b/src/merge/resources/crm/types/patched_task_request.py index 18db7d3c..bc94a919 100644 --- a/src/merge/resources/crm/types/patched_task_request.py +++ b/src/merge/resources/crm/types/patched_task_request.py @@ -71,8 +71,8 @@ class PatchedTaskRequest(UncheckedBaseModel): * `CLOSED` - CLOSED """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/phone_number_request.py b/src/merge/resources/crm/types/phone_number_request.py index 5a865a6b..c70332b1 100644 --- a/src/merge/resources/crm/types/phone_number_request.py +++ b/src/merge/resources/crm/types/phone_number_request.py @@ -26,8 +26,8 @@ class PhoneNumberRequest(UncheckedBaseModel): The phone number's type. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/reason_enum.py b/src/merge/resources/crm/types/reason_enum.py index 77c6e96c..ea6ba5b6 100644 --- a/src/merge/resources/crm/types/reason_enum.py +++ b/src/merge/resources/crm/types/reason_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ReasonEnum(enum.StrEnum): +class ReasonEnum(str, enum.Enum): """ * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST * `GDPR` - GDPR diff --git a/src/merge/resources/crm/types/remote_data.py b/src/merge/resources/crm/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/crm/types/remote_data.py +++ b/src/merge/resources/crm/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/crm/types/remote_endpoint_info.py b/src/merge/resources/crm/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/crm/types/remote_endpoint_info.py +++ b/src/merge/resources/crm/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/remote_field.py b/src/merge/resources/crm/types/remote_field.py index 556c69ef..1a9272f0 100644 --- a/src/merge/resources/crm/types/remote_field.py +++ b/src/merge/resources/crm/types/remote_field.py @@ -10,7 +10,7 @@ class RemoteField(UncheckedBaseModel): remote_field_class: RemoteFieldRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/remote_field_api.py b/src/merge/resources/crm/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/crm/types/remote_field_api.py +++ b/src/merge/resources/crm/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/crm/types/remote_field_api_response.py b/src/merge/resources/crm/types/remote_field_api_response.py index 343a3da7..070cb10e 100644 --- a/src/merge/resources/crm/types/remote_field_api_response.py +++ b/src/merge/resources/crm/types/remote_field_api_response.py @@ -3,45 +3,21 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - account: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Account"), pydantic.Field(alias="Account") - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Contact"), pydantic.Field(alias="Contact") - ] = None - lead: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Lead"), pydantic.Field(alias="Lead") - ] = None - note: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Note"), pydantic.Field(alias="Note") - ] = None - opportunity: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Opportunity"), - pydantic.Field(alias="Opportunity"), - ] = None - stage: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Stage"), pydantic.Field(alias="Stage") - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - task: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Task"), pydantic.Field(alias="Task") - ] = None - engagement: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Engagement"), - pydantic.Field(alias="Engagement"), - ] = None + account: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Account", default=None) + contact: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Contact", default=None) + lead: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Lead", default=None) + note: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Note", default=None) + opportunity: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Opportunity", default=None) + stage: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Stage", default=None) + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + task: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Task", default=None) + engagement: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Engagement", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/remote_field_class_field_choices_item.py b/src/merge/resources/crm/types/remote_field_class_field_choices_item.py index 0b1a5faa..9003f782 100644 --- a/src/merge/resources/crm/types/remote_field_class_field_choices_item.py +++ b/src/merge/resources/crm/types/remote_field_class_field_choices_item.py @@ -8,7 +8,7 @@ class RemoteFieldClassFieldChoicesItem(UncheckedBaseModel): - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None display_name: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/remote_field_class_for_custom_object_class_field_choices_item.py b/src/merge/resources/crm/types/remote_field_class_for_custom_object_class_field_choices_item.py index f5b8f9b4..930a4866 100644 --- a/src/merge/resources/crm/types/remote_field_class_for_custom_object_class_field_choices_item.py +++ b/src/merge/resources/crm/types/remote_field_class_for_custom_object_class_field_choices_item.py @@ -8,7 +8,7 @@ class RemoteFieldClassForCustomObjectClassFieldChoicesItem(UncheckedBaseModel): - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None display_name: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/remote_field_request.py b/src/merge/resources/crm/types/remote_field_request.py index e3c6e0fc..69bc39da 100644 --- a/src/merge/resources/crm/types/remote_field_request.py +++ b/src/merge/resources/crm/types/remote_field_request.py @@ -10,7 +10,7 @@ class RemoteFieldRequest(UncheckedBaseModel): remote_field_class: RemoteFieldRequestRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/remote_response.py b/src/merge/resources/crm/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/crm/types/remote_response.py +++ b/src/merge/resources/crm/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/crm/types/request_format_enum.py b/src/merge/resources/crm/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/crm/types/request_format_enum.py +++ b/src/merge/resources/crm/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/crm/types/response_type_enum.py b/src/merge/resources/crm/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/crm/types/response_type_enum.py +++ b/src/merge/resources/crm/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/crm/types/role_enum.py b/src/merge/resources/crm/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/crm/types/role_enum.py +++ b/src/merge/resources/crm/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/crm/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/crm/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/crm/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/crm/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/crm/types/stage.py b/src/merge/resources/crm/types/stage.py index 15ff1510..8e16e6df 100644 --- a/src/merge/resources/crm/types/stage.py +++ b/src/merge/resources/crm/types/stage.py @@ -45,7 +45,7 @@ class Stage(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/status_fd_5_enum.py b/src/merge/resources/crm/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/crm/types/status_fd_5_enum.py +++ b/src/merge/resources/crm/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/crm/types/sync_status.py b/src/merge/resources/crm/types/sync_status.py index 07ab1dc2..4bb187e3 100644 --- a/src/merge/resources/crm/types/sync_status.py +++ b/src/merge/resources/crm/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/crm/types/sync_status_reason_enum.py b/src/merge/resources/crm/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/crm/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/crm/types/sync_status_sync_status_reason.py b/src/merge/resources/crm/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/crm/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/crm/types/task.py b/src/merge/resources/crm/types/task.py index 4a03d421..8e26f590 100644 --- a/src/merge/resources/crm/types/task.py +++ b/src/merge/resources/crm/types/task.py @@ -93,7 +93,7 @@ class Task(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/crm/types/task_request.py b/src/merge/resources/crm/types/task_request.py index a3202808..a0eb4cb5 100644 --- a/src/merge/resources/crm/types/task_request.py +++ b/src/merge/resources/crm/types/task_request.py @@ -71,8 +71,8 @@ class TaskRequest(UncheckedBaseModel): * `CLOSED` - CLOSED """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/crm/types/task_status_enum.py b/src/merge/resources/crm/types/task_status_enum.py index e9a3ad8d..aec134f1 100644 --- a/src/merge/resources/crm/types/task_status_enum.py +++ b/src/merge/resources/crm/types/task_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TaskStatusEnum(enum.StrEnum): +class TaskStatusEnum(str, enum.Enum): """ * `OPEN` - OPEN * `CLOSED` - CLOSED diff --git a/src/merge/resources/crm/types/user.py b/src/merge/resources/crm/types/user.py index 4c28a278..cc585c10 100644 --- a/src/merge/resources/crm/types/user.py +++ b/src/merge/resources/crm/types/user.py @@ -55,7 +55,7 @@ class User(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None diff --git a/src/merge/resources/email/__init__.py b/src/merge/resources/email/__init__.py index 371f7209..6061f220 100644 --- a/src/merge/resources/email/__init__.py +++ b/src/merge/resources/email/__init__.py @@ -103,7 +103,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, User, UserFieldMappings, UserType, @@ -266,7 +268,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "User": ".types", "UserFieldMappings": ".types", "UserType": ".types", @@ -308,10 +312,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -435,7 +437,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "UserType", diff --git a/src/merge/resources/email/resources/__init__.py b/src/merge/resources/email/resources/__init__.py index f2510c2c..37ecb5e6 100644 --- a/src/merge/resources/email/resources/__init__.py +++ b/src/merge/resources/email/resources/__init__.py @@ -59,29 +59,29 @@ "MessagesRetrieveRequestExpandItem": ".messages", "UsersListRequestExpandItem": ".users", "UsersRetrieveRequestExpandItem": ".users", - "account_details": ".account_details", - "account_token": ".account_token", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "delete_account": ".delete_account", - "email_addresses": ".email_addresses", - "field_mapping": ".field_mapping", - "folders": ".folders", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "mailboxes": ".mailboxes", - "messages": ".messages", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "sync_status": ".sync_status", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "delete_account": ".", + "email_addresses": ".", + "field_mapping": ".", + "folders": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "mailboxes": ".", + "messages": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "sync_status": ".", + "users": ".", + "webhook_receivers": ".", } @@ -91,10 +91,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/account_details/raw_client.py b/src/merge/resources/email/resources/account_details/raw_client.py index 691ec939..9918bc2a 100644 --- a/src/merge/resources/email/resources/account_details/raw_client.py +++ b/src/merge/resources/email/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/account_token/raw_client.py b/src/merge/resources/email/resources/account_token/raw_client.py index cc67f124..7370a253 100644 --- a/src/merge/resources/email/resources/account_token/raw_client.py +++ b/src/merge/resources/email/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/async_passthrough/__init__.py b/src/merge/resources/email/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/email/resources/async_passthrough/__init__.py +++ b/src/merge/resources/email/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/async_passthrough/raw_client.py b/src/merge/resources/email/resources/async_passthrough/raw_client.py index 78ba6106..7787eb3c 100644 --- a/src/merge/resources/email/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/email/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/async_passthrough/types/__init__.py b/src/merge/resources/email/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/email/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/email/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/audit_trail/raw_client.py b/src/merge/resources/email/resources/audit_trail/raw_client.py index 1a797538..79332f47 100644 --- a/src/merge/resources/email/resources/audit_trail/raw_client.py +++ b/src/merge/resources/email/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/available_actions/raw_client.py b/src/merge/resources/email/resources/available_actions/raw_client.py index 220670ce..ca72efd1 100644 --- a/src/merge/resources/email/resources/available_actions/raw_client.py +++ b/src/merge/resources/email/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/delete_account/raw_client.py b/src/merge/resources/email/resources/delete_account/raw_client.py index 96439a3e..c49a9b44 100644 --- a/src/merge/resources/email/resources/delete_account/raw_client.py +++ b/src/merge/resources/email/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/email_addresses/__init__.py b/src/merge/resources/email/resources/email_addresses/__init__.py index cb66b97b..081f4b52 100644 --- a/src/merge/resources/email/resources/email_addresses/__init__.py +++ b/src/merge/resources/email/resources/email_addresses/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/email_addresses/raw_client.py b/src/merge/resources/email/resources/email_addresses/raw_client.py index 052043ab..ca6713d8 100644 --- a/src/merge/resources/email/resources/email_addresses/raw_client.py +++ b/src/merge/resources/email/resources/email_addresses/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.email_address import EmailAddress from ...types.paginated_email_address_list import PaginatedEmailAddressList from .types.email_addresses_list_request_expand_item import EmailAddressesListRequestExpandItem from .types.email_addresses_retrieve_request_expand_item import EmailAddressesRetrieveRequestExpandItem -from pydantic import ValidationError class RawEmailAddressesClient: @@ -123,10 +121,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -189,10 +183,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -300,10 +290,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -366,8 +352,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/email_addresses/types/__init__.py b/src/merge/resources/email/resources/email_addresses/types/__init__.py index 80ab1f09..bb0ec1ee 100644 --- a/src/merge/resources/email/resources/email_addresses/types/__init__.py +++ b/src/merge/resources/email/resources/email_addresses/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/email_addresses/types/email_addresses_list_request_expand_item.py b/src/merge/resources/email/resources/email_addresses/types/email_addresses_list_request_expand_item.py index 603eb214..2046a0d1 100644 --- a/src/merge/resources/email/resources/email_addresses/types/email_addresses_list_request_expand_item.py +++ b/src/merge/resources/email/resources/email_addresses/types/email_addresses_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmailAddressesListRequestExpandItem(enum.StrEnum): +class EmailAddressesListRequestExpandItem(str, enum.Enum): GROUPS = "groups" MAILBOXES = "mailboxes" USERS = "users" diff --git a/src/merge/resources/email/resources/email_addresses/types/email_addresses_retrieve_request_expand_item.py b/src/merge/resources/email/resources/email_addresses/types/email_addresses_retrieve_request_expand_item.py index 80f24fbd..f50edc8c 100644 --- a/src/merge/resources/email/resources/email_addresses/types/email_addresses_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/email_addresses/types/email_addresses_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmailAddressesRetrieveRequestExpandItem(enum.StrEnum): +class EmailAddressesRetrieveRequestExpandItem(str, enum.Enum): GROUPS = "groups" MAILBOXES = "mailboxes" USERS = "users" diff --git a/src/merge/resources/email/resources/field_mapping/client.py b/src/merge/resources/email/resources/field_mapping/client.py index 5963313c..65f4eb02 100644 --- a/src/merge/resources/email/resources/field_mapping/client.py +++ b/src/merge/resources/email/resources/field_mapping/client.py @@ -71,7 +71,7 @@ def field_mappings_retrieve( def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -90,7 +90,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -206,7 +206,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -223,7 +223,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -458,7 +458,7 @@ async def main() -> None: async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -477,7 +477,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -609,7 +609,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -626,7 +626,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/email/resources/field_mapping/raw_client.py b/src/merge/resources/email/resources/field_mapping/raw_client.py index f4acdf12..6c6a6db6 100644 --- a/src/merge/resources/email/resources/field_mapping/raw_client.py +++ b/src/merge/resources/email/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,16 +65,12 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -95,7 +89,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -177,10 +171,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -219,10 +209,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -230,7 +216,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -247,7 +233,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -302,10 +288,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -356,10 +338,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -396,10 +374,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_create( @@ -459,10 +433,6 @@ def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -513,16 +483,12 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -541,7 +507,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -623,10 +589,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -665,10 +627,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -676,7 +634,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -693,7 +651,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -748,10 +706,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -802,10 +756,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -842,10 +792,6 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_create( @@ -905,8 +851,4 @@ async def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/folders/__init__.py b/src/merge/resources/email/resources/folders/__init__.py index f06c1413..b9307deb 100644 --- a/src/merge/resources/email/resources/folders/__init__.py +++ b/src/merge/resources/email/resources/folders/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/folders/raw_client.py b/src/merge/resources/email/resources/folders/raw_client.py index cdfa456c..aea22255 100644 --- a/src/merge/resources/email/resources/folders/raw_client.py +++ b/src/merge/resources/email/resources/folders/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.folder import Folder from ...types.paginated_folder_list import PaginatedFolderList from .types.folders_list_request_expand_item import FoldersListRequestExpandItem from .types.folders_retrieve_request_expand_item import FoldersRetrieveRequestExpandItem -from pydantic import ValidationError class RawFoldersClient: @@ -123,10 +121,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -187,10 +181,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -298,10 +288,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -362,8 +348,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/folders/types/__init__.py b/src/merge/resources/email/resources/folders/types/__init__.py index 45f03559..064c3b61 100644 --- a/src/merge/resources/email/resources/folders/types/__init__.py +++ b/src/merge/resources/email/resources/folders/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/folders/types/folders_list_request_expand_item.py b/src/merge/resources/email/resources/folders/types/folders_list_request_expand_item.py index f15198aa..910989fe 100644 --- a/src/merge/resources/email/resources/folders/types/folders_list_request_expand_item.py +++ b/src/merge/resources/email/resources/folders/types/folders_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FoldersListRequestExpandItem(enum.StrEnum): +class FoldersListRequestExpandItem(str, enum.Enum): MAILBOXES = "mailboxes" PARENT_FOLDER = "parent_folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/email/resources/folders/types/folders_retrieve_request_expand_item.py b/src/merge/resources/email/resources/folders/types/folders_retrieve_request_expand_item.py index e1520806..ee0b2375 100644 --- a/src/merge/resources/email/resources/folders/types/folders_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/folders/types/folders_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FoldersRetrieveRequestExpandItem(enum.StrEnum): +class FoldersRetrieveRequestExpandItem(str, enum.Enum): MAILBOXES = "mailboxes" PARENT_FOLDER = "parent_folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/email/resources/force_resync/raw_client.py b/src/merge/resources/email/resources/force_resync/raw_client.py index 2e12f69e..4f83160a 100644 --- a/src/merge/resources/email/resources/force_resync/raw_client.py +++ b/src/merge/resources/email/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/generate_key/raw_client.py b/src/merge/resources/email/resources/generate_key/raw_client.py index 832f9f2b..3bb8c0a2 100644 --- a/src/merge/resources/email/resources/generate_key/raw_client.py +++ b/src/merge/resources/email/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/groups/__init__.py b/src/merge/resources/email/resources/groups/__init__.py index 833b79cd..c42a8d2e 100644 --- a/src/merge/resources/email/resources/groups/__init__.py +++ b/src/merge/resources/email/resources/groups/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/groups/raw_client.py b/src/merge/resources/email/resources/groups/raw_client.py index ae94566d..c9d2e089 100644 --- a/src/merge/resources/email/resources/groups/raw_client.py +++ b/src/merge/resources/email/resources/groups/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList from .types.groups_list_request_expand_item import GroupsListRequestExpandItem from .types.groups_retrieve_request_expand_item import GroupsRetrieveRequestExpandItem -from pydantic import ValidationError class RawGroupsClient: @@ -123,10 +121,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -187,10 +181,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -298,10 +288,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -362,8 +348,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/groups/types/__init__.py b/src/merge/resources/email/resources/groups/types/__init__.py index 1ac662da..9f5d7290 100644 --- a/src/merge/resources/email/resources/groups/types/__init__.py +++ b/src/merge/resources/email/resources/groups/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/groups/types/groups_list_request_expand_item.py b/src/merge/resources/email/resources/groups/types/groups_list_request_expand_item.py index ce3c0403..cf07a4eb 100644 --- a/src/merge/resources/email/resources/groups/types/groups_list_request_expand_item.py +++ b/src/merge/resources/email/resources/groups/types/groups_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsListRequestExpandItem(enum.StrEnum): +class GroupsListRequestExpandItem(str, enum.Enum): EMAIL_ADDRESSES = "email_addresses" MAILBOXES = "mailboxes" USERS = "users" diff --git a/src/merge/resources/email/resources/groups/types/groups_retrieve_request_expand_item.py b/src/merge/resources/email/resources/groups/types/groups_retrieve_request_expand_item.py index 6d0c616e..f1536887 100644 --- a/src/merge/resources/email/resources/groups/types/groups_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/groups/types/groups_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsRetrieveRequestExpandItem(enum.StrEnum): +class GroupsRetrieveRequestExpandItem(str, enum.Enum): EMAIL_ADDRESSES = "email_addresses" MAILBOXES = "mailboxes" USERS = "users" diff --git a/src/merge/resources/email/resources/issues/__init__.py b/src/merge/resources/email/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/email/resources/issues/__init__.py +++ b/src/merge/resources/email/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/issues/raw_client.py b/src/merge/resources/email/resources/issues/raw_client.py index 069c6264..d35888c2 100644 --- a/src/merge/resources/email/resources/issues/raw_client.py +++ b/src/merge/resources/email/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -175,10 +169,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -299,10 +289,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -341,8 +327,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/issues/types/__init__.py b/src/merge/resources/email/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/email/resources/issues/types/__init__.py +++ b/src/merge/resources/email/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/issues/types/issues_list_request_status.py b/src/merge/resources/email/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/email/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/email/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/email/resources/link_token/__init__.py b/src/merge/resources/email/resources/link_token/__init__.py index 834918c1..be8c3839 100644 --- a/src/merge/resources/email/resources/link_token/__init__.py +++ b/src/merge/resources/email/resources/link_token/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/link_token/client.py b/src/merge/resources/email/resources/link_token/client.py index 0a17999e..7a5a930b 100644 --- a/src/merge/resources/email/resources/link_token/client.py +++ b/src/merge/resources/email/resources/link_token/client.py @@ -50,7 +50,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -97,7 +97,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -187,7 +187,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -234,7 +234,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] diff --git a/src/merge/resources/email/resources/link_token/raw_client.py b/src/merge/resources/email/resources/link_token/raw_client.py index b7fc7396..c7f57dea 100644 --- a/src/merge/resources/email/resources/link_token/raw_client.py +++ b/src/merge/resources/email/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -17,7 +16,6 @@ EndUserDetailsRequestCompletedAccountInitialScreen, ) from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -44,7 +42,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -91,7 +89,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -151,10 +149,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -179,7 +173,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -226,7 +220,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -286,8 +280,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/link_token/types/__init__.py b/src/merge/resources/email/resources/link_token/types/__init__.py index 1846dfb1..55cc1d4e 100644 --- a/src/merge/resources/email/resources/link_token/types/__init__.py +++ b/src/merge/resources/email/resources/link_token/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/linked_accounts/__init__.py b/src/merge/resources/email/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/email/resources/linked_accounts/__init__.py +++ b/src/merge/resources/email/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/linked_accounts/raw_client.py b/src/merge/resources/email/resources/linked_accounts/raw_client.py index aeea3262..a72a3011 100644 --- a/src/merge/resources/email/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/email/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -120,10 +118,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -233,8 +227,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/linked_accounts/types/__init__.py b/src/merge/resources/email/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/email/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/email/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/email/resources/linked_accounts/types/linked_accounts_list_request_category.py index 035ed972..97df0150 100644 --- a/src/merge/resources/email/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/email/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CHAT = "chat" diff --git a/src/merge/resources/email/resources/mailboxes/__init__.py b/src/merge/resources/email/resources/mailboxes/__init__.py index 4cbcf768..471992c1 100644 --- a/src/merge/resources/email/resources/mailboxes/__init__.py +++ b/src/merge/resources/email/resources/mailboxes/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/mailboxes/raw_client.py b/src/merge/resources/email/resources/mailboxes/raw_client.py index 3bd3514d..4088242a 100644 --- a/src/merge/resources/email/resources/mailboxes/raw_client.py +++ b/src/merge/resources/email/resources/mailboxes/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.mailbox import Mailbox from ...types.paginated_mailbox_list import PaginatedMailboxList from .types.mailboxes_list_request_expand_item import MailboxesListRequestExpandItem from .types.mailboxes_retrieve_request_expand_item import MailboxesRetrieveRequestExpandItem -from pydantic import ValidationError class RawMailboxesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -212,10 +206,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -338,10 +328,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -412,8 +398,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/mailboxes/types/__init__.py b/src/merge/resources/email/resources/mailboxes/types/__init__.py index 0484fe8d..bcefde2a 100644 --- a/src/merge/resources/email/resources/mailboxes/types/__init__.py +++ b/src/merge/resources/email/resources/mailboxes/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/mailboxes/types/mailboxes_list_request_expand_item.py b/src/merge/resources/email/resources/mailboxes/types/mailboxes_list_request_expand_item.py index 231620ac..c8fd2ae9 100644 --- a/src/merge/resources/email/resources/mailboxes/types/mailboxes_list_request_expand_item.py +++ b/src/merge/resources/email/resources/mailboxes/types/mailboxes_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MailboxesListRequestExpandItem(enum.StrEnum): +class MailboxesListRequestExpandItem(str, enum.Enum): ALIAS_EMAIL_ADDRESSES = "alias_email_addresses" FOLDERS = "folders" GROUPS = "groups" diff --git a/src/merge/resources/email/resources/mailboxes/types/mailboxes_retrieve_request_expand_item.py b/src/merge/resources/email/resources/mailboxes/types/mailboxes_retrieve_request_expand_item.py index 862c8f1e..93612e43 100644 --- a/src/merge/resources/email/resources/mailboxes/types/mailboxes_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/mailboxes/types/mailboxes_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MailboxesRetrieveRequestExpandItem(enum.StrEnum): +class MailboxesRetrieveRequestExpandItem(str, enum.Enum): ALIAS_EMAIL_ADDRESSES = "alias_email_addresses" FOLDERS = "folders" GROUPS = "groups" diff --git a/src/merge/resources/email/resources/messages/__init__.py b/src/merge/resources/email/resources/messages/__init__.py index eb16711b..73c7847d 100644 --- a/src/merge/resources/email/resources/messages/__init__.py +++ b/src/merge/resources/email/resources/messages/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/messages/raw_client.py b/src/merge/resources/email/resources/messages/raw_client.py index becb841a..8e53635d 100644 --- a/src/merge/resources/email/resources/messages/raw_client.py +++ b/src/merge/resources/email/resources/messages/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.message import Message from ...types.paginated_message_list import PaginatedMessageList from .types.messages_list_request_expand_item import MessagesListRequestExpandItem from .types.messages_retrieve_request_expand_item import MessagesRetrieveRequestExpandItem -from pydantic import ValidationError class RawMessagesClient: @@ -148,10 +146,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -212,10 +206,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -348,10 +338,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -412,8 +398,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/messages/types/__init__.py b/src/merge/resources/email/resources/messages/types/__init__.py index 23d1fc2e..ad26b1b4 100644 --- a/src/merge/resources/email/resources/messages/types/__init__.py +++ b/src/merge/resources/email/resources/messages/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/messages/types/messages_list_request_expand_item.py b/src/merge/resources/email/resources/messages/types/messages_list_request_expand_item.py index 582c631d..3db2be07 100644 --- a/src/merge/resources/email/resources/messages/types/messages_list_request_expand_item.py +++ b/src/merge/resources/email/resources/messages/types/messages_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MessagesListRequestExpandItem(enum.StrEnum): +class MessagesListRequestExpandItem(str, enum.Enum): BCC = "bcc" CC = "cc" FOLDERS = "folders" diff --git a/src/merge/resources/email/resources/messages/types/messages_retrieve_request_expand_item.py b/src/merge/resources/email/resources/messages/types/messages_retrieve_request_expand_item.py index 6e80e466..e321b86f 100644 --- a/src/merge/resources/email/resources/messages/types/messages_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/messages/types/messages_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class MessagesRetrieveRequestExpandItem(enum.StrEnum): +class MessagesRetrieveRequestExpandItem(str, enum.Enum): BCC = "bcc" CC = "cc" FOLDERS = "folders" diff --git a/src/merge/resources/email/resources/passthrough/raw_client.py b/src/merge/resources/email/resources/passthrough/raw_client.py index 648fac51..b3a38470 100644 --- a/src/merge/resources/email/resources/passthrough/raw_client.py +++ b/src/merge/resources/email/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/regenerate_key/raw_client.py b/src/merge/resources/email/resources/regenerate_key/raw_client.py index eb07281f..95a929dc 100644 --- a/src/merge/resources/email/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/email/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/scopes/raw_client.py b/src/merge/resources/email/resources/scopes/raw_client.py index 466ce64b..06ed7503 100644 --- a/src/merge/resources/email/resources/scopes/raw_client.py +++ b/src/merge/resources/email/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/sync_status/raw_client.py b/src/merge/resources/email/resources/sync_status/raw_client.py index 0883370d..3bcee066 100644 --- a/src/merge/resources/email/resources/sync_status/raw_client.py +++ b/src/merge/resources/email/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/users/__init__.py b/src/merge/resources/email/resources/users/__init__.py index 47b3e9a5..8e4fa9ff 100644 --- a/src/merge/resources/email/resources/users/__init__.py +++ b/src/merge/resources/email/resources/users/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/users/raw_client.py b/src/merge/resources/email/resources/users/raw_client.py index fade2a62..fbee541a 100644 --- a/src/merge/resources/email/resources/users/raw_client.py +++ b/src/merge/resources/email/resources/users/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User from .types.users_list_request_expand_item import UsersListRequestExpandItem from .types.users_retrieve_request_expand_item import UsersRetrieveRequestExpandItem -from pydantic import ValidationError class RawUsersClient: @@ -143,10 +141,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -217,10 +211,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -348,10 +338,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -422,8 +408,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/resources/users/types/__init__.py b/src/merge/resources/email/resources/users/types/__init__.py index ae62b2c8..e7ba722e 100644 --- a/src/merge/resources/email/resources/users/types/__init__.py +++ b/src/merge/resources/email/resources/users/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/email/resources/users/types/users_list_request_expand_item.py b/src/merge/resources/email/resources/users/types/users_list_request_expand_item.py index 44b4fb1c..353a5fff 100644 --- a/src/merge/resources/email/resources/users/types/users_list_request_expand_item.py +++ b/src/merge/resources/email/resources/users/types/users_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class UsersListRequestExpandItem(enum.StrEnum): +class UsersListRequestExpandItem(str, enum.Enum): EMAIL_ADDRESSES = "email_addresses" GROUPS = "groups" MAILBOXES = "mailboxes" diff --git a/src/merge/resources/email/resources/users/types/users_retrieve_request_expand_item.py b/src/merge/resources/email/resources/users/types/users_retrieve_request_expand_item.py index aa5020c5..52907ee6 100644 --- a/src/merge/resources/email/resources/users/types/users_retrieve_request_expand_item.py +++ b/src/merge/resources/email/resources/users/types/users_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class UsersRetrieveRequestExpandItem(enum.StrEnum): +class UsersRetrieveRequestExpandItem(str, enum.Enum): EMAIL_ADDRESSES = "email_addresses" GROUPS = "groups" MAILBOXES = "mailboxes" diff --git a/src/merge/resources/email/resources/webhook_receivers/raw_client.py b/src/merge/resources/email/resources/webhook_receivers/raw_client.py index 7377d320..78c33981 100644 --- a/src/merge/resources/email/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/email/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/email/types/__init__.py b/src/merge/resources/email/types/__init__.py index f0dd08c1..3a753ab8 100644 --- a/src/merge/resources/email/types/__init__.py +++ b/src/merge/resources/email/types/__init__.py @@ -104,7 +104,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .user import User from .user_field_mappings import UserFieldMappings from .user_type import UserType @@ -209,7 +211,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "User": ".user", "UserFieldMappings": ".user_field_mappings", "UserType": ".user_type", @@ -226,10 +230,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -338,7 +340,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "UserType", diff --git a/src/merge/resources/email/types/account_details_and_actions.py b/src/merge/resources/email/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/email/types/account_details_and_actions.py +++ b/src/merge/resources/email/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/account_details_and_actions_status_enum.py b/src/merge/resources/email/types/account_details_and_actions_status_enum.py index 323189b4..0701a829 100644 --- a/src/merge/resources/email/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/email/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" diff --git a/src/merge/resources/email/types/account_integration.py b/src/merge/resources/email/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/email/types/account_integration.py +++ b/src/merge/resources/email/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/email/types/advanced_metadata.py b/src/merge/resources/email/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/email/types/advanced_metadata.py +++ b/src/merge/resources/email/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/categories_enum.py b/src/merge/resources/email/types/categories_enum.py index f92febf4..b6575458 100644 --- a/src/merge/resources/email/types/categories_enum.py +++ b/src/merge/resources/email/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/email/types/category_enum.py b/src/merge/resources/email/types/category_enum.py index ac0be82b..4ee2f4e4 100644 --- a/src/merge/resources/email/types/category_enum.py +++ b/src/merge/resources/email/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/email/types/data_passthrough_request.py b/src/merge/resources/email/types/data_passthrough_request.py index d8d42b8d..5a60bfb6 100644 --- a/src/merge/resources/email/types/data_passthrough_request.py +++ b/src/merge/resources/email/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/email/types/effect_enum.py b/src/merge/resources/email/types/effect_enum.py index 54f59897..781c7ad5 100644 --- a/src/merge/resources/email/types/effect_enum.py +++ b/src/merge/resources/email/types/effect_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EffectEnum(enum.StrEnum): +class EffectEnum(str, enum.Enum): ALLOWED = "ALLOWED" DENIED = "DENIED" INHERITED = "INHERITED" diff --git a/src/merge/resources/email/types/email_address_field_mappings.py b/src/merge/resources/email/types/email_address_field_mappings.py index fb4772bd..29175058 100644 --- a/src/merge/resources/email/types/email_address_field_mappings.py +++ b/src/merge/resources/email/types/email_address_field_mappings.py @@ -8,8 +8,8 @@ class EmailAddressFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/enabled_actions_enum.py b/src/merge/resources/email/types/enabled_actions_enum.py index ded7aa80..cb19286a 100644 --- a/src/merge/resources/email/types/enabled_actions_enum.py +++ b/src/merge/resources/email/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): READ = "READ" WRITE = "WRITE" diff --git a/src/merge/resources/email/types/encoding_enum.py b/src/merge/resources/email/types/encoding_enum.py index 27686241..7d4b8977 100644 --- a/src/merge/resources/email/types/encoding_enum.py +++ b/src/merge/resources/email/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): RAW = "RAW" BASE_64 = "BASE64" GZIP_BASE_64 = "GZIP_BASE64" diff --git a/src/merge/resources/email/types/event_type_enum.py b/src/merge/resources/email/types/event_type_enum.py index 42ce9abb..a04b9681 100644 --- a/src/merge/resources/email/types/event_type_enum.py +++ b/src/merge/resources/email/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY" DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY" CREATED_TEST_API_KEY = "CREATED_TEST_API_KEY" diff --git a/src/merge/resources/email/types/external_target_field_api_response.py b/src/merge/resources/email/types/external_target_field_api_response.py index 8d5a6e5f..280fa60a 100644 --- a/src/merge/resources/email/types/external_target_field_api_response.py +++ b/src/merge/resources/email/types/external_target_field_api_response.py @@ -3,37 +3,19 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - mailbox: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Mailbox"), - pydantic.Field(alias="Mailbox"), - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Folder"), - pydantic.Field(alias="Folder"), - ] = None - email_address: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="EmailAddress"), - pydantic.Field(alias="EmailAddress"), - ] = None + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) + mailbox: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Mailbox", default=None) + folder: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Folder", default=None) + email_address: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="EmailAddress", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/email/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/email/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/email/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/email/types/field_mapping_api_instance_response.py b/src/merge/resources/email/types/field_mapping_api_instance_response.py index f2486560..c3c882de 100644 --- a/src/merge/resources/email/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/email/types/field_mapping_api_instance_response.py @@ -3,37 +3,19 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - mailbox: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Mailbox"), - pydantic.Field(alias="Mailbox"), - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Folder"), - pydantic.Field(alias="Folder"), - ] = None - email_address: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="EmailAddress"), - pydantic.Field(alias="EmailAddress"), - ] = None + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) + mailbox: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Mailbox", default=None) + folder: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Folder", default=None) + email_address: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="EmailAddress", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/field_permission_deserializer.py b/src/merge/resources/email/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/email/types/field_permission_deserializer.py +++ b/src/merge/resources/email/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/field_permission_deserializer_request.py b/src/merge/resources/email/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/email/types/field_permission_deserializer_request.py +++ b/src/merge/resources/email/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/folder_field_mappings.py b/src/merge/resources/email/types/folder_field_mappings.py index 0cfc4123..b55828f8 100644 --- a/src/merge/resources/email/types/folder_field_mappings.py +++ b/src/merge/resources/email/types/folder_field_mappings.py @@ -8,8 +8,8 @@ class FolderFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/group_field_mappings.py b/src/merge/resources/email/types/group_field_mappings.py index eaef7341..3be990d2 100644 --- a/src/merge/resources/email/types/group_field_mappings.py +++ b/src/merge/resources/email/types/group_field_mappings.py @@ -8,8 +8,8 @@ class GroupFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/issue.py b/src/merge/resources/email/types/issue.py index ab038c54..8f1027ca 100644 --- a/src/merge/resources/email/types/issue.py +++ b/src/merge/resources/email/types/issue.py @@ -17,7 +17,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/email/types/issue_status_enum.py b/src/merge/resources/email/types/issue_status_enum.py index 932ae51c..d75e26e2 100644 --- a/src/merge/resources/email/types/issue_status_enum.py +++ b/src/merge/resources/email/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/email/types/language_enum.py b/src/merge/resources/email/types/language_enum.py index 16d6cd0e..19f87fe0 100644 --- a/src/merge/resources/email/types/language_enum.py +++ b/src/merge/resources/email/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): EN = "en" DE = "de" diff --git a/src/merge/resources/email/types/last_sync_result_enum.py b/src/merge/resources/email/types/last_sync_result_enum.py index 5cb86bc3..52ecd845 100644 --- a/src/merge/resources/email/types/last_sync_result_enum.py +++ b/src/merge/resources/email/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/email/types/mailbox_field_mappings.py b/src/merge/resources/email/types/mailbox_field_mappings.py index 1228768b..7ecc9cf7 100644 --- a/src/merge/resources/email/types/mailbox_field_mappings.py +++ b/src/merge/resources/email/types/mailbox_field_mappings.py @@ -8,8 +8,8 @@ class MailboxFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/mailbox_type_enum.py b/src/merge/resources/email/types/mailbox_type_enum.py index 9daffed5..80c1883a 100644 --- a/src/merge/resources/email/types/mailbox_type_enum.py +++ b/src/merge/resources/email/types/mailbox_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MailboxTypeEnum(enum.StrEnum): +class MailboxTypeEnum(str, enum.Enum): USER = "USER" SHARED = "SHARED" diff --git a/src/merge/resources/email/types/method_enum.py b/src/merge/resources/email/types/method_enum.py index 45c9f89e..73d2556f 100644 --- a/src/merge/resources/email/types/method_enum.py +++ b/src/merge/resources/email/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): GET = "GET" OPTIONS = "OPTIONS" HEAD = "HEAD" diff --git a/src/merge/resources/email/types/permission_field_mappings.py b/src/merge/resources/email/types/permission_field_mappings.py index 0672b491..9c2804c2 100644 --- a/src/merge/resources/email/types/permission_field_mappings.py +++ b/src/merge/resources/email/types/permission_field_mappings.py @@ -8,8 +8,8 @@ class PermissionFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/remote_data.py b/src/merge/resources/email/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/email/types/remote_data.py +++ b/src/merge/resources/email/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/email/types/remote_endpoint_info.py b/src/merge/resources/email/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/email/types/remote_endpoint_info.py +++ b/src/merge/resources/email/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/remote_field_api.py b/src/merge/resources/email/types/remote_field_api.py index 5f2c2ab1..0756bfc3 100644 --- a/src/merge/resources/email/types/remote_field_api.py +++ b/src/merge/resources/email/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_endpoint_info import RemoteEndpointInfo from .remote_field_api_advanced_metadata import RemoteFieldApiAdvancedMetadata @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[RemoteFieldApiAdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/email/types/remote_field_api_response.py b/src/merge/resources/email/types/remote_field_api_response.py index c6ca352f..523e5892 100644 --- a/src/merge/resources/email/types/remote_field_api_response.py +++ b/src/merge/resources/email/types/remote_field_api_response.py @@ -3,31 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None - mailbox: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Mailbox"), pydantic.Field(alias="Mailbox") - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Folder"), pydantic.Field(alias="Folder") - ] = None - email_address: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="EmailAddress"), - pydantic.Field(alias="EmailAddress"), - ] = None + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) + mailbox: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Mailbox", default=None) + folder: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Folder", default=None) + email_address: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="EmailAddress", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/remote_response.py b/src/merge/resources/email/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/email/types/remote_response.py +++ b/src/merge/resources/email/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/request_format_enum.py b/src/merge/resources/email/types/request_format_enum.py index 711b2df8..70ecd9bb 100644 --- a/src/merge/resources/email/types/request_format_enum.py +++ b/src/merge/resources/email/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): JSON = "JSON" XML = "XML" MULTIPART = "MULTIPART" diff --git a/src/merge/resources/email/types/response_type_enum.py b/src/merge/resources/email/types/response_type_enum.py index ce3f3d04..23b6bb5b 100644 --- a/src/merge/resources/email/types/response_type_enum.py +++ b/src/merge/resources/email/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): JSON = "JSON" BASE_64_GZIP = "BASE64_GZIP" diff --git a/src/merge/resources/email/types/role_enum.py b/src/merge/resources/email/types/role_enum.py index 752d2454..c97de31f 100644 --- a/src/merge/resources/email/types/role_enum.py +++ b/src/merge/resources/email/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): ADMIN = "ADMIN" DEVELOPER = "DEVELOPER" MEMBER = "MEMBER" diff --git a/src/merge/resources/email/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/email/types/selective_sync_configurations_usage_enum.py index 953775e9..7b486b59 100644 --- a/src/merge/resources/email/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/email/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): IN_NEXT_SYNC = "IN_NEXT_SYNC" IN_LAST_SYNC = "IN_LAST_SYNC" diff --git a/src/merge/resources/email/types/status_fd_5_enum.py b/src/merge/resources/email/types/status_fd_5_enum.py index 52c212e4..3bf97afd 100644 --- a/src/merge/resources/email/types/status_fd_5_enum.py +++ b/src/merge/resources/email/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/email/types/sync_status.py b/src/merge/resources/email/types/sync_status.py index e8564068..e27689eb 100644 --- a/src/merge/resources/email/types/sync_status.py +++ b/src/merge/resources/email/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/email/types/sync_status_reason_enum.py b/src/merge/resources/email/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/email/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/email/types/sync_status_sync_status_reason.py b/src/merge/resources/email/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/email/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/email/types/user_field_mappings.py b/src/merge/resources/email/types/user_field_mappings.py index 6a27272a..374935d7 100644 --- a/src/merge/resources/email/types/user_field_mappings.py +++ b/src/merge/resources/email/types/user_field_mappings.py @@ -8,8 +8,8 @@ class UserFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/email/types/user_type_enum.py b/src/merge/resources/email/types/user_type_enum.py index 9ed9ad57..f95c76c1 100644 --- a/src/merge/resources/email/types/user_type_enum.py +++ b/src/merge/resources/email/types/user_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class UserTypeEnum(enum.StrEnum): +class UserTypeEnum(str, enum.Enum): INDIVIDUAL = "INDIVIDUAL" SHARED = "SHARED" EXTERNAL = "EXTERNAL" diff --git a/src/merge/resources/filestorage/__init__.py b/src/merge/resources/filestorage/__init__.py index 7b490ba4..52fd81cb 100644 --- a/src/merge/resources/filestorage/__init__.py +++ b/src/merge/resources/filestorage/__init__.py @@ -123,7 +123,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, TypeEnum, User, ValidationProblemSource, @@ -293,7 +295,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "TypeEnum": ".types", "User": ".types", "ValidationProblemSource": ".types", @@ -330,10 +334,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -473,7 +475,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TypeEnum", "User", "ValidationProblemSource", diff --git a/src/merge/resources/filestorage/resources/__init__.py b/src/merge/resources/filestorage/resources/__init__.py index 8b14e730..dc5341fd 100644 --- a/src/merge/resources/filestorage/resources/__init__.py +++ b/src/merge/resources/filestorage/resources/__init__.py @@ -53,28 +53,28 @@ "GroupsRetrieveRequestExpandItem": ".groups", "IssuesListRequestStatus": ".issues", "LinkedAccountsListRequestCategory": ".linked_accounts", - "account_details": ".account_details", - "account_token": ".account_token", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "delete_account": ".delete_account", - "drives": ".drives", - "field_mapping": ".field_mapping", - "files": ".files", - "folders": ".folders", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "sync_status": ".sync_status", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "delete_account": ".", + "drives": ".", + "field_mapping": ".", + "files": ".", + "folders": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "sync_status": ".", + "users": ".", + "webhook_receivers": ".", } @@ -84,10 +84,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/account_details/raw_client.py b/src/merge/resources/filestorage/resources/account_details/raw_client.py index f77fcd30..cf375876 100644 --- a/src/merge/resources/filestorage/resources/account_details/raw_client.py +++ b/src/merge/resources/filestorage/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/account_token/raw_client.py b/src/merge/resources/filestorage/resources/account_token/raw_client.py index 518b255d..5ea56f35 100644 --- a/src/merge/resources/filestorage/resources/account_token/raw_client.py +++ b/src/merge/resources/filestorage/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/async_passthrough/__init__.py b/src/merge/resources/filestorage/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/filestorage/resources/async_passthrough/__init__.py +++ b/src/merge/resources/filestorage/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/async_passthrough/raw_client.py b/src/merge/resources/filestorage/resources/async_passthrough/raw_client.py index b536ea59..993249cf 100644 --- a/src/merge/resources/filestorage/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/filestorage/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/async_passthrough/types/__init__.py b/src/merge/resources/filestorage/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/filestorage/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/filestorage/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/audit_trail/raw_client.py b/src/merge/resources/filestorage/resources/audit_trail/raw_client.py index 2dfad709..19cd62bc 100644 --- a/src/merge/resources/filestorage/resources/audit_trail/raw_client.py +++ b/src/merge/resources/filestorage/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/available_actions/raw_client.py b/src/merge/resources/filestorage/resources/available_actions/raw_client.py index 2372f80c..77c00186 100644 --- a/src/merge/resources/filestorage/resources/available_actions/raw_client.py +++ b/src/merge/resources/filestorage/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/delete_account/raw_client.py b/src/merge/resources/filestorage/resources/delete_account/raw_client.py index a4d7c363..c1b1eaf9 100644 --- a/src/merge/resources/filestorage/resources/delete_account/raw_client.py +++ b/src/merge/resources/filestorage/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/drives/raw_client.py b/src/merge/resources/filestorage/resources/drives/raw_client.py index 66fdb992..666e5081 100644 --- a/src/merge/resources/filestorage/resources/drives/raw_client.py +++ b/src/merge/resources/filestorage/resources/drives/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.drive import Drive from ...types.paginated_drive_list import PaginatedDriveList -from pydantic import ValidationError class RawDrivesClient: @@ -114,10 +112,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -171,10 +165,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -275,10 +265,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -332,8 +318,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/field_mapping/client.py b/src/merge/resources/filestorage/resources/field_mapping/client.py index 962d1464..066088f9 100644 --- a/src/merge/resources/filestorage/resources/field_mapping/client.py +++ b/src/merge/resources/filestorage/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -93,7 +93,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -193,7 +193,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -209,7 +209,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -394,7 +394,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -414,7 +414,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -530,7 +530,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -546,7 +546,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/filestorage/resources/field_mapping/raw_client.py b/src/merge/resources/filestorage/resources/field_mapping/raw_client.py index 9bcce9e8..24a50dd7 100644 --- a/src/merge/resources/filestorage/resources/field_mapping/raw_client.py +++ b/src/merge/resources/filestorage/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -98,7 +92,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -162,10 +156,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -204,10 +194,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -215,7 +201,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -231,7 +217,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -282,10 +268,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -336,10 +318,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -376,10 +354,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -430,10 +404,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -441,7 +411,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -461,7 +431,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -525,10 +495,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -567,10 +533,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -578,7 +540,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -594,7 +556,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -645,10 +607,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -699,10 +657,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -739,8 +693,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/files/__init__.py b/src/merge/resources/filestorage/resources/files/__init__.py index 7051713d..c3aa546f 100644 --- a/src/merge/resources/filestorage/resources/files/__init__.py +++ b/src/merge/resources/filestorage/resources/files/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/files/raw_client.py b/src/merge/resources/filestorage/resources/files/raw_client.py index 7c94a745..42455ca6 100644 --- a/src/merge/resources/filestorage/resources/files/raw_client.py +++ b/src/merge/resources/filestorage/resources/files/raw_client.py @@ -10,7 +10,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.download_request_meta import DownloadRequestMeta @@ -24,7 +23,6 @@ from .types.files_list_request_expand_item import FilesListRequestExpandItem from .types.files_list_request_order_by import FilesListRequestOrderBy from .types.files_retrieve_request_expand_item import FilesRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -168,10 +166,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -232,10 +226,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -296,10 +286,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.contextmanager @@ -355,13 +341,6 @@ def _stream() -> HttpResponse[typing.Iterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield _stream() @@ -412,10 +391,6 @@ def download_request_meta_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def download_request_meta_list( @@ -506,10 +481,6 @@ def download_request_meta_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -546,10 +517,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -691,10 +658,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -755,10 +718,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -819,10 +778,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.asynccontextmanager @@ -879,13 +834,6 @@ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield await _stream() @@ -936,10 +884,6 @@ async def download_request_meta_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def download_request_meta_list( @@ -1030,10 +974,6 @@ async def download_request_meta_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1070,8 +1010,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/files/types/__init__.py b/src/merge/resources/filestorage/resources/files/types/__init__.py index 816313c4..c0027796 100644 --- a/src/merge/resources/filestorage/resources/files/types/__init__.py +++ b/src/merge/resources/filestorage/resources/files/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/files/types/files_download_request_meta_list_request_order_by.py b/src/merge/resources/filestorage/resources/files/types/files_download_request_meta_list_request_order_by.py index d7bb3cdf..68856c4d 100644 --- a/src/merge/resources/filestorage/resources/files/types/files_download_request_meta_list_request_order_by.py +++ b/src/merge/resources/filestorage/resources/files/types/files_download_request_meta_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FilesDownloadRequestMetaListRequestOrderBy(enum.StrEnum): +class FilesDownloadRequestMetaListRequestOrderBy(str, enum.Enum): CREATED_AT_DESCENDING = "-created_at" MODIFIED_AT_DESCENDING = "-modified_at" CREATED_AT_ASCENDING = "created_at" diff --git a/src/merge/resources/filestorage/resources/files/types/files_list_request_expand_item.py b/src/merge/resources/filestorage/resources/files/types/files_list_request_expand_item.py index 83fc7716..70700994 100644 --- a/src/merge/resources/filestorage/resources/files/types/files_list_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/files/types/files_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FilesListRequestExpandItem(enum.StrEnum): +class FilesListRequestExpandItem(str, enum.Enum): DRIVE = "drive" FOLDER = "folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/filestorage/resources/files/types/files_list_request_order_by.py b/src/merge/resources/filestorage/resources/files/types/files_list_request_order_by.py index c4c80163..1e585467 100644 --- a/src/merge/resources/filestorage/resources/files/types/files_list_request_order_by.py +++ b/src/merge/resources/filestorage/resources/files/types/files_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FilesListRequestOrderBy(enum.StrEnum): +class FilesListRequestOrderBy(str, enum.Enum): CREATED_AT_DESCENDING = "-created_at" MODIFIED_AT_DESCENDING = "-modified_at" CREATED_AT_ASCENDING = "created_at" diff --git a/src/merge/resources/filestorage/resources/files/types/files_retrieve_request_expand_item.py b/src/merge/resources/filestorage/resources/files/types/files_retrieve_request_expand_item.py index cdc2579d..1770d94e 100644 --- a/src/merge/resources/filestorage/resources/files/types/files_retrieve_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/files/types/files_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FilesRetrieveRequestExpandItem(enum.StrEnum): +class FilesRetrieveRequestExpandItem(str, enum.Enum): DRIVE = "drive" FOLDER = "folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/filestorage/resources/folders/__init__.py b/src/merge/resources/filestorage/resources/folders/__init__.py index f06c1413..b9307deb 100644 --- a/src/merge/resources/filestorage/resources/folders/__init__.py +++ b/src/merge/resources/filestorage/resources/folders/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/folders/raw_client.py b/src/merge/resources/filestorage/resources/folders/raw_client.py index c14daf42..615264e5 100644 --- a/src/merge/resources/filestorage/resources/folders/raw_client.py +++ b/src/merge/resources/filestorage/resources/folders/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.file_storage_folder_response import FileStorageFolderResponse @@ -19,7 +18,6 @@ from ...types.paginated_folder_list import PaginatedFolderList from .types.folders_list_request_expand_item import FoldersListRequestExpandItem from .types.folders_retrieve_request_expand_item import FoldersRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -139,10 +137,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -203,10 +197,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -267,10 +257,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -307,10 +293,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -428,10 +410,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -492,10 +470,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -556,10 +530,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -596,8 +566,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/folders/types/__init__.py b/src/merge/resources/filestorage/resources/folders/types/__init__.py index 45f03559..064c3b61 100644 --- a/src/merge/resources/filestorage/resources/folders/types/__init__.py +++ b/src/merge/resources/filestorage/resources/folders/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/folders/types/folders_list_request_expand_item.py b/src/merge/resources/filestorage/resources/folders/types/folders_list_request_expand_item.py index 383dff4d..6a75787d 100644 --- a/src/merge/resources/filestorage/resources/folders/types/folders_list_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/folders/types/folders_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FoldersListRequestExpandItem(enum.StrEnum): +class FoldersListRequestExpandItem(str, enum.Enum): DRIVE = "drive" PARENT_FOLDER = "parent_folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/filestorage/resources/folders/types/folders_retrieve_request_expand_item.py b/src/merge/resources/filestorage/resources/folders/types/folders_retrieve_request_expand_item.py index d837c73e..f2486a45 100644 --- a/src/merge/resources/filestorage/resources/folders/types/folders_retrieve_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/folders/types/folders_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class FoldersRetrieveRequestExpandItem(enum.StrEnum): +class FoldersRetrieveRequestExpandItem(str, enum.Enum): DRIVE = "drive" PARENT_FOLDER = "parent_folder" PERMISSIONS = "permissions" diff --git a/src/merge/resources/filestorage/resources/force_resync/raw_client.py b/src/merge/resources/filestorage/resources/force_resync/raw_client.py index 321a8bff..31dc7d3a 100644 --- a/src/merge/resources/filestorage/resources/force_resync/raw_client.py +++ b/src/merge/resources/filestorage/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/generate_key/raw_client.py b/src/merge/resources/filestorage/resources/generate_key/raw_client.py index 44302e82..3c418ce6 100644 --- a/src/merge/resources/filestorage/resources/generate_key/raw_client.py +++ b/src/merge/resources/filestorage/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/groups/__init__.py b/src/merge/resources/filestorage/resources/groups/__init__.py index 833b79cd..c42a8d2e 100644 --- a/src/merge/resources/filestorage/resources/groups/__init__.py +++ b/src/merge/resources/filestorage/resources/groups/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/groups/raw_client.py b/src/merge/resources/filestorage/resources/groups/raw_client.py index cbe588c1..6511f4da 100644 --- a/src/merge/resources/filestorage/resources/groups/raw_client.py +++ b/src/merge/resources/filestorage/resources/groups/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList from .types.groups_list_request_expand_item import GroupsListRequestExpandItem from .types.groups_retrieve_request_expand_item import GroupsRetrieveRequestExpandItem -from pydantic import ValidationError class RawGroupsClient: @@ -118,10 +116,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -182,10 +176,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -288,10 +278,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -352,8 +338,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/groups/types/__init__.py b/src/merge/resources/filestorage/resources/groups/types/__init__.py index 1ac662da..9f5d7290 100644 --- a/src/merge/resources/filestorage/resources/groups/types/__init__.py +++ b/src/merge/resources/filestorage/resources/groups/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/groups/types/groups_list_request_expand_item.py b/src/merge/resources/filestorage/resources/groups/types/groups_list_request_expand_item.py index b3402014..7e74c3cc 100644 --- a/src/merge/resources/filestorage/resources/groups/types/groups_list_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/groups/types/groups_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsListRequestExpandItem(enum.StrEnum): +class GroupsListRequestExpandItem(str, enum.Enum): CHILD_GROUPS = "child_groups" USERS = "users" diff --git a/src/merge/resources/filestorage/resources/groups/types/groups_retrieve_request_expand_item.py b/src/merge/resources/filestorage/resources/groups/types/groups_retrieve_request_expand_item.py index 2d5c0147..4843d494 100644 --- a/src/merge/resources/filestorage/resources/groups/types/groups_retrieve_request_expand_item.py +++ b/src/merge/resources/filestorage/resources/groups/types/groups_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsRetrieveRequestExpandItem(enum.StrEnum): +class GroupsRetrieveRequestExpandItem(str, enum.Enum): CHILD_GROUPS = "child_groups" USERS = "users" diff --git a/src/merge/resources/filestorage/resources/issues/__init__.py b/src/merge/resources/filestorage/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/filestorage/resources/issues/__init__.py +++ b/src/merge/resources/filestorage/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/issues/raw_client.py b/src/merge/resources/filestorage/resources/issues/raw_client.py index ec119848..35d516dd 100644 --- a/src/merge/resources/filestorage/resources/issues/raw_client.py +++ b/src/merge/resources/filestorage/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/issues/types/__init__.py b/src/merge/resources/filestorage/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/filestorage/resources/issues/types/__init__.py +++ b/src/merge/resources/filestorage/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/issues/types/issues_list_request_status.py b/src/merge/resources/filestorage/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/filestorage/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/filestorage/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/filestorage/resources/link_token/client.py b/src/merge/resources/filestorage/resources/link_token/client.py index 1548eadf..30526e8f 100644 --- a/src/merge/resources/filestorage/resources/link_token/client.py +++ b/src/merge/resources/filestorage/resources/link_token/client.py @@ -47,7 +47,7 @@ def create( ] = OMIT, language: typing.Optional[LanguageEnum] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -94,7 +94,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -172,7 +172,7 @@ async def create( ] = OMIT, language: typing.Optional[LanguageEnum] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -219,7 +219,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] diff --git a/src/merge/resources/filestorage/resources/link_token/raw_client.py b/src/merge/resources/filestorage/resources/link_token/raw_client.py index e6dd42c1..b84cefda 100644 --- a/src/merge/resources/filestorage/resources/link_token/raw_client.py +++ b/src/merge/resources/filestorage/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -14,7 +13,6 @@ from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest from ...types.language_enum import LanguageEnum from ...types.link_token import LinkToken -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +39,7 @@ def create( ] = OMIT, language: typing.Optional[LanguageEnum] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[LinkToken]: """ @@ -88,7 +86,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -136,10 +134,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,7 +158,7 @@ async def create( ] = OMIT, language: typing.Optional[LanguageEnum] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[LinkToken]: """ @@ -211,7 +205,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -259,8 +253,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/linked_accounts/__init__.py b/src/merge/resources/filestorage/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/filestorage/resources/linked_accounts/__init__.py +++ b/src/merge/resources/filestorage/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/linked_accounts/raw_client.py b/src/merge/resources/filestorage/resources/linked_accounts/raw_client.py index b3fce544..d0e67c0f 100644 --- a/src/merge/resources/filestorage/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/filestorage/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -249,8 +243,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/linked_accounts/types/__init__.py b/src/merge/resources/filestorage/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/filestorage/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/filestorage/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/filestorage/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/filestorage/resources/linked_accounts/types/linked_accounts_list_request_category.py index ce04d1de..bd873ea8 100644 --- a/src/merge/resources/filestorage/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/filestorage/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CRM = "crm" diff --git a/src/merge/resources/filestorage/resources/passthrough/raw_client.py b/src/merge/resources/filestorage/resources/passthrough/raw_client.py index fae3e726..adba71ba 100644 --- a/src/merge/resources/filestorage/resources/passthrough/raw_client.py +++ b/src/merge/resources/filestorage/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/regenerate_key/raw_client.py b/src/merge/resources/filestorage/resources/regenerate_key/raw_client.py index 8297f6c4..5334d0d8 100644 --- a/src/merge/resources/filestorage/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/filestorage/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/scopes/raw_client.py b/src/merge/resources/filestorage/resources/scopes/raw_client.py index 38e97165..1ee36dae 100644 --- a/src/merge/resources/filestorage/resources/scopes/raw_client.py +++ b/src/merge/resources/filestorage/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/sync_status/raw_client.py b/src/merge/resources/filestorage/resources/sync_status/raw_client.py index ab373ab1..3766d9b1 100644 --- a/src/merge/resources/filestorage/resources/sync_status/raw_client.py +++ b/src/merge/resources/filestorage/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/users/raw_client.py b/src/merge/resources/filestorage/resources/users/raw_client.py index 2907e2ed..87a36cf7 100644 --- a/src/merge/resources/filestorage/resources/users/raw_client.py +++ b/src/merge/resources/filestorage/resources/users/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User -from pydantic import ValidationError class RawUsersClient: @@ -119,10 +117,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -176,10 +170,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -285,10 +275,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -342,8 +328,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/resources/webhook_receivers/raw_client.py b/src/merge/resources/filestorage/resources/webhook_receivers/raw_client.py index 2cbef3a3..b05128f6 100644 --- a/src/merge/resources/filestorage/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/filestorage/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/filestorage/types/__init__.py b/src/merge/resources/filestorage/types/__init__.py index 7245d01c..dcfd4466 100644 --- a/src/merge/resources/filestorage/types/__init__.py +++ b/src/merge/resources/filestorage/types/__init__.py @@ -124,7 +124,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .type_enum import TypeEnum from .user import User from .validation_problem_source import ValidationProblemSource @@ -247,7 +249,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "TypeEnum": ".type_enum", "User": ".user", "ValidationProblemSource": ".validation_problem_source", @@ -262,10 +266,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -394,7 +396,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "TypeEnum", "User", "ValidationProblemSource", diff --git a/src/merge/resources/filestorage/types/account_details_and_actions.py b/src/merge/resources/filestorage/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/filestorage/types/account_details_and_actions.py +++ b/src/merge/resources/filestorage/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/account_details_and_actions_status_enum.py b/src/merge/resources/filestorage/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/filestorage/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/filestorage/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/filestorage/types/account_integration.py b/src/merge/resources/filestorage/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/filestorage/types/account_integration.py +++ b/src/merge/resources/filestorage/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/filestorage/types/advanced_metadata.py b/src/merge/resources/filestorage/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/filestorage/types/advanced_metadata.py +++ b/src/merge/resources/filestorage/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/categories_enum.py b/src/merge/resources/filestorage/types/categories_enum.py index 82308151..3f2dc5a9 100644 --- a/src/merge/resources/filestorage/types/categories_enum.py +++ b/src/merge/resources/filestorage/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/filestorage/types/category_enum.py b/src/merge/resources/filestorage/types/category_enum.py index 9a2fa8c7..d37e48f5 100644 --- a/src/merge/resources/filestorage/types/category_enum.py +++ b/src/merge/resources/filestorage/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/filestorage/types/data_passthrough_request.py b/src/merge/resources/filestorage/types/data_passthrough_request.py index df3af029..c9f0a799 100644 --- a/src/merge/resources/filestorage/types/data_passthrough_request.py +++ b/src/merge/resources/filestorage/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/filestorage/types/download_request_meta.py b/src/merge/resources/filestorage/types/download_request_meta.py index bc3c0d56..18180e9a 100644 --- a/src/merge/resources/filestorage/types/download_request_meta.py +++ b/src/merge/resources/filestorage/types/download_request_meta.py @@ -11,7 +11,7 @@ class DownloadRequestMeta(UncheckedBaseModel): id: str url: str method: str - headers: typing.Dict[str, typing.Any] + headers: typing.Dict[str, typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/drive.py b/src/merge/resources/filestorage/types/drive.py index b0db5265..50a5f2bf 100644 --- a/src/merge/resources/filestorage/types/drive.py +++ b/src/merge/resources/filestorage/types/drive.py @@ -54,7 +54,7 @@ class Drive(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/filestorage/types/enabled_actions_enum.py b/src/merge/resources/filestorage/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/filestorage/types/enabled_actions_enum.py +++ b/src/merge/resources/filestorage/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/filestorage/types/encoding_enum.py b/src/merge/resources/filestorage/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/filestorage/types/encoding_enum.py +++ b/src/merge/resources/filestorage/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/filestorage/types/event_type_enum.py b/src/merge/resources/filestorage/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/filestorage/types/event_type_enum.py +++ b/src/merge/resources/filestorage/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/filestorage/types/external_target_field_api_response.py b/src/merge/resources/filestorage/types/external_target_field_api_response.py index 349ab811..9a153105 100644 --- a/src/merge/resources/filestorage/types/external_target_field_api_response.py +++ b/src/merge/resources/filestorage/types/external_target_field_api_response.py @@ -3,35 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - file: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="File"), pydantic.Field(alias="File") - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Folder"), - pydantic.Field(alias="Folder"), - ] = None - drive: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Drive"), - pydantic.Field(alias="Drive"), - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None + file: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="File", default=None) + folder: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Folder", default=None) + drive: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Drive", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/filestorage/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/filestorage/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/filestorage/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/filestorage/types/field_mapping_api_instance_response.py b/src/merge/resources/filestorage/types/field_mapping_api_instance_response.py index 52eb9cd2..d4df587b 100644 --- a/src/merge/resources/filestorage/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/filestorage/types/field_mapping_api_instance_response.py @@ -3,35 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - file: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="File"), pydantic.Field(alias="File") - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Folder"), - pydantic.Field(alias="Folder"), - ] = None - drive: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Drive"), - pydantic.Field(alias="Drive"), - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None + file: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="File", default=None) + folder: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Folder", default=None) + drive: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Drive", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/field_permission_deserializer.py b/src/merge/resources/filestorage/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/filestorage/types/field_permission_deserializer.py +++ b/src/merge/resources/filestorage/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/field_permission_deserializer_request.py b/src/merge/resources/filestorage/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/filestorage/types/field_permission_deserializer_request.py +++ b/src/merge/resources/filestorage/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/file.py b/src/merge/resources/filestorage/types/file.py index b7d8ba95..72c8e9e1 100644 --- a/src/merge/resources/filestorage/types/file.py +++ b/src/merge/resources/filestorage/types/file.py @@ -74,7 +74,7 @@ class File(UncheckedBaseModel): The folder that the file belongs to. """ - checksum: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + checksum: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. """ @@ -104,7 +104,7 @@ class File(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -117,4 +117,7 @@ class Config: extra = pydantic.Extra.allow +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(File) diff --git a/src/merge/resources/filestorage/types/file_request.py b/src/merge/resources/filestorage/types/file_request.py index 6bdd958e..6ede10ef 100644 --- a/src/merge/resources/filestorage/types/file_request.py +++ b/src/merge/resources/filestorage/types/file_request.py @@ -56,7 +56,7 @@ class FileRequest(UncheckedBaseModel): The folder that the file belongs to. """ - checksum: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + checksum: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. """ @@ -71,8 +71,8 @@ class FileRequest(UncheckedBaseModel): The drive that the file belongs to. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -84,4 +84,7 @@ class Config: extra = pydantic.Extra.allow +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(FileRequest) diff --git a/src/merge/resources/filestorage/types/file_storage_file_response.py b/src/merge/resources/filestorage/types/file_storage_file_response.py index 55326cf8..d3b3337b 100644 --- a/src/merge/resources/filestorage/types/file_storage_file_response.py +++ b/src/merge/resources/filestorage/types/file_storage_file_response.py @@ -29,4 +29,7 @@ class Config: extra = pydantic.Extra.allow +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(FileStorageFileResponse) diff --git a/src/merge/resources/filestorage/types/file_storage_folder_response.py b/src/merge/resources/filestorage/types/file_storage_folder_response.py index bc34de32..d0a65d91 100644 --- a/src/merge/resources/filestorage/types/file_storage_folder_response.py +++ b/src/merge/resources/filestorage/types/file_storage_folder_response.py @@ -28,7 +28,7 @@ class Config: extra = pydantic.Extra.allow -from .folder import Folder # noqa: E402, I001 -from .folder_parent_folder import FolderParentFolder # noqa: E402, I001 +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 -update_forward_refs(FileStorageFolderResponse, Folder=Folder, FolderParentFolder=FolderParentFolder) +update_forward_refs(FileStorageFolderResponse) diff --git a/src/merge/resources/filestorage/types/folder.py b/src/merge/resources/filestorage/types/folder.py index 472b461f..572a0a9d 100644 --- a/src/merge/resources/filestorage/types/folder.py +++ b/src/merge/resources/filestorage/types/folder.py @@ -88,7 +88,7 @@ class Folder(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -101,6 +101,7 @@ class Config: extra = pydantic.Extra.allow -from .folder_parent_folder import FolderParentFolder # noqa: E402, I001 +from .group import Group # noqa: E402, F401, I001 +from .folder_parent_folder import FolderParentFolder # noqa: E402, F401, I001 -update_forward_refs(Folder, FolderParentFolder=FolderParentFolder) +update_forward_refs(Folder) diff --git a/src/merge/resources/filestorage/types/folder_request.py b/src/merge/resources/filestorage/types/folder_request.py index 5ef29b8f..f703ed7f 100644 --- a/src/merge/resources/filestorage/types/folder_request.py +++ b/src/merge/resources/filestorage/types/folder_request.py @@ -56,8 +56,8 @@ class FolderRequest(UncheckedBaseModel): The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details under `GET /folders`. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -69,4 +69,7 @@ class Config: extra = pydantic.Extra.allow +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(FolderRequest) diff --git a/src/merge/resources/filestorage/types/group.py b/src/merge/resources/filestorage/types/group.py index f4a07a91..87046883 100644 --- a/src/merge/resources/filestorage/types/group.py +++ b/src/merge/resources/filestorage/types/group.py @@ -57,7 +57,7 @@ class Group(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -70,6 +70,6 @@ class Config: extra = pydantic.Extra.allow -from .group_child_groups_item import GroupChildGroupsItem # noqa: E402, I001 +from .group_child_groups_item import GroupChildGroupsItem # noqa: E402, F401, I001 -update_forward_refs(Group, GroupChildGroupsItem=GroupChildGroupsItem) +update_forward_refs(Group) diff --git a/src/merge/resources/filestorage/types/issue.py b/src/merge/resources/filestorage/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/filestorage/types/issue.py +++ b/src/merge/resources/filestorage/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/filestorage/types/issue_status_enum.py b/src/merge/resources/filestorage/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/filestorage/types/issue_status_enum.py +++ b/src/merge/resources/filestorage/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/filestorage/types/language_enum.py b/src/merge/resources/filestorage/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/filestorage/types/language_enum.py +++ b/src/merge/resources/filestorage/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/filestorage/types/last_sync_result_enum.py b/src/merge/resources/filestorage/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/filestorage/types/last_sync_result_enum.py +++ b/src/merge/resources/filestorage/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/filestorage/types/meta_response.py b/src/merge/resources/filestorage/types/meta_response.py index 0da37619..caa2c831 100644 --- a/src/merge/resources/filestorage/types/meta_response.py +++ b/src/merge/resources/filestorage/types/meta_response.py @@ -9,8 +9,8 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] - remote_field_classes: typing.Optional[typing.Dict[str, typing.Any]] = None + request_schema: typing.Dict[str, typing.Optional[typing.Any]] + remote_field_classes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/filestorage/types/method_enum.py b/src/merge/resources/filestorage/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/filestorage/types/method_enum.py +++ b/src/merge/resources/filestorage/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/filestorage/types/paginated_file_list.py b/src/merge/resources/filestorage/types/paginated_file_list.py index 17787846..e3daeb68 100644 --- a/src/merge/resources/filestorage/types/paginated_file_list.py +++ b/src/merge/resources/filestorage/types/paginated_file_list.py @@ -25,4 +25,7 @@ class Config: extra = pydantic.Extra.allow +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(PaginatedFileList) diff --git a/src/merge/resources/filestorage/types/paginated_folder_list.py b/src/merge/resources/filestorage/types/paginated_folder_list.py index c802dd23..87477c83 100644 --- a/src/merge/resources/filestorage/types/paginated_folder_list.py +++ b/src/merge/resources/filestorage/types/paginated_folder_list.py @@ -24,7 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .folder import Folder # noqa: E402, I001 -from .folder_parent_folder import FolderParentFolder # noqa: E402, I001 +from .folder import Folder # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 -update_forward_refs(PaginatedFolderList, Folder=Folder, FolderParentFolder=FolderParentFolder) +update_forward_refs(PaginatedFolderList) diff --git a/src/merge/resources/filestorage/types/paginated_group_list.py b/src/merge/resources/filestorage/types/paginated_group_list.py index 8ead4b5e..ddbf97b2 100644 --- a/src/merge/resources/filestorage/types/paginated_group_list.py +++ b/src/merge/resources/filestorage/types/paginated_group_list.py @@ -24,7 +24,6 @@ class Config: extra = pydantic.Extra.allow -from .group import Group # noqa: E402, I001 -from .group_child_groups_item import GroupChildGroupsItem # noqa: E402, I001 +from .group import Group # noqa: E402, F401, I001 -update_forward_refs(PaginatedGroupList, Group=Group, GroupChildGroupsItem=GroupChildGroupsItem) +update_forward_refs(PaginatedGroupList) diff --git a/src/merge/resources/filestorage/types/permission.py b/src/merge/resources/filestorage/types/permission.py index 65426e6e..954f589f 100644 --- a/src/merge/resources/filestorage/types/permission.py +++ b/src/merge/resources/filestorage/types/permission.py @@ -70,7 +70,7 @@ class Permission(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -82,4 +82,6 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(Permission) diff --git a/src/merge/resources/filestorage/types/permission_request.py b/src/merge/resources/filestorage/types/permission_request.py index 59c0beb8..0187dd60 100644 --- a/src/merge/resources/filestorage/types/permission_request.py +++ b/src/merge/resources/filestorage/types/permission_request.py @@ -53,8 +53,8 @@ class PermissionRequest(UncheckedBaseModel): The permissions that the user or group has for the File or Folder. It is possible for a user or group to have multiple roles, such as viewing & uploading. Possible values include: `READ`, `WRITE`, `OWNER`. In cases where there is no clear mapping, the original value passed through will be returned. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -66,4 +66,6 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(PermissionRequest) diff --git a/src/merge/resources/filestorage/types/remote_data.py b/src/merge/resources/filestorage/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/filestorage/types/remote_data.py +++ b/src/merge/resources/filestorage/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/filestorage/types/remote_endpoint_info.py b/src/merge/resources/filestorage/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/filestorage/types/remote_endpoint_info.py +++ b/src/merge/resources/filestorage/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/remote_field_api.py b/src/merge/resources/filestorage/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/filestorage/types/remote_field_api.py +++ b/src/merge/resources/filestorage/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/filestorage/types/remote_field_api_response.py b/src/merge/resources/filestorage/types/remote_field_api_response.py index c31a4b77..2200ec72 100644 --- a/src/merge/resources/filestorage/types/remote_field_api_response.py +++ b/src/merge/resources/filestorage/types/remote_field_api_response.py @@ -3,29 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - file: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="File"), pydantic.Field(alias="File") - ] = None - folder: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Folder"), pydantic.Field(alias="Folder") - ] = None - drive: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Drive"), pydantic.Field(alias="Drive") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None + file: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="File", default=None) + folder: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Folder", default=None) + drive: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Drive", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/remote_response.py b/src/merge/resources/filestorage/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/filestorage/types/remote_response.py +++ b/src/merge/resources/filestorage/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/filestorage/types/request_format_enum.py b/src/merge/resources/filestorage/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/filestorage/types/request_format_enum.py +++ b/src/merge/resources/filestorage/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/filestorage/types/response_type_enum.py b/src/merge/resources/filestorage/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/filestorage/types/response_type_enum.py +++ b/src/merge/resources/filestorage/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/filestorage/types/role_enum.py b/src/merge/resources/filestorage/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/filestorage/types/role_enum.py +++ b/src/merge/resources/filestorage/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/filestorage/types/roles_enum.py b/src/merge/resources/filestorage/types/roles_enum.py index 52c7cccb..1176c798 100644 --- a/src/merge/resources/filestorage/types/roles_enum.py +++ b/src/merge/resources/filestorage/types/roles_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RolesEnum(enum.StrEnum): +class RolesEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/filestorage/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/filestorage/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/filestorage/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/filestorage/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/filestorage/types/status_fd_5_enum.py b/src/merge/resources/filestorage/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/filestorage/types/status_fd_5_enum.py +++ b/src/merge/resources/filestorage/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/filestorage/types/sync_status.py b/src/merge/resources/filestorage/types/sync_status.py index 07ab1dc2..4bb187e3 100644 --- a/src/merge/resources/filestorage/types/sync_status.py +++ b/src/merge/resources/filestorage/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/filestorage/types/sync_status_reason_enum.py b/src/merge/resources/filestorage/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/filestorage/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/filestorage/types/sync_status_sync_status_reason.py b/src/merge/resources/filestorage/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/filestorage/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/filestorage/types/type_enum.py b/src/merge/resources/filestorage/types/type_enum.py index 7ec71bec..3ae7011d 100644 --- a/src/merge/resources/filestorage/types/type_enum.py +++ b/src/merge/resources/filestorage/types/type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TypeEnum(enum.StrEnum): +class TypeEnum(str, enum.Enum): """ * `USER` - USER * `GROUP` - GROUP diff --git a/src/merge/resources/filestorage/types/user.py b/src/merge/resources/filestorage/types/user.py index eaca56e0..58b9ce24 100644 --- a/src/merge/resources/filestorage/types/user.py +++ b/src/merge/resources/filestorage/types/user.py @@ -54,7 +54,7 @@ class User(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/__init__.py b/src/merge/resources/hris/__init__.py index 71e1b0f7..1e36d10f 100644 --- a/src/merge/resources/hris/__init__.py +++ b/src/merge/resources/hris/__init__.py @@ -179,7 +179,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, Tax, Team, TeamParentTeam, @@ -494,7 +496,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "Tax": ".types", "Team": ".types", "TeamParentTeam": ".types", @@ -576,10 +580,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -797,7 +799,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Tax", "Team", "TeamParentTeam", diff --git a/src/merge/resources/hris/resources/__init__.py b/src/merge/resources/hris/resources/__init__.py index 74c2ef2d..7f75e17c 100644 --- a/src/merge/resources/hris/resources/__init__.py +++ b/src/merge/resources/hris/resources/__init__.py @@ -139,39 +139,39 @@ "TimeOffRetrieveRequestRemoteFields": ".time_off", "TimeOffRetrieveRequestShowEnumOrigins": ".time_off", "TimesheetEntriesListRequestOrderBy": ".timesheet_entries", - "account_details": ".account_details", - "account_token": ".account_token", - "async_passthrough": ".async_passthrough", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "bank_info": ".bank_info", - "benefits": ".benefits", - "companies": ".companies", - "delete_account": ".delete_account", - "dependents": ".dependents", - "employee_payroll_runs": ".employee_payroll_runs", - "employees": ".employees", - "employer_benefits": ".employer_benefits", - "employments": ".employments", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "locations": ".locations", - "passthrough": ".passthrough", - "pay_groups": ".pay_groups", - "payroll_runs": ".payroll_runs", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "sync_status": ".sync_status", - "teams": ".teams", - "time_off": ".time_off", - "time_off_balances": ".time_off_balances", - "timesheet_entries": ".timesheet_entries", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "async_passthrough": ".", + "audit_trail": ".", + "available_actions": ".", + "bank_info": ".", + "benefits": ".", + "companies": ".", + "delete_account": ".", + "dependents": ".", + "employee_payroll_runs": ".", + "employees": ".", + "employer_benefits": ".", + "employments": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "locations": ".", + "passthrough": ".", + "pay_groups": ".", + "payroll_runs": ".", + "regenerate_key": ".", + "scopes": ".", + "sync_status": ".", + "teams": ".", + "time_off": ".", + "time_off_balances": ".", + "timesheet_entries": ".", + "webhook_receivers": ".", } @@ -181,10 +181,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/account_details/raw_client.py b/src/merge/resources/hris/resources/account_details/raw_client.py index d12b2503..9c729853 100644 --- a/src/merge/resources/hris/resources/account_details/raw_client.py +++ b/src/merge/resources/hris/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/account_token/raw_client.py b/src/merge/resources/hris/resources/account_token/raw_client.py index f3ff29f7..996e66d9 100644 --- a/src/merge/resources/hris/resources/account_token/raw_client.py +++ b/src/merge/resources/hris/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/async_passthrough/__init__.py b/src/merge/resources/hris/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/hris/resources/async_passthrough/__init__.py +++ b/src/merge/resources/hris/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/async_passthrough/raw_client.py b/src/merge/resources/hris/resources/async_passthrough/raw_client.py index 65581574..e4d6da0c 100644 --- a/src/merge/resources/hris/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/hris/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/async_passthrough/types/__init__.py b/src/merge/resources/hris/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/hris/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/hris/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/audit_trail/raw_client.py b/src/merge/resources/hris/resources/audit_trail/raw_client.py index 7a01621e..4f45b96a 100644 --- a/src/merge/resources/hris/resources/audit_trail/raw_client.py +++ b/src/merge/resources/hris/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/available_actions/raw_client.py b/src/merge/resources/hris/resources/available_actions/raw_client.py index 40215a5a..694d02ed 100644 --- a/src/merge/resources/hris/resources/available_actions/raw_client.py +++ b/src/merge/resources/hris/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/bank_info/__init__.py b/src/merge/resources/hris/resources/bank_info/__init__.py index f774b285..c4f49abf 100644 --- a/src/merge/resources/hris/resources/bank_info/__init__.py +++ b/src/merge/resources/hris/resources/bank_info/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/bank_info/raw_client.py b/src/merge/resources/hris/resources/bank_info/raw_client.py index 9b1405a2..4f34a8cd 100644 --- a/src/merge/resources/hris/resources/bank_info/raw_client.py +++ b/src/merge/resources/hris/resources/bank_info/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.bank_info import BankInfo from ...types.paginated_bank_info_list import PaginatedBankInfoList from .types.bank_info_list_request_account_type import BankInfoListRequestAccountType from .types.bank_info_list_request_order_by import BankInfoListRequestOrderBy -from pydantic import ValidationError class RawBankInfoClient: @@ -151,10 +149,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -225,10 +219,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -364,10 +354,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -438,8 +424,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/bank_info/types/__init__.py b/src/merge/resources/hris/resources/bank_info/types/__init__.py index a3bf0a56..9f1d7d37 100644 --- a/src/merge/resources/hris/resources/bank_info/types/__init__.py +++ b/src/merge/resources/hris/resources/bank_info/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_account_type.py b/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_account_type.py index ca9396ae..91cd2c65 100644 --- a/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_account_type.py +++ b/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_account_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class BankInfoListRequestAccountType(enum.StrEnum): +class BankInfoListRequestAccountType(str, enum.Enum): CHECKING = "CHECKING" SAVINGS = "SAVINGS" diff --git a/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_order_by.py b/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_order_by.py index 34dfa353..69c7361f 100644 --- a/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_order_by.py +++ b/src/merge/resources/hris/resources/bank_info/types/bank_info_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class BankInfoListRequestOrderBy(enum.StrEnum): +class BankInfoListRequestOrderBy(str, enum.Enum): REMOTE_CREATED_AT_DESCENDING = "-remote_created_at" REMOTE_CREATED_AT_ASCENDING = "remote_created_at" diff --git a/src/merge/resources/hris/resources/benefits/raw_client.py b/src/merge/resources/hris/resources/benefits/raw_client.py index 45acad49..49eb247c 100644 --- a/src/merge/resources/hris/resources/benefits/raw_client.py +++ b/src/merge/resources/hris/resources/benefits/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.benefit import Benefit from ...types.paginated_benefit_list import PaginatedBenefitList -from pydantic import ValidationError class RawBenefitsClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/companies/raw_client.py b/src/merge/resources/hris/resources/companies/raw_client.py index b11552a2..99a8715e 100644 --- a/src/merge/resources/hris/resources/companies/raw_client.py +++ b/src/merge/resources/hris/resources/companies/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.company import Company from ...types.paginated_company_list import PaginatedCompanyList -from pydantic import ValidationError class RawCompaniesClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/delete_account/raw_client.py b/src/merge/resources/hris/resources/delete_account/raw_client.py index 9455f4ce..f71ea39d 100644 --- a/src/merge/resources/hris/resources/delete_account/raw_client.py +++ b/src/merge/resources/hris/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/dependents/raw_client.py b/src/merge/resources/hris/resources/dependents/raw_client.py index 0beee933..5e9fd5ef 100644 --- a/src/merge/resources/hris/resources/dependents/raw_client.py +++ b/src/merge/resources/hris/resources/dependents/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.dependent import Dependent from ...types.paginated_dependent_list import PaginatedDependentList -from pydantic import ValidationError class RawDependentsClient: @@ -119,10 +117,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -181,10 +175,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -290,10 +280,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -352,8 +338,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/employee_payroll_runs/__init__.py b/src/merge/resources/hris/resources/employee_payroll_runs/__init__.py index a8ba94af..b18daacb 100644 --- a/src/merge/resources/hris/resources/employee_payroll_runs/__init__.py +++ b/src/merge/resources/hris/resources/employee_payroll_runs/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employee_payroll_runs/raw_client.py b/src/merge/resources/hris/resources/employee_payroll_runs/raw_client.py index f3a12283..4ffa4b21 100644 --- a/src/merge/resources/hris/resources/employee_payroll_runs/raw_client.py +++ b/src/merge/resources/hris/resources/employee_payroll_runs/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.employee_payroll_run import EmployeePayrollRun from ...types.paginated_employee_payroll_run_list import PaginatedEmployeePayrollRunList from .types.employee_payroll_runs_list_request_expand_item import EmployeePayrollRunsListRequestExpandItem from .types.employee_payroll_runs_retrieve_request_expand_item import EmployeePayrollRunsRetrieveRequestExpandItem -from pydantic import ValidationError class RawEmployeePayrollRunsClient: @@ -150,10 +148,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -217,10 +211,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -355,10 +345,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -422,8 +408,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/employee_payroll_runs/types/__init__.py b/src/merge/resources/hris/resources/employee_payroll_runs/types/__init__.py index c552777a..7685d486 100644 --- a/src/merge/resources/hris/resources/employee_payroll_runs/types/__init__.py +++ b/src/merge/resources/hris/resources/employee_payroll_runs/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_list_request_expand_item.py b/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_list_request_expand_item.py index 4c1cb089..ae6c0cb6 100644 --- a/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_list_request_expand_item.py +++ b/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeePayrollRunsListRequestExpandItem(enum.StrEnum): +class EmployeePayrollRunsListRequestExpandItem(str, enum.Enum): EMPLOYEE = "employee" PAYROLL_RUN = "payroll_run" diff --git a/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_retrieve_request_expand_item.py b/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_retrieve_request_expand_item.py index bf2726ae..9af1e8b8 100644 --- a/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_retrieve_request_expand_item.py +++ b/src/merge/resources/hris/resources/employee_payroll_runs/types/employee_payroll_runs_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeePayrollRunsRetrieveRequestExpandItem(enum.StrEnum): +class EmployeePayrollRunsRetrieveRequestExpandItem(str, enum.Enum): EMPLOYEE = "employee" PAYROLL_RUN = "payroll_run" diff --git a/src/merge/resources/hris/resources/employees/__init__.py b/src/merge/resources/hris/resources/employees/__init__.py index 988b9ba5..1f0c7e50 100644 --- a/src/merge/resources/hris/resources/employees/__init__.py +++ b/src/merge/resources/hris/resources/employees/__init__.py @@ -32,10 +32,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employees/raw_client.py b/src/merge/resources/hris/resources/employees/raw_client.py index 91364a8f..7787adad 100644 --- a/src/merge/resources/hris/resources/employees/raw_client.py +++ b/src/merge/resources/hris/resources/employees/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.employee import Employee @@ -25,7 +24,6 @@ from .types.employees_retrieve_request_expand_item import EmployeesRetrieveRequestExpandItem from .types.employees_retrieve_request_remote_fields import EmployeesRetrieveRequestRemoteFields from .types.employees_retrieve_request_show_enum_origins import EmployeesRetrieveRequestShowEnumOrigins -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -249,10 +247,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -313,10 +307,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -392,10 +382,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def ignore_create( @@ -437,10 +423,6 @@ def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -477,10 +459,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -702,10 +680,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -766,10 +740,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -845,10 +815,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def ignore_create( @@ -890,10 +856,6 @@ async def ignore_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -930,8 +892,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/employees/types/__init__.py b/src/merge/resources/hris/resources/employees/types/__init__.py index d87a343b..bd60b908 100644 --- a/src/merge/resources/hris/resources/employees/types/__init__.py +++ b/src/merge/resources/hris/resources/employees/types/__init__.py @@ -30,10 +30,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employees/types/employees_list_request_employment_status.py b/src/merge/resources/hris/resources/employees/types/employees_list_request_employment_status.py index 16cd3762..f0406ec8 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_list_request_employment_status.py +++ b/src/merge/resources/hris/resources/employees/types/employees_list_request_employment_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesListRequestEmploymentStatus(enum.StrEnum): +class EmployeesListRequestEmploymentStatus(str, enum.Enum): ACTIVE = "ACTIVE" INACTIVE = "INACTIVE" PENDING = "PENDING" diff --git a/src/merge/resources/hris/resources/employees/types/employees_list_request_expand_item.py b/src/merge/resources/hris/resources/employees/types/employees_list_request_expand_item.py index b7eb399a..ff83f741 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_list_request_expand_item.py +++ b/src/merge/resources/hris/resources/employees/types/employees_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesListRequestExpandItem(enum.StrEnum): +class EmployeesListRequestExpandItem(str, enum.Enum): COMPANY = "company" EMPLOYMENTS = "employments" GROUPS = "groups" diff --git a/src/merge/resources/hris/resources/employees/types/employees_list_request_remote_fields.py b/src/merge/resources/hris/resources/employees/types/employees_list_request_remote_fields.py index 3369ac1d..87578468 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_list_request_remote_fields.py +++ b/src/merge/resources/hris/resources/employees/types/employees_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesListRequestRemoteFields(enum.StrEnum): +class EmployeesListRequestRemoteFields(str, enum.Enum): EMPLOYMENT_STATUS = "employment_status" EMPLOYMENT_STATUS_ETHNICITY = "employment_status,ethnicity" EMPLOYMENT_STATUS_ETHNICITY_GENDER = "employment_status,ethnicity,gender" diff --git a/src/merge/resources/hris/resources/employees/types/employees_list_request_show_enum_origins.py b/src/merge/resources/hris/resources/employees/types/employees_list_request_show_enum_origins.py index 52997106..2aa5f5c7 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_list_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/employees/types/employees_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesListRequestShowEnumOrigins(enum.StrEnum): +class EmployeesListRequestShowEnumOrigins(str, enum.Enum): EMPLOYMENT_STATUS = "employment_status" EMPLOYMENT_STATUS_ETHNICITY = "employment_status,ethnicity" EMPLOYMENT_STATUS_ETHNICITY_GENDER = "employment_status,ethnicity,gender" diff --git a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_expand_item.py b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_expand_item.py index 1fa4b865..f152aaf4 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_expand_item.py +++ b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesRetrieveRequestExpandItem(enum.StrEnum): +class EmployeesRetrieveRequestExpandItem(str, enum.Enum): COMPANY = "company" EMPLOYMENTS = "employments" GROUPS = "groups" diff --git a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_remote_fields.py b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_remote_fields.py index 2467fef7..d35a401f 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_remote_fields.py +++ b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesRetrieveRequestRemoteFields(enum.StrEnum): +class EmployeesRetrieveRequestRemoteFields(str, enum.Enum): EMPLOYMENT_STATUS = "employment_status" EMPLOYMENT_STATUS_ETHNICITY = "employment_status,ethnicity" EMPLOYMENT_STATUS_ETHNICITY_GENDER = "employment_status,ethnicity,gender" diff --git a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_show_enum_origins.py b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_show_enum_origins.py index 36f02b6d..d307e05b 100644 --- a/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/employees/types/employees_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmployeesRetrieveRequestShowEnumOrigins(enum.StrEnum): +class EmployeesRetrieveRequestShowEnumOrigins(str, enum.Enum): EMPLOYMENT_STATUS = "employment_status" EMPLOYMENT_STATUS_ETHNICITY = "employment_status,ethnicity" EMPLOYMENT_STATUS_ETHNICITY_GENDER = "employment_status,ethnicity,gender" diff --git a/src/merge/resources/hris/resources/employer_benefits/raw_client.py b/src/merge/resources/hris/resources/employer_benefits/raw_client.py index 498705a9..8d186abf 100644 --- a/src/merge/resources/hris/resources/employer_benefits/raw_client.py +++ b/src/merge/resources/hris/resources/employer_benefits/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.employer_benefit import EmployerBenefit from ...types.paginated_employer_benefit_list import PaginatedEmployerBenefitList -from pydantic import ValidationError class RawEmployerBenefitsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/employments/__init__.py b/src/merge/resources/hris/resources/employments/__init__.py index 2f8405e3..47edf653 100644 --- a/src/merge/resources/hris/resources/employments/__init__.py +++ b/src/merge/resources/hris/resources/employments/__init__.py @@ -32,10 +32,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employments/raw_client.py b/src/merge/resources/hris/resources/employments/raw_client.py index bf1938ff..0594b087 100644 --- a/src/merge/resources/hris/resources/employments/raw_client.py +++ b/src/merge/resources/hris/resources/employments/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.employment import Employment @@ -21,7 +20,6 @@ from .types.employments_retrieve_request_expand_item import EmploymentsRetrieveRequestExpandItem from .types.employments_retrieve_request_remote_fields import EmploymentsRetrieveRequestRemoteFields from .types.employments_retrieve_request_show_enum_origins import EmploymentsRetrieveRequestShowEnumOrigins -from pydantic import ValidationError class RawEmploymentsClient: @@ -143,10 +141,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -217,10 +211,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -343,10 +333,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -417,8 +403,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/employments/types/__init__.py b/src/merge/resources/hris/resources/employments/types/__init__.py index afb0f23b..0fa4e86d 100644 --- a/src/merge/resources/hris/resources/employments/types/__init__.py +++ b/src/merge/resources/hris/resources/employments/types/__init__.py @@ -30,10 +30,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/employments/types/employments_list_request_expand_item.py b/src/merge/resources/hris/resources/employments/types/employments_list_request_expand_item.py index e9d2a04b..3519601e 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_list_request_expand_item.py +++ b/src/merge/resources/hris/resources/employments/types/employments_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsListRequestExpandItem(enum.StrEnum): +class EmploymentsListRequestExpandItem(str, enum.Enum): EMPLOYEE = "employee" PAY_GROUP = "pay_group" diff --git a/src/merge/resources/hris/resources/employments/types/employments_list_request_order_by.py b/src/merge/resources/hris/resources/employments/types/employments_list_request_order_by.py index ae5abb58..4d1fe86f 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_list_request_order_by.py +++ b/src/merge/resources/hris/resources/employments/types/employments_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsListRequestOrderBy(enum.StrEnum): +class EmploymentsListRequestOrderBy(str, enum.Enum): EFFECTIVE_DATE_DESCENDING = "-effective_date" EFFECTIVE_DATE_ASCENDING = "effective_date" diff --git a/src/merge/resources/hris/resources/employments/types/employments_list_request_remote_fields.py b/src/merge/resources/hris/resources/employments/types/employments_list_request_remote_fields.py index de6ade63..b8b35640 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_list_request_remote_fields.py +++ b/src/merge/resources/hris/resources/employments/types/employments_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsListRequestRemoteFields(enum.StrEnum): +class EmploymentsListRequestRemoteFields(str, enum.Enum): EMPLOYMENT_TYPE = "employment_type" EMPLOYMENT_TYPE_FLSA_STATUS = "employment_type,flsa_status" EMPLOYMENT_TYPE_FLSA_STATUS_PAY_FREQUENCY = "employment_type,flsa_status,pay_frequency" diff --git a/src/merge/resources/hris/resources/employments/types/employments_list_request_show_enum_origins.py b/src/merge/resources/hris/resources/employments/types/employments_list_request_show_enum_origins.py index 0c4c2b1a..023d425b 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_list_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/employments/types/employments_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsListRequestShowEnumOrigins(enum.StrEnum): +class EmploymentsListRequestShowEnumOrigins(str, enum.Enum): EMPLOYMENT_TYPE = "employment_type" EMPLOYMENT_TYPE_FLSA_STATUS = "employment_type,flsa_status" EMPLOYMENT_TYPE_FLSA_STATUS_PAY_FREQUENCY = "employment_type,flsa_status,pay_frequency" diff --git a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_expand_item.py b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_expand_item.py index 70588f15..8425214f 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_expand_item.py +++ b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsRetrieveRequestExpandItem(enum.StrEnum): +class EmploymentsRetrieveRequestExpandItem(str, enum.Enum): EMPLOYEE = "employee" PAY_GROUP = "pay_group" diff --git a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_remote_fields.py b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_remote_fields.py index 16df74e8..b54db8d1 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_remote_fields.py +++ b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsRetrieveRequestRemoteFields(enum.StrEnum): +class EmploymentsRetrieveRequestRemoteFields(str, enum.Enum): EMPLOYMENT_TYPE = "employment_type" EMPLOYMENT_TYPE_FLSA_STATUS = "employment_type,flsa_status" EMPLOYMENT_TYPE_FLSA_STATUS_PAY_FREQUENCY = "employment_type,flsa_status,pay_frequency" diff --git a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_show_enum_origins.py b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_show_enum_origins.py index 84b46557..60ec6042 100644 --- a/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/employments/types/employments_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class EmploymentsRetrieveRequestShowEnumOrigins(str, enum.Enum): EMPLOYMENT_TYPE = "employment_type" EMPLOYMENT_TYPE_FLSA_STATUS = "employment_type,flsa_status" EMPLOYMENT_TYPE_FLSA_STATUS_PAY_FREQUENCY = "employment_type,flsa_status,pay_frequency" diff --git a/src/merge/resources/hris/resources/field_mapping/client.py b/src/merge/resources/hris/resources/field_mapping/client.py index bac8d581..146d18df 100644 --- a/src/merge/resources/hris/resources/field_mapping/client.py +++ b/src/merge/resources/hris/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -92,7 +92,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -187,7 +187,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -203,7 +203,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -388,7 +388,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -407,7 +407,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -518,7 +518,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -534,7 +534,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/hris/resources/field_mapping/raw_client.py b/src/merge/resources/hris/resources/field_mapping/raw_client.py index 08078a00..829892b3 100644 --- a/src/merge/resources/hris/resources/field_mapping/raw_client.py +++ b/src/merge/resources/hris/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -97,7 +91,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -157,10 +151,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -199,10 +189,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -210,7 +196,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -226,7 +212,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -277,10 +263,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -331,10 +313,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -371,10 +349,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -425,10 +399,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -436,7 +406,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -455,7 +425,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -515,10 +485,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -557,10 +523,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -568,7 +530,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -584,7 +546,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -635,10 +597,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -689,10 +647,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -729,8 +683,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/force_resync/raw_client.py b/src/merge/resources/hris/resources/force_resync/raw_client.py index 9eb6e636..53b5a1bd 100644 --- a/src/merge/resources/hris/resources/force_resync/raw_client.py +++ b/src/merge/resources/hris/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/generate_key/raw_client.py b/src/merge/resources/hris/resources/generate_key/raw_client.py index 4a066fdc..2e28e450 100644 --- a/src/merge/resources/hris/resources/generate_key/raw_client.py +++ b/src/merge/resources/hris/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/groups/__init__.py b/src/merge/resources/hris/resources/groups/__init__.py index 0886a391..56aafbd7 100644 --- a/src/merge/resources/hris/resources/groups/__init__.py +++ b/src/merge/resources/hris/resources/groups/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/groups/raw_client.py b/src/merge/resources/hris/resources/groups/raw_client.py index 22150cbc..2bb5c82a 100644 --- a/src/merge/resources/hris/resources/groups/raw_client.py +++ b/src/merge/resources/hris/resources/groups/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList from .types.groups_types_list_response import GroupsTypesListResponse -from pydantic import ValidationError class RawGroupsClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -202,10 +196,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def types_list( @@ -256,10 +246,6 @@ def types_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -380,10 +366,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -447,10 +429,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def types_list( @@ -501,8 +479,4 @@ async def types_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/groups/types/__init__.py b/src/merge/resources/hris/resources/groups/types/__init__.py index e8e8c32a..458d6e0c 100644 --- a/src/merge/resources/hris/resources/groups/types/__init__.py +++ b/src/merge/resources/hris/resources/groups/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/issues/__init__.py b/src/merge/resources/hris/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/hris/resources/issues/__init__.py +++ b/src/merge/resources/hris/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/issues/raw_client.py b/src/merge/resources/hris/resources/issues/raw_client.py index 028435f0..bd80ca52 100644 --- a/src/merge/resources/hris/resources/issues/raw_client.py +++ b/src/merge/resources/hris/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/issues/types/__init__.py b/src/merge/resources/hris/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/hris/resources/issues/types/__init__.py +++ b/src/merge/resources/hris/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/issues/types/issues_list_request_status.py b/src/merge/resources/hris/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/hris/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/hris/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/hris/resources/link_token/__init__.py b/src/merge/resources/hris/resources/link_token/__init__.py index 15700960..3bad6adf 100644 --- a/src/merge/resources/hris/resources/link_token/__init__.py +++ b/src/merge/resources/hris/resources/link_token/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/link_token/client.py b/src/merge/resources/hris/resources/link_token/client.py index 7f66e0bc..ff209de8 100644 --- a/src/merge/resources/hris/resources/link_token/client.py +++ b/src/merge/resources/hris/resources/link_token/client.py @@ -47,7 +47,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: @@ -95,7 +95,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. linked_destination_id : typing.Optional[str] @@ -177,7 +177,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: @@ -225,7 +225,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. linked_destination_id : typing.Optional[str] diff --git a/src/merge/resources/hris/resources/link_token/raw_client.py b/src/merge/resources/hris/resources/link_token/raw_client.py index 97c3ee03..68dcefa8 100644 --- a/src/merge/resources/hris/resources/link_token/raw_client.py +++ b/src/merge/resources/hris/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -14,7 +13,6 @@ from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest from ...types.link_token import LinkToken from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +39,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[LinkToken]: @@ -89,7 +87,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. linked_destination_id : typing.Optional[str] @@ -141,10 +139,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -169,7 +163,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[LinkToken]: @@ -217,7 +211,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. linked_destination_id : typing.Optional[str] @@ -269,8 +263,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/link_token/types/__init__.py b/src/merge/resources/hris/resources/link_token/types/__init__.py index dad2a14a..e9a7d3b9 100644 --- a/src/merge/resources/hris/resources/link_token/types/__init__.py +++ b/src/merge/resources/hris/resources/link_token/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/linked_accounts/__init__.py b/src/merge/resources/hris/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/hris/resources/linked_accounts/__init__.py +++ b/src/merge/resources/hris/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/linked_accounts/raw_client.py b/src/merge/resources/hris/resources/linked_accounts/raw_client.py index 5bf3e735..cd2639e5 100644 --- a/src/merge/resources/hris/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/hris/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -249,8 +243,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/linked_accounts/types/__init__.py b/src/merge/resources/hris/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/hris/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/hris/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/hris/resources/linked_accounts/types/linked_accounts_list_request_category.py index ce04d1de..bd873ea8 100644 --- a/src/merge/resources/hris/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/hris/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CRM = "crm" diff --git a/src/merge/resources/hris/resources/locations/__init__.py b/src/merge/resources/hris/resources/locations/__init__.py index d803cdae..173f8bf1 100644 --- a/src/merge/resources/hris/resources/locations/__init__.py +++ b/src/merge/resources/hris/resources/locations/__init__.py @@ -28,10 +28,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/locations/raw_client.py b/src/merge/resources/hris/resources/locations/raw_client.py index 3a8ecf5f..cdf539bd 100644 --- a/src/merge/resources/hris/resources/locations/raw_client.py +++ b/src/merge/resources/hris/resources/locations/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.location import Location @@ -19,7 +18,6 @@ from .types.locations_list_request_show_enum_origins import LocationsListRequestShowEnumOrigins from .types.locations_retrieve_request_remote_fields import LocationsRetrieveRequestRemoteFields from .types.locations_retrieve_request_show_enum_origins import LocationsRetrieveRequestShowEnumOrigins -from pydantic import ValidationError class RawLocationsClient: @@ -132,10 +130,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -199,10 +193,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -316,10 +306,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -383,8 +369,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/locations/types/__init__.py b/src/merge/resources/hris/resources/locations/types/__init__.py index 9c0c9351..ef281848 100644 --- a/src/merge/resources/hris/resources/locations/types/__init__.py +++ b/src/merge/resources/hris/resources/locations/types/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/locations/types/locations_list_request_location_type.py b/src/merge/resources/hris/resources/locations/types/locations_list_request_location_type.py index dec42cdf..b24d33e7 100644 --- a/src/merge/resources/hris/resources/locations/types/locations_list_request_location_type.py +++ b/src/merge/resources/hris/resources/locations/types/locations_list_request_location_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LocationsListRequestLocationType(enum.StrEnum): +class LocationsListRequestLocationType(str, enum.Enum): HOME = "HOME" WORK = "WORK" diff --git a/src/merge/resources/hris/resources/locations/types/locations_list_request_remote_fields.py b/src/merge/resources/hris/resources/locations/types/locations_list_request_remote_fields.py index 447c6f23..bf820b9f 100644 --- a/src/merge/resources/hris/resources/locations/types/locations_list_request_remote_fields.py +++ b/src/merge/resources/hris/resources/locations/types/locations_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LocationsListRequestRemoteFields(enum.StrEnum): +class LocationsListRequestRemoteFields(str, enum.Enum): COUNTRY = "country" COUNTRY_LOCATION_TYPE = "country,location_type" LOCATION_TYPE = "location_type" diff --git a/src/merge/resources/hris/resources/locations/types/locations_list_request_show_enum_origins.py b/src/merge/resources/hris/resources/locations/types/locations_list_request_show_enum_origins.py index a3d2f7c8..6d2c01ef 100644 --- a/src/merge/resources/hris/resources/locations/types/locations_list_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/locations/types/locations_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LocationsListRequestShowEnumOrigins(enum.StrEnum): +class LocationsListRequestShowEnumOrigins(str, enum.Enum): COUNTRY = "country" COUNTRY_LOCATION_TYPE = "country,location_type" LOCATION_TYPE = "location_type" diff --git a/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_remote_fields.py b/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_remote_fields.py index df7d813a..a1fb54ae 100644 --- a/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_remote_fields.py +++ b/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LocationsRetrieveRequestRemoteFields(enum.StrEnum): +class LocationsRetrieveRequestRemoteFields(str, enum.Enum): COUNTRY = "country" COUNTRY_LOCATION_TYPE = "country,location_type" LOCATION_TYPE = "location_type" diff --git a/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_show_enum_origins.py b/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_show_enum_origins.py index b71408e7..5fabdd8e 100644 --- a/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/locations/types/locations_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LocationsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class LocationsRetrieveRequestShowEnumOrigins(str, enum.Enum): COUNTRY = "country" COUNTRY_LOCATION_TYPE = "country,location_type" LOCATION_TYPE = "location_type" diff --git a/src/merge/resources/hris/resources/passthrough/raw_client.py b/src/merge/resources/hris/resources/passthrough/raw_client.py index d7ec70bc..72abab9a 100644 --- a/src/merge/resources/hris/resources/passthrough/raw_client.py +++ b/src/merge/resources/hris/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/pay_groups/raw_client.py b/src/merge/resources/hris/resources/pay_groups/raw_client.py index ab9b3b70..8a3fdb7d 100644 --- a/src/merge/resources/hris/resources/pay_groups/raw_client.py +++ b/src/merge/resources/hris/resources/pay_groups/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_pay_group_list import PaginatedPayGroupList from ...types.pay_group import PayGroup -from pydantic import ValidationError class RawPayGroupsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/payroll_runs/__init__.py b/src/merge/resources/hris/resources/payroll_runs/__init__.py index 7a6e55d5..9d371263 100644 --- a/src/merge/resources/hris/resources/payroll_runs/__init__.py +++ b/src/merge/resources/hris/resources/payroll_runs/__init__.py @@ -28,10 +28,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/payroll_runs/raw_client.py b/src/merge/resources/hris/resources/payroll_runs/raw_client.py index dda03be3..ae455ae9 100644 --- a/src/merge/resources/hris/resources/payroll_runs/raw_client.py +++ b/src/merge/resources/hris/resources/payroll_runs/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_payroll_run_list import PaginatedPayrollRunList @@ -19,7 +18,6 @@ from .types.payroll_runs_list_request_show_enum_origins import PayrollRunsListRequestShowEnumOrigins from .types.payroll_runs_retrieve_request_remote_fields import PayrollRunsRetrieveRequestRemoteFields from .types.payroll_runs_retrieve_request_show_enum_origins import PayrollRunsRetrieveRequestShowEnumOrigins -from pydantic import ValidationError class RawPayrollRunsClient: @@ -155,10 +153,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -222,10 +216,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -362,10 +352,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -429,8 +415,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/payroll_runs/types/__init__.py b/src/merge/resources/hris/resources/payroll_runs/types/__init__.py index 054632af..36fb2bb1 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/__init__.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_remote_fields.py b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_remote_fields.py index c69e4905..7ab87d64 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_remote_fields.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PayrollRunsListRequestRemoteFields(enum.StrEnum): +class PayrollRunsListRequestRemoteFields(str, enum.Enum): RUN_STATE = "run_state" RUN_STATE_RUN_TYPE = "run_state,run_type" RUN_TYPE = "run_type" diff --git a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_run_type.py b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_run_type.py index 9b039cfd..0a8acc2a 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_run_type.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_run_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PayrollRunsListRequestRunType(enum.StrEnum): +class PayrollRunsListRequestRunType(str, enum.Enum): CORRECTION = "CORRECTION" OFF_CYCLE = "OFF_CYCLE" REGULAR = "REGULAR" diff --git a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_show_enum_origins.py b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_show_enum_origins.py index ce790522..d4d03e13 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PayrollRunsListRequestShowEnumOrigins(enum.StrEnum): +class PayrollRunsListRequestShowEnumOrigins(str, enum.Enum): RUN_STATE = "run_state" RUN_STATE_RUN_TYPE = "run_state,run_type" RUN_TYPE = "run_type" diff --git a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_remote_fields.py b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_remote_fields.py index bce3debf..3a3b0653 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_remote_fields.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PayrollRunsRetrieveRequestRemoteFields(enum.StrEnum): +class PayrollRunsRetrieveRequestRemoteFields(str, enum.Enum): RUN_STATE = "run_state" RUN_STATE_RUN_TYPE = "run_state,run_type" RUN_TYPE = "run_type" diff --git a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_show_enum_origins.py b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_show_enum_origins.py index 72e2f28a..ecc6fe99 100644 --- a/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/payroll_runs/types/payroll_runs_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class PayrollRunsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class PayrollRunsRetrieveRequestShowEnumOrigins(str, enum.Enum): RUN_STATE = "run_state" RUN_STATE_RUN_TYPE = "run_state,run_type" RUN_TYPE = "run_type" diff --git a/src/merge/resources/hris/resources/regenerate_key/raw_client.py b/src/merge/resources/hris/resources/regenerate_key/raw_client.py index 20d2c535..4808ec48 100644 --- a/src/merge/resources/hris/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/hris/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/scopes/raw_client.py b/src/merge/resources/hris/resources/scopes/raw_client.py index 5a50e6cb..51db897d 100644 --- a/src/merge/resources/hris/resources/scopes/raw_client.py +++ b/src/merge/resources/hris/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/sync_status/raw_client.py b/src/merge/resources/hris/resources/sync_status/raw_client.py index c86191fb..5f49dd4b 100644 --- a/src/merge/resources/hris/resources/sync_status/raw_client.py +++ b/src/merge/resources/hris/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/teams/raw_client.py b/src/merge/resources/hris/resources/teams/raw_client.py index aedaef04..259503ae 100644 --- a/src/merge/resources/hris/resources/teams/raw_client.py +++ b/src/merge/resources/hris/resources/teams/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_team_list import PaginatedTeamList from ...types.team import Team -from pydantic import ValidationError class RawTeamsClient: @@ -121,10 +119,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -185,10 +179,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -296,10 +286,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -360,8 +346,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/time_off/__init__.py b/src/merge/resources/hris/resources/time_off/__init__.py index 8effa630..d9068e39 100644 --- a/src/merge/resources/hris/resources/time_off/__init__.py +++ b/src/merge/resources/hris/resources/time_off/__init__.py @@ -34,10 +34,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/time_off/raw_client.py b/src/merge/resources/hris/resources/time_off/raw_client.py index 4697e78c..d203ebf2 100644 --- a/src/merge/resources/hris/resources/time_off/raw_client.py +++ b/src/merge/resources/hris/resources/time_off/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -25,7 +24,6 @@ from .types.time_off_retrieve_request_expand_item import TimeOffRetrieveRequestExpandItem from .types.time_off_retrieve_request_remote_fields import TimeOffRetrieveRequestRemoteFields from .types.time_off_retrieve_request_show_enum_origins import TimeOffRetrieveRequestShowEnumOrigins -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -193,10 +191,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -257,10 +251,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -331,10 +321,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -371,10 +357,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -540,10 +522,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -604,10 +582,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -678,10 +652,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -718,8 +688,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/time_off/types/__init__.py b/src/merge/resources/hris/resources/time_off/types/__init__.py index a9e69149..f912c82c 100644 --- a/src/merge/resources/hris/resources/time_off/types/__init__.py +++ b/src/merge/resources/hris/resources/time_off/types/__init__.py @@ -32,10 +32,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_expand_item.py b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_expand_item.py index f881b857..d15bb0b9 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_expand_item.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffListRequestExpandItem(enum.StrEnum): +class TimeOffListRequestExpandItem(str, enum.Enum): APPROVER = "approver" EMPLOYEE = "employee" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_remote_fields.py b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_remote_fields.py index 19657eb9..4f22e08e 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_remote_fields.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffListRequestRemoteFields(enum.StrEnum): +class TimeOffListRequestRemoteFields(str, enum.Enum): REQUEST_TYPE = "request_type" REQUEST_TYPE_STATUS = "request_type,status" REQUEST_TYPE_STATUS_UNITS = "request_type,status,units" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_request_type.py b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_request_type.py index 16251d35..bacc5d5c 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_request_type.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_request_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffListRequestRequestType(enum.StrEnum): +class TimeOffListRequestRequestType(str, enum.Enum): BEREAVEMENT = "BEREAVEMENT" JURY_DUTY = "JURY_DUTY" PERSONAL = "PERSONAL" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_show_enum_origins.py b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_show_enum_origins.py index fb06b963..15187c89 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffListRequestShowEnumOrigins(enum.StrEnum): +class TimeOffListRequestShowEnumOrigins(str, enum.Enum): REQUEST_TYPE = "request_type" REQUEST_TYPE_STATUS = "request_type,status" REQUEST_TYPE_STATUS_UNITS = "request_type,status,units" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_status.py b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_status.py index d096e1df..40bdbd45 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_list_request_status.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffListRequestStatus(enum.StrEnum): +class TimeOffListRequestStatus(str, enum.Enum): APPROVED = "APPROVED" CANCELLED = "CANCELLED" DECLINED = "DECLINED" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_expand_item.py b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_expand_item.py index 79c5d9cc..fd546818 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_expand_item.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffRetrieveRequestExpandItem(enum.StrEnum): +class TimeOffRetrieveRequestExpandItem(str, enum.Enum): APPROVER = "approver" EMPLOYEE = "employee" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_remote_fields.py b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_remote_fields.py index cbcd1789..e76db22a 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_remote_fields.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffRetrieveRequestRemoteFields(enum.StrEnum): +class TimeOffRetrieveRequestRemoteFields(str, enum.Enum): REQUEST_TYPE = "request_type" REQUEST_TYPE_STATUS = "request_type,status" REQUEST_TYPE_STATUS_UNITS = "request_type,status,units" diff --git a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_show_enum_origins.py b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_show_enum_origins.py index 67d296ec..079a76e8 100644 --- a/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/hris/resources/time_off/types/time_off_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffRetrieveRequestShowEnumOrigins(enum.StrEnum): +class TimeOffRetrieveRequestShowEnumOrigins(str, enum.Enum): REQUEST_TYPE = "request_type" REQUEST_TYPE_STATUS = "request_type,status" REQUEST_TYPE_STATUS_UNITS = "request_type,status,units" diff --git a/src/merge/resources/hris/resources/time_off_balances/__init__.py b/src/merge/resources/hris/resources/time_off_balances/__init__.py index c978f7c6..570dc594 100644 --- a/src/merge/resources/hris/resources/time_off_balances/__init__.py +++ b/src/merge/resources/hris/resources/time_off_balances/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/time_off_balances/raw_client.py b/src/merge/resources/hris/resources/time_off_balances/raw_client.py index 440da53e..9cd67f03 100644 --- a/src/merge/resources/hris/resources/time_off_balances/raw_client.py +++ b/src/merge/resources/hris/resources/time_off_balances/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_time_off_balance_list import PaginatedTimeOffBalanceList from ...types.time_off_balance import TimeOffBalance from .types.time_off_balances_list_request_policy_type import TimeOffBalancesListRequestPolicyType -from pydantic import ValidationError class RawTimeOffBalancesClient: @@ -144,10 +142,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -218,10 +212,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -351,10 +341,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -425,8 +411,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/time_off_balances/types/__init__.py b/src/merge/resources/hris/resources/time_off_balances/types/__init__.py index 6011d7a2..a517cd9a 100644 --- a/src/merge/resources/hris/resources/time_off_balances/types/__init__.py +++ b/src/merge/resources/hris/resources/time_off_balances/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/time_off_balances/types/time_off_balances_list_request_policy_type.py b/src/merge/resources/hris/resources/time_off_balances/types/time_off_balances_list_request_policy_type.py index 1b8a9d29..e2f96117 100644 --- a/src/merge/resources/hris/resources/time_off_balances/types/time_off_balances_list_request_policy_type.py +++ b/src/merge/resources/hris/resources/time_off_balances/types/time_off_balances_list_request_policy_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffBalancesListRequestPolicyType(enum.StrEnum): +class TimeOffBalancesListRequestPolicyType(str, enum.Enum): BEREAVEMENT = "BEREAVEMENT" JURY_DUTY = "JURY_DUTY" PERSONAL = "PERSONAL" diff --git a/src/merge/resources/hris/resources/timesheet_entries/__init__.py b/src/merge/resources/hris/resources/timesheet_entries/__init__.py index 5525e060..edf3ff9c 100644 --- a/src/merge/resources/hris/resources/timesheet_entries/__init__.py +++ b/src/merge/resources/hris/resources/timesheet_entries/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/timesheet_entries/raw_client.py b/src/merge/resources/hris/resources/timesheet_entries/raw_client.py index 71e55068..32019fb2 100644 --- a/src/merge/resources/hris/resources/timesheet_entries/raw_client.py +++ b/src/merge/resources/hris/resources/timesheet_entries/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -18,7 +17,6 @@ from ...types.timesheet_entry_request import TimesheetEntryRequest from ...types.timesheet_entry_response import TimesheetEntryResponse from .types.timesheet_entries_list_request_order_by import TimesheetEntriesListRequestOrderBy -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -153,10 +151,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -217,10 +211,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -281,10 +271,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -321,10 +307,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -457,10 +439,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -521,10 +499,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -585,10 +559,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -625,8 +595,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/resources/timesheet_entries/types/__init__.py b/src/merge/resources/hris/resources/timesheet_entries/types/__init__.py index 62b33037..af47f1f5 100644 --- a/src/merge/resources/hris/resources/timesheet_entries/types/__init__.py +++ b/src/merge/resources/hris/resources/timesheet_entries/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/hris/resources/timesheet_entries/types/timesheet_entries_list_request_order_by.py b/src/merge/resources/hris/resources/timesheet_entries/types/timesheet_entries_list_request_order_by.py index caaddd7a..bd5713ff 100644 --- a/src/merge/resources/hris/resources/timesheet_entries/types/timesheet_entries_list_request_order_by.py +++ b/src/merge/resources/hris/resources/timesheet_entries/types/timesheet_entries_list_request_order_by.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TimesheetEntriesListRequestOrderBy(enum.StrEnum): +class TimesheetEntriesListRequestOrderBy(str, enum.Enum): START_TIME_DESCENDING = "-start_time" START_TIME_ASCENDING = "start_time" diff --git a/src/merge/resources/hris/resources/webhook_receivers/raw_client.py b/src/merge/resources/hris/resources/webhook_receivers/raw_client.py index 4ce065e2..436fce7b 100644 --- a/src/merge/resources/hris/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/hris/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/hris/types/__init__.py b/src/merge/resources/hris/types/__init__.py index a29c5710..20550318 100644 --- a/src/merge/resources/hris/types/__init__.py +++ b/src/merge/resources/hris/types/__init__.py @@ -180,7 +180,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .tax import Tax from .team import Team from .team_parent_team import TeamParentTeam @@ -383,7 +385,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "Tax": ".tax", "Team": ".team", "TeamParentTeam": ".team_parent_team", @@ -422,10 +426,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -610,7 +612,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "Tax", "Team", "TeamParentTeam", diff --git a/src/merge/resources/hris/types/account_details_and_actions.py b/src/merge/resources/hris/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/hris/types/account_details_and_actions.py +++ b/src/merge/resources/hris/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/account_details_and_actions_status_enum.py b/src/merge/resources/hris/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/hris/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/hris/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/hris/types/account_integration.py b/src/merge/resources/hris/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/hris/types/account_integration.py +++ b/src/merge/resources/hris/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/hris/types/account_type_enum.py b/src/merge/resources/hris/types/account_type_enum.py index 28b99ac3..2ec129e6 100644 --- a/src/merge/resources/hris/types/account_type_enum.py +++ b/src/merge/resources/hris/types/account_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountTypeEnum(enum.StrEnum): +class AccountTypeEnum(str, enum.Enum): """ * `SAVINGS` - SAVINGS * `CHECKING` - CHECKING diff --git a/src/merge/resources/hris/types/advanced_metadata.py b/src/merge/resources/hris/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/hris/types/advanced_metadata.py +++ b/src/merge/resources/hris/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/bank_info.py b/src/merge/resources/hris/types/bank_info.py index 04b19c13..5cf08ec9 100644 --- a/src/merge/resources/hris/types/bank_info.py +++ b/src/merge/resources/hris/types/bank_info.py @@ -77,7 +77,7 @@ class BankInfo(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -90,4 +90,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(BankInfo) diff --git a/src/merge/resources/hris/types/benefit.py b/src/merge/resources/hris/types/benefit.py index 8201e9e9..3ceeb1bc 100644 --- a/src/merge/resources/hris/types/benefit.py +++ b/src/merge/resources/hris/types/benefit.py @@ -83,7 +83,7 @@ class Benefit(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -96,4 +96,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(Benefit) diff --git a/src/merge/resources/hris/types/benefit_plan_type_enum.py b/src/merge/resources/hris/types/benefit_plan_type_enum.py index 9576c6f5..40b5fee1 100644 --- a/src/merge/resources/hris/types/benefit_plan_type_enum.py +++ b/src/merge/resources/hris/types/benefit_plan_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class BenefitPlanTypeEnum(enum.StrEnum): +class BenefitPlanTypeEnum(str, enum.Enum): """ * `MEDICAL` - MEDICAL * `HEALTH_SAVINGS` - HEALTH_SAVINGS diff --git a/src/merge/resources/hris/types/categories_enum.py b/src/merge/resources/hris/types/categories_enum.py index 82308151..3f2dc5a9 100644 --- a/src/merge/resources/hris/types/categories_enum.py +++ b/src/merge/resources/hris/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/hris/types/category_enum.py b/src/merge/resources/hris/types/category_enum.py index 9a2fa8c7..d37e48f5 100644 --- a/src/merge/resources/hris/types/category_enum.py +++ b/src/merge/resources/hris/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/hris/types/company.py b/src/merge/resources/hris/types/company.py index f0453c74..226660f0 100644 --- a/src/merge/resources/hris/types/company.py +++ b/src/merge/resources/hris/types/company.py @@ -55,7 +55,7 @@ class Company(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/country_enum.py b/src/merge/resources/hris/types/country_enum.py index f2dd1f87..a631e320 100644 --- a/src/merge/resources/hris/types/country_enum.py +++ b/src/merge/resources/hris/types/country_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CountryEnum(enum.StrEnum): +class CountryEnum(str, enum.Enum): """ * `AF` - Afghanistan * `AX` - Åland Islands diff --git a/src/merge/resources/hris/types/data_passthrough_request.py b/src/merge/resources/hris/types/data_passthrough_request.py index df3af029..c9f0a799 100644 --- a/src/merge/resources/hris/types/data_passthrough_request.py +++ b/src/merge/resources/hris/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/hris/types/deduction.py b/src/merge/resources/hris/types/deduction.py index dbdda789..22130e29 100644 --- a/src/merge/resources/hris/types/deduction.py +++ b/src/merge/resources/hris/types/deduction.py @@ -56,7 +56,7 @@ class Deduction(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/dependent.py b/src/merge/resources/hris/types/dependent.py index 761c5f09..63957fcb 100644 --- a/src/merge/resources/hris/types/dependent.py +++ b/src/merge/resources/hris/types/dependent.py @@ -107,7 +107,7 @@ class Dependent(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/earning.py b/src/merge/resources/hris/types/earning.py index dcd7a778..6868fd57 100644 --- a/src/merge/resources/hris/types/earning.py +++ b/src/merge/resources/hris/types/earning.py @@ -57,7 +57,7 @@ class Earning(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/earning_type_enum.py b/src/merge/resources/hris/types/earning_type_enum.py index e6e78b42..2d5b6c10 100644 --- a/src/merge/resources/hris/types/earning_type_enum.py +++ b/src/merge/resources/hris/types/earning_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EarningTypeEnum(enum.StrEnum): +class EarningTypeEnum(str, enum.Enum): """ * `SALARY` - SALARY * `REIMBURSEMENT` - REIMBURSEMENT diff --git a/src/merge/resources/hris/types/employee.py b/src/merge/resources/hris/types/employee.py index 54953198..8de1927d 100644 --- a/src/merge/resources/hris/types/employee.py +++ b/src/merge/resources/hris/types/employee.py @@ -213,7 +213,7 @@ class Employee(UncheckedBaseModel): The URL of the employee's avatar image. """ - custom_fields: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + custom_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Custom fields configured for a given model. """ @@ -223,7 +223,7 @@ class Employee(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -236,15 +236,9 @@ class Config: extra = pydantic.Extra.allow -from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, I001 -from .employee_manager import EmployeeManager # noqa: E402, I001 -from .employment import Employment # noqa: E402, I001 -from .employment_employee import EmploymentEmployee # noqa: E402, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 +from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, F401, I001 +from .employee_manager import EmployeeManager # noqa: E402, F401, I001 -update_forward_refs( - Employee, - EmployeeEmploymentsItem=EmployeeEmploymentsItem, - EmployeeManager=EmployeeManager, - Employment=Employment, - EmploymentEmployee=EmploymentEmployee, -) +update_forward_refs(Employee) diff --git a/src/merge/resources/hris/types/employee_payroll_run.py b/src/merge/resources/hris/types/employee_payroll_run.py index dbc9d39c..b93496a5 100644 --- a/src/merge/resources/hris/types/employee_payroll_run.py +++ b/src/merge/resources/hris/types/employee_payroll_run.py @@ -85,7 +85,7 @@ class EmployeePayrollRun(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -98,4 +98,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(EmployeePayrollRun) diff --git a/src/merge/resources/hris/types/employee_request.py b/src/merge/resources/hris/types/employee_request.py index 825be59d..0476ab6b 100644 --- a/src/merge/resources/hris/types/employee_request.py +++ b/src/merge/resources/hris/types/employee_request.py @@ -195,8 +195,8 @@ class EmployeeRequest(UncheckedBaseModel): The URL of the employee's avatar image. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -208,4 +208,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(EmployeeRequest) diff --git a/src/merge/resources/hris/types/employee_response.py b/src/merge/resources/hris/types/employee_response.py index 647247e7..d703cc1c 100644 --- a/src/merge/resources/hris/types/employee_response.py +++ b/src/merge/resources/hris/types/employee_response.py @@ -28,17 +28,8 @@ class Config: extra = pydantic.Extra.allow -from .employee import Employee # noqa: E402, I001 -from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, I001 -from .employee_manager import EmployeeManager # noqa: E402, I001 -from .employment import Employment # noqa: E402, I001 -from .employment_employee import EmploymentEmployee # noqa: E402, I001 - -update_forward_refs( - EmployeeResponse, - Employee=Employee, - EmployeeEmploymentsItem=EmployeeEmploymentsItem, - EmployeeManager=EmployeeManager, - Employment=Employment, - EmploymentEmployee=EmploymentEmployee, -) +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + +update_forward_refs(EmployeeResponse) diff --git a/src/merge/resources/hris/types/employer_benefit.py b/src/merge/resources/hris/types/employer_benefit.py index 836ec14c..f0a56f45 100644 --- a/src/merge/resources/hris/types/employer_benefit.py +++ b/src/merge/resources/hris/types/employer_benefit.py @@ -67,7 +67,7 @@ class EmployerBenefit(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/employment.py b/src/merge/resources/hris/types/employment.py index a0271a86..cb2158ff 100644 --- a/src/merge/resources/hris/types/employment.py +++ b/src/merge/resources/hris/types/employment.py @@ -438,7 +438,7 @@ class Employment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -451,15 +451,8 @@ class Config: extra = pydantic.Extra.allow -from .employee import Employee # noqa: E402, I001 -from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, I001 -from .employee_manager import EmployeeManager # noqa: E402, I001 -from .employment_employee import EmploymentEmployee # noqa: E402, I001 +from .employee import Employee # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 +from .employment_employee import EmploymentEmployee # noqa: E402, F401, I001 -update_forward_refs( - Employment, - Employee=Employee, - EmployeeEmploymentsItem=EmployeeEmploymentsItem, - EmployeeManager=EmployeeManager, - EmploymentEmployee=EmploymentEmployee, -) +update_forward_refs(Employment) diff --git a/src/merge/resources/hris/types/employment_status_enum.py b/src/merge/resources/hris/types/employment_status_enum.py index b5f0e036..6708c445 100644 --- a/src/merge/resources/hris/types/employment_status_enum.py +++ b/src/merge/resources/hris/types/employment_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentStatusEnum(enum.StrEnum): +class EmploymentStatusEnum(str, enum.Enum): """ * `ACTIVE` - ACTIVE * `PENDING` - PENDING diff --git a/src/merge/resources/hris/types/employment_type_enum.py b/src/merge/resources/hris/types/employment_type_enum.py index 2588b277..06a3cb12 100644 --- a/src/merge/resources/hris/types/employment_type_enum.py +++ b/src/merge/resources/hris/types/employment_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EmploymentTypeEnum(enum.StrEnum): +class EmploymentTypeEnum(str, enum.Enum): """ * `FULL_TIME` - FULL_TIME * `PART_TIME` - PART_TIME diff --git a/src/merge/resources/hris/types/enabled_actions_enum.py b/src/merge/resources/hris/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/hris/types/enabled_actions_enum.py +++ b/src/merge/resources/hris/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/hris/types/encoding_enum.py b/src/merge/resources/hris/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/hris/types/encoding_enum.py +++ b/src/merge/resources/hris/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/hris/types/ethnicity_enum.py b/src/merge/resources/hris/types/ethnicity_enum.py index 7a57aba0..243861ce 100644 --- a/src/merge/resources/hris/types/ethnicity_enum.py +++ b/src/merge/resources/hris/types/ethnicity_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EthnicityEnum(enum.StrEnum): +class EthnicityEnum(str, enum.Enum): """ * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT diff --git a/src/merge/resources/hris/types/event_type_enum.py b/src/merge/resources/hris/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/hris/types/event_type_enum.py +++ b/src/merge/resources/hris/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/hris/types/external_target_field_api_response.py b/src/merge/resources/hris/types/external_target_field_api_response.py index 2ecf3c31..33c62878 100644 --- a/src/merge/resources/hris/types/external_target_field_api_response.py +++ b/src/merge/resources/hris/types/external_target_field_api_response.py @@ -3,92 +3,36 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Benefit"), - pydantic.Field(alias="Benefit"), - ] = None - employer_benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="EmployerBenefit"), - pydantic.Field(alias="EmployerBenefit"), - ] = None - company: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Company"), - pydantic.Field(alias="Company"), - ] = None - employee_payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="EmployeePayrollRun"), - pydantic.Field(alias="EmployeePayrollRun"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Employee"), - pydantic.Field(alias="Employee"), - ] = None - employment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Employment"), - pydantic.Field(alias="Employment"), - ] = None - location: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Location"), - pydantic.Field(alias="Location"), - ] = None - payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="PayrollRun"), - pydantic.Field(alias="PayrollRun"), - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - time_off: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="TimeOff"), - pydantic.Field(alias="TimeOff"), - ] = None - time_off_balance: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="TimeOffBalance"), - pydantic.Field(alias="TimeOffBalance"), - ] = None - bank_info: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="BankInfo"), - pydantic.Field(alias="BankInfo"), - ] = None - pay_group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="PayGroup"), - pydantic.Field(alias="PayGroup"), - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - dependent: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Dependent"), - pydantic.Field(alias="Dependent"), - ] = None - timesheet_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="TimesheetEntry"), - pydantic.Field(alias="TimesheetEntry"), - ] = None + benefit: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Benefit", default=None) + employer_benefit: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="EmployerBenefit", default=None + ) + company: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Company", default=None) + employee_payroll_run: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="EmployeePayrollRun", default=None + ) + employee: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Employee", default=None) + employment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Employment", default=None) + location: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Location", default=None) + payroll_run: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="PayrollRun", default=None) + team: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Team", default=None) + time_off: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="TimeOff", default=None) + time_off_balance: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="TimeOffBalance", default=None + ) + bank_info: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="BankInfo", default=None) + pay_group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="PayGroup", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) + dependent: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Dependent", default=None) + timesheet_entry: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field( + alias="TimesheetEntry", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/hris/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/hris/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/hris/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/field_mapping_api_instance_response.py b/src/merge/resources/hris/types/field_mapping_api_instance_response.py index 06334985..3b6fc77f 100644 --- a/src/merge/resources/hris/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/hris/types/field_mapping_api_instance_response.py @@ -3,92 +3,38 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Benefit"), - pydantic.Field(alias="Benefit"), - ] = None - employer_benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="EmployerBenefit"), - pydantic.Field(alias="EmployerBenefit"), - ] = None - company: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Company"), - pydantic.Field(alias="Company"), - ] = None - employee_payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="EmployeePayrollRun"), - pydantic.Field(alias="EmployeePayrollRun"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Employee"), - pydantic.Field(alias="Employee"), - ] = None - employment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Employment"), - pydantic.Field(alias="Employment"), - ] = None - location: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Location"), - pydantic.Field(alias="Location"), - ] = None - payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="PayrollRun"), - pydantic.Field(alias="PayrollRun"), - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - time_off: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="TimeOff"), - pydantic.Field(alias="TimeOff"), - ] = None - time_off_balance: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="TimeOffBalance"), - pydantic.Field(alias="TimeOffBalance"), - ] = None - bank_info: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="BankInfo"), - pydantic.Field(alias="BankInfo"), - ] = None - pay_group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="PayGroup"), - pydantic.Field(alias="PayGroup"), - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None - dependent: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Dependent"), - pydantic.Field(alias="Dependent"), - ] = None - timesheet_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="TimesheetEntry"), - pydantic.Field(alias="TimesheetEntry"), - ] = None + benefit: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Benefit", default=None) + employer_benefit: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="EmployerBenefit", default=None + ) + company: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Company", default=None) + employee_payroll_run: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="EmployeePayrollRun", default=None + ) + employee: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Employee", default=None) + employment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Employment", default=None) + location: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Location", default=None) + payroll_run: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="PayrollRun", default=None + ) + team: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Team", default=None) + time_off: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="TimeOff", default=None) + time_off_balance: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="TimeOffBalance", default=None + ) + bank_info: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="BankInfo", default=None) + pay_group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="PayGroup", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) + dependent: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Dependent", default=None) + timesheet_entry: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field( + alias="TimesheetEntry", default=None + ) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/field_permission_deserializer.py b/src/merge/resources/hris/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/hris/types/field_permission_deserializer.py +++ b/src/merge/resources/hris/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/field_permission_deserializer_request.py b/src/merge/resources/hris/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/hris/types/field_permission_deserializer_request.py +++ b/src/merge/resources/hris/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/flsa_status_enum.py b/src/merge/resources/hris/types/flsa_status_enum.py index 0641ee1e..e30b494f 100644 --- a/src/merge/resources/hris/types/flsa_status_enum.py +++ b/src/merge/resources/hris/types/flsa_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FlsaStatusEnum(enum.StrEnum): +class FlsaStatusEnum(str, enum.Enum): """ * `EXEMPT` - EXEMPT * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT diff --git a/src/merge/resources/hris/types/gender_enum.py b/src/merge/resources/hris/types/gender_enum.py index d2f5e39a..541f19cf 100644 --- a/src/merge/resources/hris/types/gender_enum.py +++ b/src/merge/resources/hris/types/gender_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class GenderEnum(enum.StrEnum): +class GenderEnum(str, enum.Enum): """ * `MALE` - MALE * `FEMALE` - FEMALE diff --git a/src/merge/resources/hris/types/group.py b/src/merge/resources/hris/types/group.py index 39154561..1e694fa9 100644 --- a/src/merge/resources/hris/types/group.py +++ b/src/merge/resources/hris/types/group.py @@ -72,7 +72,7 @@ class Group(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/group_type_enum.py b/src/merge/resources/hris/types/group_type_enum.py index 7866f455..4ce603d6 100644 --- a/src/merge/resources/hris/types/group_type_enum.py +++ b/src/merge/resources/hris/types/group_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class GroupTypeEnum(enum.StrEnum): +class GroupTypeEnum(str, enum.Enum): """ * `TEAM` - TEAM * `DEPARTMENT` - DEPARTMENT diff --git a/src/merge/resources/hris/types/issue.py b/src/merge/resources/hris/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/hris/types/issue.py +++ b/src/merge/resources/hris/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/hris/types/issue_status_enum.py b/src/merge/resources/hris/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/hris/types/issue_status_enum.py +++ b/src/merge/resources/hris/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/hris/types/language_enum.py b/src/merge/resources/hris/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/hris/types/language_enum.py +++ b/src/merge/resources/hris/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/hris/types/last_sync_result_enum.py b/src/merge/resources/hris/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/hris/types/last_sync_result_enum.py +++ b/src/merge/resources/hris/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/hris/types/location.py b/src/merge/resources/hris/types/location.py index a0cfd7ba..db6d7b66 100644 --- a/src/merge/resources/hris/types/location.py +++ b/src/merge/resources/hris/types/location.py @@ -340,7 +340,7 @@ class Location(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/location_type_enum.py b/src/merge/resources/hris/types/location_type_enum.py index e7760d87..34ace087 100644 --- a/src/merge/resources/hris/types/location_type_enum.py +++ b/src/merge/resources/hris/types/location_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LocationTypeEnum(enum.StrEnum): +class LocationTypeEnum(str, enum.Enum): """ * `HOME` - HOME * `WORK` - WORK diff --git a/src/merge/resources/hris/types/marital_status_enum.py b/src/merge/resources/hris/types/marital_status_enum.py index d729574d..6902866b 100644 --- a/src/merge/resources/hris/types/marital_status_enum.py +++ b/src/merge/resources/hris/types/marital_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MaritalStatusEnum(enum.StrEnum): +class MaritalStatusEnum(str, enum.Enum): """ * `SINGLE` - SINGLE * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY diff --git a/src/merge/resources/hris/types/meta_response.py b/src/merge/resources/hris/types/meta_response.py index 5180b77e..9dcbe1f5 100644 --- a/src/merge/resources/hris/types/meta_response.py +++ b/src/merge/resources/hris/types/meta_response.py @@ -9,8 +9,8 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] - remote_field_classes: typing.Optional[typing.Dict[str, typing.Any]] = None + request_schema: typing.Dict[str, typing.Optional[typing.Any]] + remote_field_classes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/hris/types/method_enum.py b/src/merge/resources/hris/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/hris/types/method_enum.py +++ b/src/merge/resources/hris/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/hris/types/paginated_bank_info_list.py b/src/merge/resources/hris/types/paginated_bank_info_list.py index 55cdb904..688ba4f5 100644 --- a/src/merge/resources/hris/types/paginated_bank_info_list.py +++ b/src/merge/resources/hris/types/paginated_bank_info_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedBankInfoList) diff --git a/src/merge/resources/hris/types/paginated_benefit_list.py b/src/merge/resources/hris/types/paginated_benefit_list.py index ccfc56d9..d290d5fd 100644 --- a/src/merge/resources/hris/types/paginated_benefit_list.py +++ b/src/merge/resources/hris/types/paginated_benefit_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedBenefitList) diff --git a/src/merge/resources/hris/types/paginated_employee_list.py b/src/merge/resources/hris/types/paginated_employee_list.py index 9915260f..8b7b1dc8 100644 --- a/src/merge/resources/hris/types/paginated_employee_list.py +++ b/src/merge/resources/hris/types/paginated_employee_list.py @@ -24,17 +24,8 @@ class Config: extra = pydantic.Extra.allow -from .employee import Employee # noqa: E402, I001 -from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, I001 -from .employee_manager import EmployeeManager # noqa: E402, I001 -from .employment import Employment # noqa: E402, I001 -from .employment_employee import EmploymentEmployee # noqa: E402, I001 - -update_forward_refs( - PaginatedEmployeeList, - Employee=Employee, - EmployeeEmploymentsItem=EmployeeEmploymentsItem, - EmployeeManager=EmployeeManager, - Employment=Employment, - EmploymentEmployee=EmploymentEmployee, -) +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + +update_forward_refs(PaginatedEmployeeList) diff --git a/src/merge/resources/hris/types/paginated_employee_payroll_run_list.py b/src/merge/resources/hris/types/paginated_employee_payroll_run_list.py index 7ef4c312..4f66790b 100644 --- a/src/merge/resources/hris/types/paginated_employee_payroll_run_list.py +++ b/src/merge/resources/hris/types/paginated_employee_payroll_run_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedEmployeePayrollRunList) diff --git a/src/merge/resources/hris/types/paginated_employment_list.py b/src/merge/resources/hris/types/paginated_employment_list.py index 6db1d1cd..9670bf4c 100644 --- a/src/merge/resources/hris/types/paginated_employment_list.py +++ b/src/merge/resources/hris/types/paginated_employment_list.py @@ -24,17 +24,8 @@ class Config: extra = pydantic.Extra.allow -from .employee import Employee # noqa: E402, I001 -from .employee_employments_item import EmployeeEmploymentsItem # noqa: E402, I001 -from .employee_manager import EmployeeManager # noqa: E402, I001 -from .employment import Employment # noqa: E402, I001 -from .employment_employee import EmploymentEmployee # noqa: E402, I001 - -update_forward_refs( - PaginatedEmploymentList, - Employee=Employee, - EmployeeEmploymentsItem=EmployeeEmploymentsItem, - EmployeeManager=EmployeeManager, - Employment=Employment, - EmploymentEmployee=EmploymentEmployee, -) +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + +update_forward_refs(PaginatedEmploymentList) diff --git a/src/merge/resources/hris/types/paginated_team_list.py b/src/merge/resources/hris/types/paginated_team_list.py index c29b4035..29a7bdb7 100644 --- a/src/merge/resources/hris/types/paginated_team_list.py +++ b/src/merge/resources/hris/types/paginated_team_list.py @@ -24,7 +24,6 @@ class Config: extra = pydantic.Extra.allow -from .team import Team # noqa: E402, I001 -from .team_parent_team import TeamParentTeam # noqa: E402, I001 +from .team import Team # noqa: E402, F401, I001 -update_forward_refs(PaginatedTeamList, Team=Team, TeamParentTeam=TeamParentTeam) +update_forward_refs(PaginatedTeamList) diff --git a/src/merge/resources/hris/types/paginated_time_off_balance_list.py b/src/merge/resources/hris/types/paginated_time_off_balance_list.py index bbb1d3fd..3ba1324e 100644 --- a/src/merge/resources/hris/types/paginated_time_off_balance_list.py +++ b/src/merge/resources/hris/types/paginated_time_off_balance_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedTimeOffBalanceList) diff --git a/src/merge/resources/hris/types/paginated_time_off_list.py b/src/merge/resources/hris/types/paginated_time_off_list.py index d6b66c2c..f5b941b7 100644 --- a/src/merge/resources/hris/types/paginated_time_off_list.py +++ b/src/merge/resources/hris/types/paginated_time_off_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedTimeOffList) diff --git a/src/merge/resources/hris/types/paginated_timesheet_entry_list.py b/src/merge/resources/hris/types/paginated_timesheet_entry_list.py index f4a7d107..612a1b25 100644 --- a/src/merge/resources/hris/types/paginated_timesheet_entry_list.py +++ b/src/merge/resources/hris/types/paginated_timesheet_entry_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(PaginatedTimesheetEntryList) diff --git a/src/merge/resources/hris/types/pay_currency_enum.py b/src/merge/resources/hris/types/pay_currency_enum.py index c85bf0b6..f0773521 100644 --- a/src/merge/resources/hris/types/pay_currency_enum.py +++ b/src/merge/resources/hris/types/pay_currency_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PayCurrencyEnum(enum.StrEnum): +class PayCurrencyEnum(str, enum.Enum): """ * `XUA` - ADB Unit of Account * `AFN` - Afghan Afghani diff --git a/src/merge/resources/hris/types/pay_frequency_enum.py b/src/merge/resources/hris/types/pay_frequency_enum.py index 19b4d589..a9c635a9 100644 --- a/src/merge/resources/hris/types/pay_frequency_enum.py +++ b/src/merge/resources/hris/types/pay_frequency_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PayFrequencyEnum(enum.StrEnum): +class PayFrequencyEnum(str, enum.Enum): """ * `WEEKLY` - WEEKLY * `BIWEEKLY` - BIWEEKLY diff --git a/src/merge/resources/hris/types/pay_group.py b/src/merge/resources/hris/types/pay_group.py index bf6288a0..5ade80dd 100644 --- a/src/merge/resources/hris/types/pay_group.py +++ b/src/merge/resources/hris/types/pay_group.py @@ -45,7 +45,7 @@ class PayGroup(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/pay_period_enum.py b/src/merge/resources/hris/types/pay_period_enum.py index 97358d81..b3b48bda 100644 --- a/src/merge/resources/hris/types/pay_period_enum.py +++ b/src/merge/resources/hris/types/pay_period_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PayPeriodEnum(enum.StrEnum): +class PayPeriodEnum(str, enum.Enum): """ * `HOUR` - HOUR * `DAY` - DAY diff --git a/src/merge/resources/hris/types/payroll_run.py b/src/merge/resources/hris/types/payroll_run.py index 7d09e748..21f8380c 100644 --- a/src/merge/resources/hris/types/payroll_run.py +++ b/src/merge/resources/hris/types/payroll_run.py @@ -79,7 +79,7 @@ class PayrollRun(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/policy_type_enum.py b/src/merge/resources/hris/types/policy_type_enum.py index 0aae7956..2bb2834b 100644 --- a/src/merge/resources/hris/types/policy_type_enum.py +++ b/src/merge/resources/hris/types/policy_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PolicyTypeEnum(enum.StrEnum): +class PolicyTypeEnum(str, enum.Enum): """ * `VACATION` - VACATION * `SICK` - SICK diff --git a/src/merge/resources/hris/types/reason_enum.py b/src/merge/resources/hris/types/reason_enum.py index 77c6e96c..ea6ba5b6 100644 --- a/src/merge/resources/hris/types/reason_enum.py +++ b/src/merge/resources/hris/types/reason_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ReasonEnum(enum.StrEnum): +class ReasonEnum(str, enum.Enum): """ * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST * `GDPR` - GDPR diff --git a/src/merge/resources/hris/types/relationship_enum.py b/src/merge/resources/hris/types/relationship_enum.py index 2b0bdcfe..49e03d68 100644 --- a/src/merge/resources/hris/types/relationship_enum.py +++ b/src/merge/resources/hris/types/relationship_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RelationshipEnum(enum.StrEnum): +class RelationshipEnum(str, enum.Enum): """ * `CHILD` - CHILD * `SPOUSE` - SPOUSE diff --git a/src/merge/resources/hris/types/remote_data.py b/src/merge/resources/hris/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/hris/types/remote_data.py +++ b/src/merge/resources/hris/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/hris/types/remote_endpoint_info.py b/src/merge/resources/hris/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/hris/types/remote_endpoint_info.py +++ b/src/merge/resources/hris/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/remote_field_api.py b/src/merge/resources/hris/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/hris/types/remote_field_api.py +++ b/src/merge/resources/hris/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/hris/types/remote_field_api_response.py b/src/merge/resources/hris/types/remote_field_api_response.py index 43937b27..1aeaaa57 100644 --- a/src/merge/resources/hris/types/remote_field_api_response.py +++ b/src/merge/resources/hris/types/remote_field_api_response.py @@ -3,76 +3,34 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Benefit"), pydantic.Field(alias="Benefit") - ] = None - employer_benefit: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="EmployerBenefit"), - pydantic.Field(alias="EmployerBenefit"), - ] = None - company: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Company"), pydantic.Field(alias="Company") - ] = None - employee_payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="EmployeePayrollRun"), - pydantic.Field(alias="EmployeePayrollRun"), - ] = None - employee: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Employee"), pydantic.Field(alias="Employee") - ] = None - employment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Employment"), - pydantic.Field(alias="Employment"), - ] = None - location: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Location"), pydantic.Field(alias="Location") - ] = None - payroll_run: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="PayrollRun"), - pydantic.Field(alias="PayrollRun"), - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - time_off: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="TimeOff"), pydantic.Field(alias="TimeOff") - ] = None - time_off_balance: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="TimeOffBalance"), - pydantic.Field(alias="TimeOffBalance"), - ] = None - bank_info: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="BankInfo"), pydantic.Field(alias="BankInfo") - ] = None - pay_group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="PayGroup"), pydantic.Field(alias="PayGroup") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None - dependent: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Dependent"), - pydantic.Field(alias="Dependent"), - ] = None - timesheet_entry: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="TimesheetEntry"), - pydantic.Field(alias="TimesheetEntry"), - ] = None + benefit: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Benefit", default=None) + employer_benefit: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="EmployerBenefit", default=None + ) + company: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Company", default=None) + employee_payroll_run: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="EmployeePayrollRun", default=None + ) + employee: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Employee", default=None) + employment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Employment", default=None) + location: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Location", default=None) + payroll_run: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="PayrollRun", default=None) + team: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Team", default=None) + time_off: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="TimeOff", default=None) + time_off_balance: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field( + alias="TimeOffBalance", default=None + ) + bank_info: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="BankInfo", default=None) + pay_group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="PayGroup", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) + dependent: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Dependent", default=None) + timesheet_entry: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="TimesheetEntry", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/remote_response.py b/src/merge/resources/hris/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/hris/types/remote_response.py +++ b/src/merge/resources/hris/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/hris/types/request_format_enum.py b/src/merge/resources/hris/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/hris/types/request_format_enum.py +++ b/src/merge/resources/hris/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/hris/types/request_type_enum.py b/src/merge/resources/hris/types/request_type_enum.py index 025f1b38..8bdcdd08 100644 --- a/src/merge/resources/hris/types/request_type_enum.py +++ b/src/merge/resources/hris/types/request_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestTypeEnum(enum.StrEnum): +class RequestTypeEnum(str, enum.Enum): """ * `VACATION` - VACATION * `SICK` - SICK diff --git a/src/merge/resources/hris/types/response_type_enum.py b/src/merge/resources/hris/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/hris/types/response_type_enum.py +++ b/src/merge/resources/hris/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/hris/types/role_enum.py b/src/merge/resources/hris/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/hris/types/role_enum.py +++ b/src/merge/resources/hris/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/hris/types/run_state_enum.py b/src/merge/resources/hris/types/run_state_enum.py index 5ace444f..18546609 100644 --- a/src/merge/resources/hris/types/run_state_enum.py +++ b/src/merge/resources/hris/types/run_state_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RunStateEnum(enum.StrEnum): +class RunStateEnum(str, enum.Enum): """ * `PAID` - PAID * `DRAFT` - DRAFT diff --git a/src/merge/resources/hris/types/run_type_enum.py b/src/merge/resources/hris/types/run_type_enum.py index a910e6b2..6bc5beaf 100644 --- a/src/merge/resources/hris/types/run_type_enum.py +++ b/src/merge/resources/hris/types/run_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RunTypeEnum(enum.StrEnum): +class RunTypeEnum(str, enum.Enum): """ * `REGULAR` - REGULAR * `OFF_CYCLE` - OFF_CYCLE diff --git a/src/merge/resources/hris/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/hris/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/hris/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/hris/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/hris/types/status_fd_5_enum.py b/src/merge/resources/hris/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/hris/types/status_fd_5_enum.py +++ b/src/merge/resources/hris/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/hris/types/sync_status.py b/src/merge/resources/hris/types/sync_status.py index 07ab1dc2..4bb187e3 100644 --- a/src/merge/resources/hris/types/sync_status.py +++ b/src/merge/resources/hris/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/hris/types/sync_status_reason_enum.py b/src/merge/resources/hris/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/hris/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/hris/types/sync_status_sync_status_reason.py b/src/merge/resources/hris/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/hris/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/hris/types/tax.py b/src/merge/resources/hris/types/tax.py index f5bdb498..97441cbf 100644 --- a/src/merge/resources/hris/types/tax.py +++ b/src/merge/resources/hris/types/tax.py @@ -56,7 +56,7 @@ class Tax(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/hris/types/team.py b/src/merge/resources/hris/types/team.py index 924f71fc..264b75eb 100644 --- a/src/merge/resources/hris/types/team.py +++ b/src/merge/resources/hris/types/team.py @@ -52,7 +52,7 @@ class Team(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -65,6 +65,6 @@ class Config: extra = pydantic.Extra.allow -from .team_parent_team import TeamParentTeam # noqa: E402, I001 +from .team_parent_team import TeamParentTeam # noqa: E402, F401, I001 -update_forward_refs(Team, TeamParentTeam=TeamParentTeam) +update_forward_refs(Team) diff --git a/src/merge/resources/hris/types/time_off.py b/src/merge/resources/hris/types/time_off.py index d5c01a45..10860921 100644 --- a/src/merge/resources/hris/types/time_off.py +++ b/src/merge/resources/hris/types/time_off.py @@ -108,7 +108,7 @@ class TimeOff(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -121,4 +121,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimeOff) diff --git a/src/merge/resources/hris/types/time_off_balance.py b/src/merge/resources/hris/types/time_off_balance.py index 5cf96775..aacbc0bd 100644 --- a/src/merge/resources/hris/types/time_off_balance.py +++ b/src/merge/resources/hris/types/time_off_balance.py @@ -71,7 +71,7 @@ class TimeOffBalance(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -84,4 +84,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimeOffBalance) diff --git a/src/merge/resources/hris/types/time_off_request.py b/src/merge/resources/hris/types/time_off_request.py index c3401ffd..c9b49089 100644 --- a/src/merge/resources/hris/types/time_off_request.py +++ b/src/merge/resources/hris/types/time_off_request.py @@ -86,8 +86,8 @@ class TimeOffRequest(UncheckedBaseModel): The day and time of the end of the time requested off. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -99,4 +99,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimeOffRequest) diff --git a/src/merge/resources/hris/types/time_off_response.py b/src/merge/resources/hris/types/time_off_response.py index f8e7026d..416a5def 100644 --- a/src/merge/resources/hris/types/time_off_response.py +++ b/src/merge/resources/hris/types/time_off_response.py @@ -29,4 +29,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimeOffResponse) diff --git a/src/merge/resources/hris/types/time_off_status_enum.py b/src/merge/resources/hris/types/time_off_status_enum.py index 2964276c..771cf345 100644 --- a/src/merge/resources/hris/types/time_off_status_enum.py +++ b/src/merge/resources/hris/types/time_off_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TimeOffStatusEnum(enum.StrEnum): +class TimeOffStatusEnum(str, enum.Enum): """ * `REQUESTED` - REQUESTED * `APPROVED` - APPROVED diff --git a/src/merge/resources/hris/types/timesheet_entry.py b/src/merge/resources/hris/types/timesheet_entry.py index 27dc035f..a5966977 100644 --- a/src/merge/resources/hris/types/timesheet_entry.py +++ b/src/merge/resources/hris/types/timesheet_entry.py @@ -64,7 +64,7 @@ class TimesheetEntry(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -77,4 +77,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimesheetEntry) diff --git a/src/merge/resources/hris/types/timesheet_entry_request.py b/src/merge/resources/hris/types/timesheet_entry_request.py index c5482015..df004147 100644 --- a/src/merge/resources/hris/types/timesheet_entry_request.py +++ b/src/merge/resources/hris/types/timesheet_entry_request.py @@ -42,8 +42,8 @@ class TimesheetEntryRequest(UncheckedBaseModel): The time at which the employee ended work. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -55,4 +55,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimesheetEntryRequest) diff --git a/src/merge/resources/hris/types/timesheet_entry_response.py b/src/merge/resources/hris/types/timesheet_entry_response.py index 1821d263..1c6bb197 100644 --- a/src/merge/resources/hris/types/timesheet_entry_response.py +++ b/src/merge/resources/hris/types/timesheet_entry_response.py @@ -29,4 +29,8 @@ class Config: extra = pydantic.Extra.allow +from .employee import Employee # noqa: E402, F401, I001 +from .employment import Employment # noqa: E402, F401, I001 +from .team import Team # noqa: E402, F401, I001 + update_forward_refs(TimesheetEntryResponse) diff --git a/src/merge/resources/hris/types/units_enum.py b/src/merge/resources/hris/types/units_enum.py index 6f1ff142..e1d3f0d2 100644 --- a/src/merge/resources/hris/types/units_enum.py +++ b/src/merge/resources/hris/types/units_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class UnitsEnum(enum.StrEnum): +class UnitsEnum(str, enum.Enum): """ * `HOURS` - HOURS * `DAYS` - DAYS diff --git a/src/merge/resources/knowledgebase/__init__.py b/src/merge/resources/knowledgebase/__init__.py index b58d5025..80efbac1 100644 --- a/src/merge/resources/knowledgebase/__init__.py +++ b/src/merge/resources/knowledgebase/__init__.py @@ -120,7 +120,9 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, SyncStatusStatus, + SyncStatusSyncStatusReason, User, UserFieldMappings, ValidationProblemSource, @@ -292,7 +294,9 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", "SyncStatusStatus": ".types", + "SyncStatusSyncStatusReason": ".types", "User": ".types", "UserFieldMappings": ".types", "ValidationProblemSource": ".types", @@ -330,10 +334,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -472,7 +474,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "ValidationProblemSource", diff --git a/src/merge/resources/knowledgebase/resources/__init__.py b/src/merge/resources/knowledgebase/resources/__init__.py index 4c0c45c7..d6cf2527 100644 --- a/src/merge/resources/knowledgebase/resources/__init__.py +++ b/src/merge/resources/knowledgebase/resources/__init__.py @@ -55,28 +55,28 @@ "GroupsRetrieveRequestExpandItem": ".groups", "IssuesListRequestStatus": ".issues", "LinkedAccountsListRequestCategory": ".linked_accounts", - "account_details": ".account_details", - "account_token": ".account_token", - "articles": ".articles", - "async_passthrough": ".async_passthrough", - "attachments": ".attachments", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "containers": ".containers", - "delete_account": ".delete_account", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "groups": ".groups", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "passthrough": ".passthrough", - "regenerate_key": ".regenerate_key", - "scopes": ".scopes", - "sync_status": ".sync_status", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "articles": ".", + "async_passthrough": ".", + "attachments": ".", + "audit_trail": ".", + "available_actions": ".", + "containers": ".", + "delete_account": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "groups": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "passthrough": ".", + "regenerate_key": ".", + "scopes": ".", + "sync_status": ".", + "users": ".", + "webhook_receivers": ".", } @@ -86,10 +86,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/account_details/raw_client.py b/src/merge/resources/knowledgebase/resources/account_details/raw_client.py index 39d6352e..836e029d 100644 --- a/src/merge/resources/knowledgebase/resources/account_details/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/account_token/raw_client.py b/src/merge/resources/knowledgebase/resources/account_token/raw_client.py index 8f5e0735..29d81164 100644 --- a/src/merge/resources/knowledgebase/resources/account_token/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/articles/__init__.py b/src/merge/resources/knowledgebase/resources/articles/__init__.py index 9666b672..a5fd33bf 100644 --- a/src/merge/resources/knowledgebase/resources/articles/__init__.py +++ b/src/merge/resources/knowledgebase/resources/articles/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/articles/raw_client.py b/src/merge/resources/knowledgebase/resources/articles/raw_client.py index 81fe4b4a..38768405 100644 --- a/src/merge/resources/knowledgebase/resources/articles/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/articles/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.article import Article @@ -17,7 +16,6 @@ from .types.articles_list_request_expand_item import ArticlesListRequestExpandItem from .types.articles_list_request_type import ArticlesListRequestType from .types.articles_retrieve_request_expand_item import ArticlesRetrieveRequestExpandItem -from pydantic import ValidationError class RawArticlesClient: @@ -144,10 +142,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -208,10 +202,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -339,10 +329,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -403,8 +389,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/articles/types/__init__.py b/src/merge/resources/knowledgebase/resources/articles/types/__init__.py index f56a9ccd..c1e98e90 100644 --- a/src/merge/resources/knowledgebase/resources/articles/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/articles/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_expand_item.py b/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_expand_item.py index 64cf64af..b633825a 100644 --- a/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ArticlesListRequestExpandItem(enum.StrEnum): +class ArticlesListRequestExpandItem(str, enum.Enum): ATTACHMENTS = "attachments" AUTHOR = "author" LAST_EDITED_BY = "last_edited_by" diff --git a/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_type.py b/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_type.py index 64a3b9a7..c09a8782 100644 --- a/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_type.py +++ b/src/merge/resources/knowledgebase/resources/articles/types/articles_list_request_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ArticlesListRequestType(enum.StrEnum): +class ArticlesListRequestType(str, enum.Enum): EMPTY = "" BLOG_POST = "BLOG_POST" PAGE = "PAGE" diff --git a/src/merge/resources/knowledgebase/resources/articles/types/articles_retrieve_request_expand_item.py b/src/merge/resources/knowledgebase/resources/articles/types/articles_retrieve_request_expand_item.py index 55daffe0..7e865019 100644 --- a/src/merge/resources/knowledgebase/resources/articles/types/articles_retrieve_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/articles/types/articles_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ArticlesRetrieveRequestExpandItem(enum.StrEnum): +class ArticlesRetrieveRequestExpandItem(str, enum.Enum): ATTACHMENTS = "attachments" AUTHOR = "author" LAST_EDITED_BY = "last_edited_by" diff --git a/src/merge/resources/knowledgebase/resources/async_passthrough/__init__.py b/src/merge/resources/knowledgebase/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/knowledgebase/resources/async_passthrough/__init__.py +++ b/src/merge/resources/knowledgebase/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/async_passthrough/raw_client.py b/src/merge/resources/knowledgebase/resources/async_passthrough/raw_client.py index db9ea00b..1edf795f 100644 --- a/src/merge/resources/knowledgebase/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/async_passthrough/types/__init__.py b/src/merge/resources/knowledgebase/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/knowledgebase/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/attachments/raw_client.py b/src/merge/resources/knowledgebase/resources/attachments/raw_client.py index eab60ea2..1da00a24 100644 --- a/src/merge/resources/knowledgebase/resources/attachments/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/attachments/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.attachment import Attachment from ...types.paginated_attachment_list import PaginatedAttachmentList -from pydantic import ValidationError class RawAttachmentsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/audit_trail/raw_client.py b/src/merge/resources/knowledgebase/resources/audit_trail/raw_client.py index 43a505b9..cbcd2be5 100644 --- a/src/merge/resources/knowledgebase/resources/audit_trail/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/available_actions/raw_client.py b/src/merge/resources/knowledgebase/resources/available_actions/raw_client.py index 2a83613f..9ea7770d 100644 --- a/src/merge/resources/knowledgebase/resources/available_actions/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/containers/__init__.py b/src/merge/resources/knowledgebase/resources/containers/__init__.py index 3286380b..4e447635 100644 --- a/src/merge/resources/knowledgebase/resources/containers/__init__.py +++ b/src/merge/resources/knowledgebase/resources/containers/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/containers/raw_client.py b/src/merge/resources/knowledgebase/resources/containers/raw_client.py index 4ca2d193..ddb75cf1 100644 --- a/src/merge/resources/knowledgebase/resources/containers/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/containers/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.container import Container @@ -17,7 +16,6 @@ from .types.containers_list_request_expand_item import ContainersListRequestExpandItem from .types.containers_list_request_type import ContainersListRequestType from .types.containers_retrieve_request_expand_item import ContainersRetrieveRequestExpandItem -from pydantic import ValidationError class RawContainersClient: @@ -134,10 +132,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -198,10 +192,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -319,10 +309,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -383,8 +369,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/containers/types/__init__.py b/src/merge/resources/knowledgebase/resources/containers/types/__init__.py index cda05bfa..26543f15 100644 --- a/src/merge/resources/knowledgebase/resources/containers/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/containers/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_expand_item.py b/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_expand_item.py index 88a86475..cf2e98c0 100644 --- a/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContainersListRequestExpandItem(enum.StrEnum): +class ContainersListRequestExpandItem(str, enum.Enum): PARENT_ARTICLE = "parent_article" PARENT_CONTAINER = "parent_container" PERMISSIONS = "permissions" diff --git a/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_type.py b/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_type.py index 9c33421e..c40414d7 100644 --- a/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_type.py +++ b/src/merge/resources/knowledgebase/resources/containers/types/containers_list_request_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContainersListRequestType(enum.StrEnum): +class ContainersListRequestType(str, enum.Enum): EMPTY = "" CATEGORY = "CATEGORY" COLLECTION = "COLLECTION" diff --git a/src/merge/resources/knowledgebase/resources/containers/types/containers_retrieve_request_expand_item.py b/src/merge/resources/knowledgebase/resources/containers/types/containers_retrieve_request_expand_item.py index 591326ba..887cd6a9 100644 --- a/src/merge/resources/knowledgebase/resources/containers/types/containers_retrieve_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/containers/types/containers_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ContainersRetrieveRequestExpandItem(enum.StrEnum): +class ContainersRetrieveRequestExpandItem(str, enum.Enum): PARENT_ARTICLE = "parent_article" PARENT_CONTAINER = "parent_container" PERMISSIONS = "permissions" diff --git a/src/merge/resources/knowledgebase/resources/delete_account/raw_client.py b/src/merge/resources/knowledgebase/resources/delete_account/raw_client.py index 5905487e..69762675 100644 --- a/src/merge/resources/knowledgebase/resources/delete_account/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/field_mapping/client.py b/src/merge/resources/knowledgebase/resources/field_mapping/client.py index 3a96471b..bebab6d4 100644 --- a/src/merge/resources/knowledgebase/resources/field_mapping/client.py +++ b/src/merge/resources/knowledgebase/resources/field_mapping/client.py @@ -71,7 +71,7 @@ def field_mappings_retrieve( def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -90,7 +90,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -206,7 +206,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -223,7 +223,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -458,7 +458,7 @@ async def main() -> None: async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -477,7 +477,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -609,7 +609,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -626,7 +626,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/knowledgebase/resources/field_mapping/raw_client.py b/src/merge/resources/knowledgebase/resources/field_mapping/raw_client.py index be8e6813..b47aa875 100644 --- a/src/merge/resources/knowledgebase/resources/field_mapping/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,16 +65,12 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -95,7 +89,7 @@ def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -177,10 +171,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -219,10 +209,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -230,7 +216,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -247,7 +233,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -302,10 +288,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -356,10 +338,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -396,10 +374,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_create( @@ -459,10 +433,6 @@ def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -513,16 +483,12 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( self, *, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -541,7 +507,7 @@ async def field_mappings_create( Parameters ---------- - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -623,10 +589,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -665,10 +627,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -676,7 +634,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -693,7 +651,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -748,10 +706,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -802,10 +756,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -842,10 +792,6 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_create( @@ -905,8 +851,4 @@ async def target_fields_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/force_resync/raw_client.py b/src/merge/resources/knowledgebase/resources/force_resync/raw_client.py index 63c51e4a..afda654c 100644 --- a/src/merge/resources/knowledgebase/resources/force_resync/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/generate_key/raw_client.py b/src/merge/resources/knowledgebase/resources/generate_key/raw_client.py index fee6057d..a528f2c7 100644 --- a/src/merge/resources/knowledgebase/resources/generate_key/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/groups/__init__.py b/src/merge/resources/knowledgebase/resources/groups/__init__.py index 833b79cd..c42a8d2e 100644 --- a/src/merge/resources/knowledgebase/resources/groups/__init__.py +++ b/src/merge/resources/knowledgebase/resources/groups/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/groups/raw_client.py b/src/merge/resources/knowledgebase/resources/groups/raw_client.py index 88979934..a88d5620 100644 --- a/src/merge/resources/knowledgebase/resources/groups/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/groups/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.group import Group from ...types.paginated_group_list import PaginatedGroupList from .types.groups_list_request_expand_item import GroupsListRequestExpandItem from .types.groups_retrieve_request_expand_item import GroupsRetrieveRequestExpandItem -from pydantic import ValidationError class RawGroupsClient: @@ -118,10 +116,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -182,10 +176,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -288,10 +278,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -352,8 +338,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/groups/types/__init__.py b/src/merge/resources/knowledgebase/resources/groups/types/__init__.py index 1ac662da..9f5d7290 100644 --- a/src/merge/resources/knowledgebase/resources/groups/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/groups/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/groups/types/groups_list_request_expand_item.py b/src/merge/resources/knowledgebase/resources/groups/types/groups_list_request_expand_item.py index 26b4fb56..63ce0e42 100644 --- a/src/merge/resources/knowledgebase/resources/groups/types/groups_list_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/groups/types/groups_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsListRequestExpandItem(enum.StrEnum): +class GroupsListRequestExpandItem(str, enum.Enum): PARENT_GROUP = "parent_group" USERS = "users" diff --git a/src/merge/resources/knowledgebase/resources/groups/types/groups_retrieve_request_expand_item.py b/src/merge/resources/knowledgebase/resources/groups/types/groups_retrieve_request_expand_item.py index adef5513..29d98cb9 100644 --- a/src/merge/resources/knowledgebase/resources/groups/types/groups_retrieve_request_expand_item.py +++ b/src/merge/resources/knowledgebase/resources/groups/types/groups_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class GroupsRetrieveRequestExpandItem(enum.StrEnum): +class GroupsRetrieveRequestExpandItem(str, enum.Enum): PARENT_GROUP = "parent_group" USERS = "users" diff --git a/src/merge/resources/knowledgebase/resources/issues/__init__.py b/src/merge/resources/knowledgebase/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/knowledgebase/resources/issues/__init__.py +++ b/src/merge/resources/knowledgebase/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/issues/raw_client.py b/src/merge/resources/knowledgebase/resources/issues/raw_client.py index 04fa24b4..e8ec7ce9 100644 --- a/src/merge/resources/knowledgebase/resources/issues/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -175,10 +169,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -299,10 +289,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -341,8 +327,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/issues/types/__init__.py b/src/merge/resources/knowledgebase/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/knowledgebase/resources/issues/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/issues/types/issues_list_request_status.py b/src/merge/resources/knowledgebase/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/knowledgebase/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/knowledgebase/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/knowledgebase/resources/link_token/__init__.py b/src/merge/resources/knowledgebase/resources/link_token/__init__.py index 834918c1..be8c3839 100644 --- a/src/merge/resources/knowledgebase/resources/link_token/__init__.py +++ b/src/merge/resources/knowledgebase/resources/link_token/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/link_token/client.py b/src/merge/resources/knowledgebase/resources/link_token/client.py index e3e3a444..bcca07ac 100644 --- a/src/merge/resources/knowledgebase/resources/link_token/client.py +++ b/src/merge/resources/knowledgebase/resources/link_token/client.py @@ -50,7 +50,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -97,7 +97,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -187,7 +187,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -234,7 +234,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] diff --git a/src/merge/resources/knowledgebase/resources/link_token/raw_client.py b/src/merge/resources/knowledgebase/resources/link_token/raw_client.py index 6fe46f10..6cd77c09 100644 --- a/src/merge/resources/knowledgebase/resources/link_token/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -17,7 +16,6 @@ EndUserDetailsRequestCompletedAccountInitialScreen, ) from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -44,7 +42,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -91,7 +89,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -151,10 +149,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -179,7 +173,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, completed_account_initial_screen: typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] = OMIT, linked_destination_id: typing.Optional[str] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -226,7 +220,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. completed_account_initial_screen : typing.Optional[EndUserDetailsRequestCompletedAccountInitialScreen] @@ -286,8 +280,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/link_token/types/__init__.py b/src/merge/resources/knowledgebase/resources/link_token/types/__init__.py index 1846dfb1..55cc1d4e 100644 --- a/src/merge/resources/knowledgebase/resources/link_token/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/link_token/types/__init__.py @@ -22,10 +22,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/linked_accounts/__init__.py b/src/merge/resources/knowledgebase/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/knowledgebase/resources/linked_accounts/__init__.py +++ b/src/merge/resources/knowledgebase/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/linked_accounts/raw_client.py b/src/merge/resources/knowledgebase/resources/linked_accounts/raw_client.py index 8836ba0f..991575d6 100644 --- a/src/merge/resources/knowledgebase/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -120,10 +118,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -233,8 +227,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/linked_accounts/types/__init__.py b/src/merge/resources/knowledgebase/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/knowledgebase/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/knowledgebase/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/knowledgebase/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/knowledgebase/resources/linked_accounts/types/linked_accounts_list_request_category.py index 035ed972..97df0150 100644 --- a/src/merge/resources/knowledgebase/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/knowledgebase/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CHAT = "chat" diff --git a/src/merge/resources/knowledgebase/resources/passthrough/raw_client.py b/src/merge/resources/knowledgebase/resources/passthrough/raw_client.py index 0e2fdeb3..84c8bfdf 100644 --- a/src/merge/resources/knowledgebase/resources/passthrough/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/regenerate_key/raw_client.py b/src/merge/resources/knowledgebase/resources/regenerate_key/raw_client.py index d9f7c543..40114afa 100644 --- a/src/merge/resources/knowledgebase/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/scopes/raw_client.py b/src/merge/resources/knowledgebase/resources/scopes/raw_client.py index 4d661eb7..c9ae8287 100644 --- a/src/merge/resources/knowledgebase/resources/scopes/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/sync_status/raw_client.py b/src/merge/resources/knowledgebase/resources/sync_status/raw_client.py index 3b8b5066..9a9760cd 100644 --- a/src/merge/resources/knowledgebase/resources/sync_status/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/users/raw_client.py b/src/merge/resources/knowledgebase/resources/users/raw_client.py index 1f8495b5..0cf2bc46 100644 --- a/src/merge/resources/knowledgebase/resources/users/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/users/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User -from pydantic import ValidationError class RawUsersClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/resources/webhook_receivers/raw_client.py b/src/merge/resources/knowledgebase/resources/webhook_receivers/raw_client.py index 2fa836a2..cc0f8589 100644 --- a/src/merge/resources/knowledgebase/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/knowledgebase/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/knowledgebase/types/__init__.py b/src/merge/resources/knowledgebase/types/__init__.py index bea61591..9083435e 100644 --- a/src/merge/resources/knowledgebase/types/__init__.py +++ b/src/merge/resources/knowledgebase/types/__init__.py @@ -121,7 +121,9 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum from .sync_status_status import SyncStatusStatus + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .user import User from .user_field_mappings import UserFieldMappings from .validation_problem_source import ValidationProblemSource @@ -242,7 +244,9 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", "SyncStatusStatus": ".sync_status_status", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "User": ".user", "UserFieldMappings": ".user_field_mappings", "ValidationProblemSource": ".validation_problem_source", @@ -258,10 +262,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -387,7 +389,9 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", "SyncStatusStatus", + "SyncStatusSyncStatusReason", "User", "UserFieldMappings", "ValidationProblemSource", diff --git a/src/merge/resources/knowledgebase/types/account_details_and_actions.py b/src/merge/resources/knowledgebase/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/knowledgebase/types/account_details_and_actions.py +++ b/src/merge/resources/knowledgebase/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/account_details_and_actions_status_enum.py b/src/merge/resources/knowledgebase/types/account_details_and_actions_status_enum.py index 323189b4..0701a829 100644 --- a/src/merge/resources/knowledgebase/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/knowledgebase/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" diff --git a/src/merge/resources/knowledgebase/types/account_integration.py b/src/merge/resources/knowledgebase/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/knowledgebase/types/account_integration.py +++ b/src/merge/resources/knowledgebase/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/knowledgebase/types/advanced_metadata.py b/src/merge/resources/knowledgebase/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/knowledgebase/types/advanced_metadata.py +++ b/src/merge/resources/knowledgebase/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/article.py b/src/merge/resources/knowledgebase/types/article.py index d6b3b1cd..72f016c4 100644 --- a/src/merge/resources/knowledgebase/types/article.py +++ b/src/merge/resources/knowledgebase/types/article.py @@ -141,6 +141,7 @@ class Config: extra = pydantic.Extra.allow -from .article_parent_article import ArticleParentArticle # noqa: E402, I001 +from .group import Group # noqa: E402, F401, I001 +from .article_parent_article import ArticleParentArticle # noqa: E402, F401, I001 -update_forward_refs(Article, ArticleParentArticle=ArticleParentArticle) +update_forward_refs(Article) diff --git a/src/merge/resources/knowledgebase/types/article_field_mappings.py b/src/merge/resources/knowledgebase/types/article_field_mappings.py index d57a8473..36e74742 100644 --- a/src/merge/resources/knowledgebase/types/article_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/article_field_mappings.py @@ -8,8 +8,8 @@ class ArticleFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/article_type_enum.py b/src/merge/resources/knowledgebase/types/article_type_enum.py index 3b84dc6e..806fe0d4 100644 --- a/src/merge/resources/knowledgebase/types/article_type_enum.py +++ b/src/merge/resources/knowledgebase/types/article_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ArticleTypeEnum(enum.StrEnum): +class ArticleTypeEnum(str, enum.Enum): PAGE = "PAGE" BLOG_POST = "BLOG_POST" SMART_LINK = "SMART_LINK" diff --git a/src/merge/resources/knowledgebase/types/attachment_field_mappings.py b/src/merge/resources/knowledgebase/types/attachment_field_mappings.py index 1c16821a..9100692c 100644 --- a/src/merge/resources/knowledgebase/types/attachment_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/attachment_field_mappings.py @@ -8,8 +8,8 @@ class AttachmentFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/categories_enum.py b/src/merge/resources/knowledgebase/types/categories_enum.py index f92febf4..b6575458 100644 --- a/src/merge/resources/knowledgebase/types/categories_enum.py +++ b/src/merge/resources/knowledgebase/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/knowledgebase/types/category_enum.py b/src/merge/resources/knowledgebase/types/category_enum.py index ac0be82b..4ee2f4e4 100644 --- a/src/merge/resources/knowledgebase/types/category_enum.py +++ b/src/merge/resources/knowledgebase/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): HRIS = "hris" ATS = "ats" ACCOUNTING = "accounting" diff --git a/src/merge/resources/knowledgebase/types/container.py b/src/merge/resources/knowledgebase/types/container.py index 9a1f10d4..f82c29ea 100644 --- a/src/merge/resources/knowledgebase/types/container.py +++ b/src/merge/resources/knowledgebase/types/container.py @@ -110,4 +110,6 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(Container) diff --git a/src/merge/resources/knowledgebase/types/container_field_mappings.py b/src/merge/resources/knowledgebase/types/container_field_mappings.py index 7ea90c69..e0598ca3 100644 --- a/src/merge/resources/knowledgebase/types/container_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/container_field_mappings.py @@ -8,8 +8,8 @@ class ContainerFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/container_type_enum.py b/src/merge/resources/knowledgebase/types/container_type_enum.py index d2676e51..d3609258 100644 --- a/src/merge/resources/knowledgebase/types/container_type_enum.py +++ b/src/merge/resources/knowledgebase/types/container_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ContainerTypeEnum(enum.StrEnum): +class ContainerTypeEnum(str, enum.Enum): FOLDER = "FOLDER" SPACE = "SPACE" COLLECTION = "COLLECTION" diff --git a/src/merge/resources/knowledgebase/types/data_passthrough_request.py b/src/merge/resources/knowledgebase/types/data_passthrough_request.py index d8d42b8d..5a60bfb6 100644 --- a/src/merge/resources/knowledgebase/types/data_passthrough_request.py +++ b/src/merge/resources/knowledgebase/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/knowledgebase/types/enabled_actions_enum.py b/src/merge/resources/knowledgebase/types/enabled_actions_enum.py index ded7aa80..cb19286a 100644 --- a/src/merge/resources/knowledgebase/types/enabled_actions_enum.py +++ b/src/merge/resources/knowledgebase/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): READ = "READ" WRITE = "WRITE" diff --git a/src/merge/resources/knowledgebase/types/encoding_enum.py b/src/merge/resources/knowledgebase/types/encoding_enum.py index 27686241..7d4b8977 100644 --- a/src/merge/resources/knowledgebase/types/encoding_enum.py +++ b/src/merge/resources/knowledgebase/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): RAW = "RAW" BASE_64 = "BASE64" GZIP_BASE_64 = "GZIP_BASE64" diff --git a/src/merge/resources/knowledgebase/types/event_type_enum.py b/src/merge/resources/knowledgebase/types/event_type_enum.py index 42ce9abb..a04b9681 100644 --- a/src/merge/resources/knowledgebase/types/event_type_enum.py +++ b/src/merge/resources/knowledgebase/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY" DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY" CREATED_TEST_API_KEY = "CREATED_TEST_API_KEY" diff --git a/src/merge/resources/knowledgebase/types/external_target_field_api_response.py b/src/merge/resources/knowledgebase/types/external_target_field_api_response.py index db1f5050..78a1df72 100644 --- a/src/merge/resources/knowledgebase/types/external_target_field_api_response.py +++ b/src/merge/resources/knowledgebase/types/external_target_field_api_response.py @@ -3,37 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - container: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Container"), - pydantic.Field(alias="Container"), - ] = None - article: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Article"), - pydantic.Field(alias="Article"), - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None + container: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Container", default=None) + article: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Article", default=None) + attachment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Attachment", default=None) + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Group", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/knowledgebase/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/knowledgebase/types/field_mapping_api_instance_response.py b/src/merge/resources/knowledgebase/types/field_mapping_api_instance_response.py index b4a126f6..a3237ed5 100644 --- a/src/merge/resources/knowledgebase/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/knowledgebase/types/field_mapping_api_instance_response.py @@ -3,37 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - container: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Container"), - pydantic.Field(alias="Container"), - ] = None - article: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Article"), - pydantic.Field(alias="Article"), - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Group"), - pydantic.Field(alias="Group"), - ] = None + container: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Container", default=None) + article: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Article", default=None) + attachment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Attachment", default=None) + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Group", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/field_permission_deserializer.py b/src/merge/resources/knowledgebase/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/knowledgebase/types/field_permission_deserializer.py +++ b/src/merge/resources/knowledgebase/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/field_permission_deserializer_request.py b/src/merge/resources/knowledgebase/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/knowledgebase/types/field_permission_deserializer_request.py +++ b/src/merge/resources/knowledgebase/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/group.py b/src/merge/resources/knowledgebase/types/group.py index 57daf79b..676a696e 100644 --- a/src/merge/resources/knowledgebase/types/group.py +++ b/src/merge/resources/knowledgebase/types/group.py @@ -67,6 +67,6 @@ class Config: extra = pydantic.Extra.allow -from .group_parent_group import GroupParentGroup # noqa: E402, I001 +from .group_parent_group import GroupParentGroup # noqa: E402, F401, I001 -update_forward_refs(Group, GroupParentGroup=GroupParentGroup) +update_forward_refs(Group) diff --git a/src/merge/resources/knowledgebase/types/group_field_mappings.py b/src/merge/resources/knowledgebase/types/group_field_mappings.py index eaef7341..3be990d2 100644 --- a/src/merge/resources/knowledgebase/types/group_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/group_field_mappings.py @@ -8,8 +8,8 @@ class GroupFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/issue.py b/src/merge/resources/knowledgebase/types/issue.py index ab038c54..8f1027ca 100644 --- a/src/merge/resources/knowledgebase/types/issue.py +++ b/src/merge/resources/knowledgebase/types/issue.py @@ -17,7 +17,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/knowledgebase/types/issue_status_enum.py b/src/merge/resources/knowledgebase/types/issue_status_enum.py index 932ae51c..d75e26e2 100644 --- a/src/merge/resources/knowledgebase/types/issue_status_enum.py +++ b/src/merge/resources/knowledgebase/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/knowledgebase/types/language_enum.py b/src/merge/resources/knowledgebase/types/language_enum.py index 16d6cd0e..19f87fe0 100644 --- a/src/merge/resources/knowledgebase/types/language_enum.py +++ b/src/merge/resources/knowledgebase/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): EN = "en" DE = "de" diff --git a/src/merge/resources/knowledgebase/types/last_sync_result_enum.py b/src/merge/resources/knowledgebase/types/last_sync_result_enum.py index 5cb86bc3..52ecd845 100644 --- a/src/merge/resources/knowledgebase/types/last_sync_result_enum.py +++ b/src/merge/resources/knowledgebase/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/knowledgebase/types/method_enum.py b/src/merge/resources/knowledgebase/types/method_enum.py index 45c9f89e..73d2556f 100644 --- a/src/merge/resources/knowledgebase/types/method_enum.py +++ b/src/merge/resources/knowledgebase/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): GET = "GET" OPTIONS = "OPTIONS" HEAD = "HEAD" diff --git a/src/merge/resources/knowledgebase/types/paginated_article_list.py b/src/merge/resources/knowledgebase/types/paginated_article_list.py index b29ca149..81de40ee 100644 --- a/src/merge/resources/knowledgebase/types/paginated_article_list.py +++ b/src/merge/resources/knowledgebase/types/paginated_article_list.py @@ -24,7 +24,7 @@ class Config: extra = pydantic.Extra.allow -from .article import Article # noqa: E402, I001 -from .article_parent_article import ArticleParentArticle # noqa: E402, I001 +from .article import Article # noqa: E402, F401, I001 +from .group import Group # noqa: E402, F401, I001 -update_forward_refs(PaginatedArticleList, Article=Article, ArticleParentArticle=ArticleParentArticle) +update_forward_refs(PaginatedArticleList) diff --git a/src/merge/resources/knowledgebase/types/paginated_container_list.py b/src/merge/resources/knowledgebase/types/paginated_container_list.py index 285e1ffe..4a3ab735 100644 --- a/src/merge/resources/knowledgebase/types/paginated_container_list.py +++ b/src/merge/resources/knowledgebase/types/paginated_container_list.py @@ -25,4 +25,6 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(PaginatedContainerList) diff --git a/src/merge/resources/knowledgebase/types/paginated_group_list.py b/src/merge/resources/knowledgebase/types/paginated_group_list.py index f59e44ff..ddbf97b2 100644 --- a/src/merge/resources/knowledgebase/types/paginated_group_list.py +++ b/src/merge/resources/knowledgebase/types/paginated_group_list.py @@ -24,7 +24,6 @@ class Config: extra = pydantic.Extra.allow -from .group import Group # noqa: E402, I001 -from .group_parent_group import GroupParentGroup # noqa: E402, I001 +from .group import Group # noqa: E402, F401, I001 -update_forward_refs(PaginatedGroupList, Group=Group, GroupParentGroup=GroupParentGroup) +update_forward_refs(PaginatedGroupList) diff --git a/src/merge/resources/knowledgebase/types/permission.py b/src/merge/resources/knowledgebase/types/permission.py index c8738711..74fd622f 100644 --- a/src/merge/resources/knowledgebase/types/permission.py +++ b/src/merge/resources/knowledgebase/types/permission.py @@ -68,4 +68,6 @@ class Config: extra = pydantic.Extra.allow +from .group import Group # noqa: E402, F401, I001 + update_forward_refs(Permission) diff --git a/src/merge/resources/knowledgebase/types/permission_field_mappings.py b/src/merge/resources/knowledgebase/types/permission_field_mappings.py index 0672b491..9c2804c2 100644 --- a/src/merge/resources/knowledgebase/types/permission_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/permission_field_mappings.py @@ -8,8 +8,8 @@ class PermissionFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/permission_type_enum.py b/src/merge/resources/knowledgebase/types/permission_type_enum.py index 20867149..7dcaaa69 100644 --- a/src/merge/resources/knowledgebase/types/permission_type_enum.py +++ b/src/merge/resources/knowledgebase/types/permission_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PermissionTypeEnum(enum.StrEnum): +class PermissionTypeEnum(str, enum.Enum): USER = "USER" GROUP = "GROUP" COMPANY = "COMPANY" diff --git a/src/merge/resources/knowledgebase/types/remote_data.py b/src/merge/resources/knowledgebase/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/knowledgebase/types/remote_data.py +++ b/src/merge/resources/knowledgebase/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/knowledgebase/types/remote_endpoint_info.py b/src/merge/resources/knowledgebase/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/knowledgebase/types/remote_endpoint_info.py +++ b/src/merge/resources/knowledgebase/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/remote_field_api.py b/src/merge/resources/knowledgebase/types/remote_field_api.py index 5f2c2ab1..0756bfc3 100644 --- a/src/merge/resources/knowledgebase/types/remote_field_api.py +++ b/src/merge/resources/knowledgebase/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_endpoint_info import RemoteEndpointInfo from .remote_field_api_advanced_metadata import RemoteFieldApiAdvancedMetadata @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[RemoteFieldApiAdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/knowledgebase/types/remote_field_api_response.py b/src/merge/resources/knowledgebase/types/remote_field_api_response.py index f7b73eb0..13490496 100644 --- a/src/merge/resources/knowledgebase/types/remote_field_api_response.py +++ b/src/merge/resources/knowledgebase/types/remote_field_api_response.py @@ -3,33 +3,17 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - container: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Container"), - pydantic.Field(alias="Container"), - ] = None - article: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Article"), pydantic.Field(alias="Article") - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - group: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Group"), pydantic.Field(alias="Group") - ] = None + container: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Container", default=None) + article: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Article", default=None) + attachment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Attachment", default=None) + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + group: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Group", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/remote_response.py b/src/merge/resources/knowledgebase/types/remote_response.py index 8bc6f905..db01131f 100644 --- a/src/merge/resources/knowledgebase/types/remote_response.py +++ b/src/merge/resources/knowledgebase/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[RemoteResponseResponseType] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/request_format_enum.py b/src/merge/resources/knowledgebase/types/request_format_enum.py index 711b2df8..70ecd9bb 100644 --- a/src/merge/resources/knowledgebase/types/request_format_enum.py +++ b/src/merge/resources/knowledgebase/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): JSON = "JSON" XML = "XML" MULTIPART = "MULTIPART" diff --git a/src/merge/resources/knowledgebase/types/response_type_enum.py b/src/merge/resources/knowledgebase/types/response_type_enum.py index ce3f3d04..23b6bb5b 100644 --- a/src/merge/resources/knowledgebase/types/response_type_enum.py +++ b/src/merge/resources/knowledgebase/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): JSON = "JSON" BASE_64_GZIP = "BASE64_GZIP" diff --git a/src/merge/resources/knowledgebase/types/role_enum.py b/src/merge/resources/knowledgebase/types/role_enum.py index 752d2454..c97de31f 100644 --- a/src/merge/resources/knowledgebase/types/role_enum.py +++ b/src/merge/resources/knowledgebase/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): ADMIN = "ADMIN" DEVELOPER = "DEVELOPER" MEMBER = "MEMBER" diff --git a/src/merge/resources/knowledgebase/types/roles_enum.py b/src/merge/resources/knowledgebase/types/roles_enum.py index 05098fd9..c50a4bc4 100644 --- a/src/merge/resources/knowledgebase/types/roles_enum.py +++ b/src/merge/resources/knowledgebase/types/roles_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RolesEnum(enum.StrEnum): +class RolesEnum(str, enum.Enum): READ = "READ" WRITE = "WRITE" OWNER = "OWNER" diff --git a/src/merge/resources/knowledgebase/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/knowledgebase/types/selective_sync_configurations_usage_enum.py index 953775e9..7b486b59 100644 --- a/src/merge/resources/knowledgebase/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/knowledgebase/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): IN_NEXT_SYNC = "IN_NEXT_SYNC" IN_LAST_SYNC = "IN_LAST_SYNC" diff --git a/src/merge/resources/knowledgebase/types/status_3_c_6_enum.py b/src/merge/resources/knowledgebase/types/status_3_c_6_enum.py index be3481cb..8745a5e9 100644 --- a/src/merge/resources/knowledgebase/types/status_3_c_6_enum.py +++ b/src/merge/resources/knowledgebase/types/status_3_c_6_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class Status3C6Enum(enum.StrEnum): +class Status3C6Enum(str, enum.Enum): DRAFT = "DRAFT" PUBLISHED = "PUBLISHED" ARCHIVED = "ARCHIVED" diff --git a/src/merge/resources/knowledgebase/types/status_fd_5_enum.py b/src/merge/resources/knowledgebase/types/status_fd_5_enum.py index 52c212e4..3bf97afd 100644 --- a/src/merge/resources/knowledgebase/types/status_fd_5_enum.py +++ b/src/merge/resources/knowledgebase/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): SYNCING = "SYNCING" DONE = "DONE" FAILED = "FAILED" diff --git a/src/merge/resources/knowledgebase/types/sync_status.py b/src/merge/resources/knowledgebase/types/sync_status.py index e8564068..e27689eb 100644 --- a/src/merge/resources/knowledgebase/types/sync_status.py +++ b/src/merge/resources/knowledgebase/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .sync_status_last_sync_result import SyncStatusLastSyncResult from .sync_status_status import SyncStatusStatus +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: SyncStatusStatus + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/knowledgebase/types/sync_status_reason_enum.py b/src/merge/resources/knowledgebase/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/knowledgebase/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/knowledgebase/types/sync_status_sync_status_reason.py b/src/merge/resources/knowledgebase/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/knowledgebase/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/knowledgebase/types/user_field_mappings.py b/src/merge/resources/knowledgebase/types/user_field_mappings.py index 6a27272a..374935d7 100644 --- a/src/merge/resources/knowledgebase/types/user_field_mappings.py +++ b/src/merge/resources/knowledgebase/types/user_field_mappings.py @@ -8,8 +8,8 @@ class UserFieldMappings(UncheckedBaseModel): - organization_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Any]] = None + organization_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_defined_targets: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/knowledgebase/types/visibility_enum.py b/src/merge/resources/knowledgebase/types/visibility_enum.py index e557ec55..a14e44a8 100644 --- a/src/merge/resources/knowledgebase/types/visibility_enum.py +++ b/src/merge/resources/knowledgebase/types/visibility_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class VisibilityEnum(enum.StrEnum): +class VisibilityEnum(str, enum.Enum): PUBLIC = "PUBLIC" INTERNAL = "INTERNAL" RESTRICTED = "RESTRICTED" diff --git a/src/merge/resources/ticketing/__init__.py b/src/merge/resources/ticketing/__init__.py index d85e82e1..0e8ce44d 100644 --- a/src/merge/resources/ticketing/__init__.py +++ b/src/merge/resources/ticketing/__init__.py @@ -151,6 +151,8 @@ StatusFd5Enum, SyncStatus, SyncStatusLastSyncResult, + SyncStatusReasonEnum, + SyncStatusSyncStatusReason, Tag, Team, Ticket, @@ -404,6 +406,8 @@ "StatusFd5Enum": ".types", "SyncStatus": ".types", "SyncStatusLastSyncResult": ".types", + "SyncStatusReasonEnum": ".types", + "SyncStatusSyncStatusReason": ".types", "Tag": ".types", "Team": ".types", "Ticket": ".types", @@ -496,10 +500,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -667,6 +669,8 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", + "SyncStatusSyncStatusReason", "Tag", "Team", "Ticket", diff --git a/src/merge/resources/ticketing/resources/__init__.py b/src/merge/resources/ticketing/resources/__init__.py index 54a9b5aa..9da2e88a 100644 --- a/src/merge/resources/ticketing/resources/__init__.py +++ b/src/merge/resources/ticketing/resources/__init__.py @@ -87,34 +87,34 @@ "TicketsViewersListRequestExpandItem": ".tickets", "UsersListRequestExpandItem": ".users", "UsersRetrieveRequestExpandItem": ".users", - "account_details": ".account_details", - "account_token": ".account_token", - "accounts": ".accounts", - "async_passthrough": ".async_passthrough", - "attachments": ".attachments", - "audit_trail": ".audit_trail", - "available_actions": ".available_actions", - "collections": ".collections", - "comments": ".comments", - "contacts": ".contacts", - "delete_account": ".delete_account", - "field_mapping": ".field_mapping", - "force_resync": ".force_resync", - "generate_key": ".generate_key", - "issues": ".issues", - "link_token": ".link_token", - "linked_accounts": ".linked_accounts", - "passthrough": ".passthrough", - "projects": ".projects", - "regenerate_key": ".regenerate_key", - "roles": ".roles", - "scopes": ".scopes", - "sync_status": ".sync_status", - "tags": ".tags", - "teams": ".teams", - "tickets": ".tickets", - "users": ".users", - "webhook_receivers": ".webhook_receivers", + "account_details": ".", + "account_token": ".", + "accounts": ".", + "async_passthrough": ".", + "attachments": ".", + "audit_trail": ".", + "available_actions": ".", + "collections": ".", + "comments": ".", + "contacts": ".", + "delete_account": ".", + "field_mapping": ".", + "force_resync": ".", + "generate_key": ".", + "issues": ".", + "link_token": ".", + "linked_accounts": ".", + "passthrough": ".", + "projects": ".", + "regenerate_key": ".", + "roles": ".", + "scopes": ".", + "sync_status": ".", + "tags": ".", + "teams": ".", + "tickets": ".", + "users": ".", + "webhook_receivers": ".", } @@ -124,10 +124,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/account_details/raw_client.py b/src/merge/resources/ticketing/resources/account_details/raw_client.py index f07673fa..88f5a9ec 100644 --- a/src/merge/resources/ticketing/resources/account_details/raw_client.py +++ b/src/merge/resources/ticketing/resources/account_details/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_details import AccountDetails -from pydantic import ValidationError class RawAccountDetailsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/account_token/raw_client.py b/src/merge/resources/ticketing/resources/account_token/raw_client.py index ff4efa4b..2218516c 100644 --- a/src/merge/resources/ticketing/resources/account_token/raw_client.py +++ b/src/merge/resources/ticketing/resources/account_token/raw_client.py @@ -7,12 +7,10 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account_token import AccountToken from ...types.regenerate_account_token import RegenerateAccountToken -from pydantic import ValidationError class RawAccountTokenClient: @@ -55,10 +53,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def regenerate_create( @@ -95,10 +89,6 @@ def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -142,10 +132,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def regenerate_create( @@ -182,8 +168,4 @@ async def regenerate_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/accounts/raw_client.py b/src/merge/resources/ticketing/resources/accounts/raw_client.py index d1122bd7..0bf8bd35 100644 --- a/src/merge/resources/ticketing/resources/accounts/raw_client.py +++ b/src/merge/resources/ticketing/resources/accounts/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.account import Account from ...types.paginated_account_list import PaginatedAccountList -from pydantic import ValidationError class RawAccountsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/async_passthrough/__init__.py b/src/merge/resources/ticketing/resources/async_passthrough/__init__.py index 11090986..375c7953 100644 --- a/src/merge/resources/ticketing/resources/async_passthrough/__init__.py +++ b/src/merge/resources/ticketing/resources/async_passthrough/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/async_passthrough/raw_client.py b/src/merge/resources/ticketing/resources/async_passthrough/raw_client.py index 95d9cd0f..3e071ad4 100644 --- a/src/merge/resources/ticketing/resources/async_passthrough/raw_client.py +++ b/src/merge/resources/ticketing/resources/async_passthrough/raw_client.py @@ -7,13 +7,11 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.async_passthrough_reciept import AsyncPassthroughReciept from ...types.data_passthrough_request import DataPassthroughRequest from .types.async_passthrough_retrieve_response import AsyncPassthroughRetrieveResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -64,10 +62,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -106,10 +100,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -158,10 +148,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -200,8 +186,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/async_passthrough/types/__init__.py b/src/merge/resources/ticketing/resources/async_passthrough/types/__init__.py index dc335400..f6e9bec9 100644 --- a/src/merge/resources/ticketing/resources/async_passthrough/types/__init__.py +++ b/src/merge/resources/ticketing/resources/async_passthrough/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/attachments/raw_client.py b/src/merge/resources/ticketing/resources/attachments/raw_client.py index d9c078c1..25217fe9 100644 --- a/src/merge/resources/ticketing/resources/attachments/raw_client.py +++ b/src/merge/resources/ticketing/resources/attachments/raw_client.py @@ -10,7 +10,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.attachment import Attachment @@ -18,7 +17,6 @@ from ...types.meta_response import MetaResponse from ...types.paginated_attachment_list import PaginatedAttachmentList from ...types.ticketing_attachment_response import TicketingAttachmentResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -135,10 +133,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -199,10 +193,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -263,10 +253,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.contextmanager @@ -322,13 +308,6 @@ def _stream() -> HttpResponse[typing.Iterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield _stream() @@ -367,10 +346,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -485,10 +460,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -549,10 +520,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -613,10 +580,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.asynccontextmanager @@ -673,13 +636,6 @@ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield await _stream() @@ -718,8 +674,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/audit_trail/raw_client.py b/src/merge/resources/ticketing/resources/audit_trail/raw_client.py index f07e0357..6960431a 100644 --- a/src/merge/resources/ticketing/resources/audit_trail/raw_client.py +++ b/src/merge/resources/ticketing/resources/audit_trail/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_audit_log_event_list import PaginatedAuditLogEventList -from pydantic import ValidationError class RawAuditTrailClient: @@ -85,10 +83,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,8 +158,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/available_actions/raw_client.py b/src/merge/resources/ticketing/resources/available_actions/raw_client.py index 07231722..49490cf5 100644 --- a/src/merge/resources/ticketing/resources/available_actions/raw_client.py +++ b/src/merge/resources/ticketing/resources/available_actions/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.available_actions import AvailableActions -from pydantic import ValidationError class RawAvailableActionsClient: @@ -49,10 +47,6 @@ def retrieve(self, *, request_options: typing.Optional[RequestOptions] = None) - _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -94,8 +88,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/collections/__init__.py b/src/merge/resources/ticketing/resources/collections/__init__.py index d51e0138..e34feba0 100644 --- a/src/merge/resources/ticketing/resources/collections/__init__.py +++ b/src/merge/resources/ticketing/resources/collections/__init__.py @@ -26,10 +26,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/collections/raw_client.py b/src/merge/resources/ticketing/resources/collections/raw_client.py index ee32656c..e4700ae1 100644 --- a/src/merge/resources/ticketing/resources/collections/raw_client.py +++ b/src/merge/resources/ticketing/resources/collections/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.collection import Collection @@ -19,7 +18,6 @@ from .types.collections_list_request_expand_item import CollectionsListRequestExpandItem from .types.collections_retrieve_request_expand_item import CollectionsRetrieveRequestExpandItem from .types.collections_viewers_list_request_expand_item import CollectionsViewersListRequestExpandItem -from pydantic import ValidationError class RawCollectionsClient: @@ -146,10 +144,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def viewers_list( @@ -227,10 +221,6 @@ def viewers_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -301,10 +291,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -432,10 +418,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def viewers_list( @@ -513,10 +495,6 @@ async def viewers_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -587,8 +565,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/collections/types/__init__.py b/src/merge/resources/ticketing/resources/collections/types/__init__.py index 25de3390..ca31731a 100644 --- a/src/merge/resources/ticketing/resources/collections/types/__init__.py +++ b/src/merge/resources/ticketing/resources/collections/types/__init__.py @@ -24,10 +24,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/collections/types/collections_list_request_collection_type.py b/src/merge/resources/ticketing/resources/collections/types/collections_list_request_collection_type.py index 7e92b868..131be5b6 100644 --- a/src/merge/resources/ticketing/resources/collections/types/collections_list_request_collection_type.py +++ b/src/merge/resources/ticketing/resources/collections/types/collections_list_request_collection_type.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionsListRequestCollectionType(enum.StrEnum): +class CollectionsListRequestCollectionType(str, enum.Enum): EMPTY = "" LIST = "LIST" PROJECT = "PROJECT" diff --git a/src/merge/resources/ticketing/resources/collections/types/collections_list_request_expand_item.py b/src/merge/resources/ticketing/resources/collections/types/collections_list_request_expand_item.py index 8315a994..1985cd82 100644 --- a/src/merge/resources/ticketing/resources/collections/types/collections_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/collections/types/collections_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionsListRequestExpandItem(enum.StrEnum): +class CollectionsListRequestExpandItem(str, enum.Enum): PARENT_COLLECTION = "parent_collection" PERMISSIONS = "permissions" diff --git a/src/merge/resources/ticketing/resources/collections/types/collections_retrieve_request_expand_item.py b/src/merge/resources/ticketing/resources/collections/types/collections_retrieve_request_expand_item.py index 6b4a8ddd..eacfffaf 100644 --- a/src/merge/resources/ticketing/resources/collections/types/collections_retrieve_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/collections/types/collections_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionsRetrieveRequestExpandItem(enum.StrEnum): +class CollectionsRetrieveRequestExpandItem(str, enum.Enum): PARENT_COLLECTION = "parent_collection" PERMISSIONS = "permissions" diff --git a/src/merge/resources/ticketing/resources/collections/types/collections_viewers_list_request_expand_item.py b/src/merge/resources/ticketing/resources/collections/types/collections_viewers_list_request_expand_item.py index c94878aa..9ce4bd1a 100644 --- a/src/merge/resources/ticketing/resources/collections/types/collections_viewers_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/collections/types/collections_viewers_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionsViewersListRequestExpandItem(enum.StrEnum): +class CollectionsViewersListRequestExpandItem(str, enum.Enum): TEAM = "team" USER = "user" diff --git a/src/merge/resources/ticketing/resources/comments/__init__.py b/src/merge/resources/ticketing/resources/comments/__init__.py index fcae8230..024162c5 100644 --- a/src/merge/resources/ticketing/resources/comments/__init__.py +++ b/src/merge/resources/ticketing/resources/comments/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/comments/raw_client.py b/src/merge/resources/ticketing/resources/comments/raw_client.py index 9edcbc4e..896ca663 100644 --- a/src/merge/resources/ticketing/resources/comments/raw_client.py +++ b/src/merge/resources/ticketing/resources/comments/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.comment import Comment @@ -19,7 +18,6 @@ from ...types.paginated_comment_list import PaginatedCommentList from .types.comments_list_request_expand_item import CommentsListRequestExpandItem from .types.comments_retrieve_request_expand_item import CommentsRetrieveRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -136,10 +134,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -200,10 +194,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -264,10 +254,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -304,10 +290,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -422,10 +404,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -486,10 +464,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -550,10 +524,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -590,8 +560,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/comments/types/__init__.py b/src/merge/resources/ticketing/resources/comments/types/__init__.py index e2faf543..485b83cf 100644 --- a/src/merge/resources/ticketing/resources/comments/types/__init__.py +++ b/src/merge/resources/ticketing/resources/comments/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/comments/types/comments_list_request_expand_item.py b/src/merge/resources/ticketing/resources/comments/types/comments_list_request_expand_item.py index c4cab2b8..9d1695ba 100644 --- a/src/merge/resources/ticketing/resources/comments/types/comments_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/comments/types/comments_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CommentsListRequestExpandItem(enum.StrEnum): +class CommentsListRequestExpandItem(str, enum.Enum): CONTACT = "contact" TICKET = "ticket" USER = "user" diff --git a/src/merge/resources/ticketing/resources/comments/types/comments_retrieve_request_expand_item.py b/src/merge/resources/ticketing/resources/comments/types/comments_retrieve_request_expand_item.py index 44c1f16d..1cc39df9 100644 --- a/src/merge/resources/ticketing/resources/comments/types/comments_retrieve_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/comments/types/comments_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class CommentsRetrieveRequestExpandItem(enum.StrEnum): +class CommentsRetrieveRequestExpandItem(str, enum.Enum): CONTACT = "contact" TICKET = "ticket" USER = "user" diff --git a/src/merge/resources/ticketing/resources/contacts/raw_client.py b/src/merge/resources/ticketing/resources/contacts/raw_client.py index 026e3bff..2488c2dd 100644 --- a/src/merge/resources/ticketing/resources/contacts/raw_client.py +++ b/src/merge/resources/ticketing/resources/contacts/raw_client.py @@ -9,7 +9,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.contact import Contact @@ -17,7 +16,6 @@ from ...types.meta_response import MetaResponse from ...types.paginated_contact_list import PaginatedContactList from ...types.ticketing_contact_response import TicketingContactResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -127,10 +125,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -191,10 +185,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -255,10 +245,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -295,10 +281,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -406,10 +388,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -470,10 +448,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -534,10 +508,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -574,8 +544,4 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/delete_account/raw_client.py b/src/merge/resources/ticketing/resources/delete_account/raw_client.py index 2a9e5028..773ab786 100644 --- a/src/merge/resources/ticketing/resources/delete_account/raw_client.py +++ b/src/merge/resources/ticketing/resources/delete_account/raw_client.py @@ -6,9 +6,7 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions -from pydantic import ValidationError class RawDeleteAccountClient: @@ -39,10 +37,6 @@ def delete(self, *, request_options: typing.Optional[RequestOptions] = None) -> _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -74,8 +68,4 @@ async def delete(self, *, request_options: typing.Optional[RequestOptions] = Non _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/field_mapping/client.py b/src/merge/resources/ticketing/resources/field_mapping/client.py index 7e0d5753..04b3aa9a 100644 --- a/src/merge/resources/ticketing/resources/field_mapping/client.py +++ b/src/merge/resources/ticketing/resources/field_mapping/client.py @@ -73,7 +73,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -93,7 +93,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -193,7 +193,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -209,7 +209,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -394,7 +394,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -414,7 +414,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -530,7 +530,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -546,7 +546,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] diff --git a/src/merge/resources/ticketing/resources/field_mapping/raw_client.py b/src/merge/resources/ticketing/resources/field_mapping/raw_client.py index 257ec5fa..cf42f54a 100644 --- a/src/merge/resources/ticketing/resources/field_mapping/raw_client.py +++ b/src/merge/resources/ticketing/resources/field_mapping/raw_client.py @@ -7,14 +7,12 @@ from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.external_target_field_api_response import ExternalTargetFieldApiResponse from ...types.field_mapping_api_instance_response import FieldMappingApiInstanceResponse from ...types.field_mapping_instance_response import FieldMappingInstanceResponse from ...types.remote_field_api_response import RemoteFieldApiResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -67,10 +65,6 @@ def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_create( @@ -78,7 +72,7 @@ def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -98,7 +92,7 @@ def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -162,10 +156,6 @@ def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_destroy( @@ -204,10 +194,6 @@ def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def field_mappings_partial_update( @@ -215,7 +201,7 @@ def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -231,7 +217,7 @@ def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -282,10 +268,6 @@ def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_fields_retrieve( @@ -336,10 +318,6 @@ def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def target_fields_retrieve( @@ -376,10 +354,6 @@ def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -430,10 +404,6 @@ async def field_mappings_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_create( @@ -441,7 +411,7 @@ async def field_mappings_create( *, target_field_name: str, target_field_description: str, - remote_field_traversal_path: typing.Sequence[typing.Any], + remote_field_traversal_path: typing.Sequence[typing.Optional[typing.Any]], remote_method: str, remote_url_path: str, common_model_name: str, @@ -461,7 +431,7 @@ async def field_mappings_create( target_field_description : str The description of the target field you want this remote field to map to. - remote_field_traversal_path : typing.Sequence[typing.Any] + remote_field_traversal_path : typing.Sequence[typing.Optional[typing.Any]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : str @@ -525,10 +495,6 @@ async def field_mappings_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_destroy( @@ -567,10 +533,6 @@ async def field_mappings_destroy( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def field_mappings_partial_update( @@ -578,7 +540,7 @@ async def field_mappings_partial_update( field_mapping_id: str, *, remote_data_iteration_count: typing.Optional[int] = None, - remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Any]] = OMIT, + remote_field_traversal_path: typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] = OMIT, remote_method: typing.Optional[str] = OMIT, remote_url_path: typing.Optional[str] = OMIT, jmes_path: typing.Optional[str] = OMIT, @@ -594,7 +556,7 @@ async def field_mappings_partial_update( remote_data_iteration_count : typing.Optional[int] Number of common model instances to iterate through when fetching remote data for field mappings. Defaults to 250 if not provided. - remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Any]] + remote_field_traversal_path : typing.Optional[typing.Sequence[typing.Optional[typing.Any]]] The field traversal path of the remote field listed when you hit the GET /remote-fields endpoint. remote_method : typing.Optional[str] @@ -645,10 +607,6 @@ async def field_mappings_partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_fields_retrieve( @@ -699,10 +657,6 @@ async def remote_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def target_fields_retrieve( @@ -739,8 +693,4 @@ async def target_fields_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/force_resync/raw_client.py b/src/merge/resources/ticketing/resources/force_resync/raw_client.py index 232c85fd..1d964134 100644 --- a/src/merge/resources/ticketing/resources/force_resync/raw_client.py +++ b/src/merge/resources/ticketing/resources/force_resync/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.sync_status import SyncStatus -from pydantic import ValidationError class RawForceResyncClient: @@ -51,10 +49,6 @@ def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -96,8 +90,4 @@ async def sync_status_resync_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/generate_key/raw_client.py b/src/merge/resources/ticketing/resources/generate_key/raw_client.py index 74473b64..d9c73292 100644 --- a/src/merge/resources/ticketing/resources/generate_key/raw_client.py +++ b/src/merge/resources/ticketing/resources/generate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/issues/__init__.py b/src/merge/resources/ticketing/resources/issues/__init__.py index 45b33fe1..3ca1094b 100644 --- a/src/merge/resources/ticketing/resources/issues/__init__.py +++ b/src/merge/resources/ticketing/resources/issues/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/issues/raw_client.py b/src/merge/resources/ticketing/resources/issues/raw_client.py index 4d25cb01..09986b0c 100644 --- a/src/merge/resources/ticketing/resources/issues/raw_client.py +++ b/src/merge/resources/ticketing/resources/issues/raw_client.py @@ -9,13 +9,11 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.issue import Issue from ...types.paginated_issue_list import PaginatedIssueList from .types.issues_list_request_status import IssuesListRequestStatus -from pydantic import ValidationError class RawIssuesClient: @@ -138,10 +136,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Issue]: @@ -178,10 +172,6 @@ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -305,10 +295,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -347,8 +333,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/issues/types/__init__.py b/src/merge/resources/ticketing/resources/issues/types/__init__.py index 5e097583..88fbf977 100644 --- a/src/merge/resources/ticketing/resources/issues/types/__init__.py +++ b/src/merge/resources/ticketing/resources/issues/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/issues/types/issues_list_request_status.py b/src/merge/resources/ticketing/resources/issues/types/issues_list_request_status.py index a61afdd0..2bd3521e 100644 --- a/src/merge/resources/ticketing/resources/issues/types/issues_list_request_status.py +++ b/src/merge/resources/ticketing/resources/issues/types/issues_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class IssuesListRequestStatus(enum.StrEnum): +class IssuesListRequestStatus(str, enum.Enum): ONGOING = "ONGOING" RESOLVED = "RESOLVED" diff --git a/src/merge/resources/ticketing/resources/link_token/__init__.py b/src/merge/resources/ticketing/resources/link_token/__init__.py index 15700960..3bad6adf 100644 --- a/src/merge/resources/ticketing/resources/link_token/__init__.py +++ b/src/merge/resources/ticketing/resources/link_token/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/link_token/client.py b/src/merge/resources/ticketing/resources/link_token/client.py index 064a98dd..9b98f597 100644 --- a/src/merge/resources/ticketing/resources/link_token/client.py +++ b/src/merge/resources/ticketing/resources/link_token/client.py @@ -47,7 +47,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -94,7 +94,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -172,7 +172,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> LinkToken: """ @@ -219,7 +219,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] diff --git a/src/merge/resources/ticketing/resources/link_token/raw_client.py b/src/merge/resources/ticketing/resources/link_token/raw_client.py index 7c64f735..2bb04483 100644 --- a/src/merge/resources/ticketing/resources/link_token/raw_client.py +++ b/src/merge/resources/ticketing/resources/link_token/raw_client.py @@ -6,7 +6,6 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.categories_enum import CategoriesEnum @@ -14,7 +13,6 @@ from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest from ...types.link_token import LinkToken from .types.end_user_details_request_language import EndUserDetailsRequestLanguage -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -41,7 +39,7 @@ def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[LinkToken]: """ @@ -88,7 +86,7 @@ def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -136,10 +134,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -164,7 +158,7 @@ async def create( ] = OMIT, language: typing.Optional[EndUserDetailsRequestLanguage] = OMIT, are_syncs_disabled: typing.Optional[bool] = OMIT, - integration_specific_config: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + integration_specific_config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[LinkToken]: """ @@ -211,7 +205,7 @@ async def create( are_syncs_disabled : typing.Optional[bool] The boolean that indicates whether initial, periodic, and force syncs will be disabled. - integration_specific_config : typing.Optional[typing.Dict[str, typing.Any]] + integration_specific_config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] A JSON object containing integration-specific configuration options. request_options : typing.Optional[RequestOptions] @@ -259,8 +253,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/link_token/types/__init__.py b/src/merge/resources/ticketing/resources/link_token/types/__init__.py index dad2a14a..e9a7d3b9 100644 --- a/src/merge/resources/ticketing/resources/link_token/types/__init__.py +++ b/src/merge/resources/ticketing/resources/link_token/types/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/linked_accounts/__init__.py b/src/merge/resources/ticketing/resources/linked_accounts/__init__.py index 12e213b7..0b9e42b4 100644 --- a/src/merge/resources/ticketing/resources/linked_accounts/__init__.py +++ b/src/merge/resources/ticketing/resources/linked_accounts/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/linked_accounts/raw_client.py b/src/merge/resources/ticketing/resources/linked_accounts/raw_client.py index da393b36..5526d4f8 100644 --- a/src/merge/resources/ticketing/resources/linked_accounts/raw_client.py +++ b/src/merge/resources/ticketing/resources/linked_accounts/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_account_details_and_actions_list import PaginatedAccountDetailsAndActionsList from .types.linked_accounts_list_request_category import LinkedAccountsListRequestCategory -from pydantic import ValidationError class RawLinkedAccountsClient: @@ -128,10 +126,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -249,8 +243,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/linked_accounts/types/__init__.py b/src/merge/resources/ticketing/resources/linked_accounts/types/__init__.py index a884db6a..a28f38cc 100644 --- a/src/merge/resources/ticketing/resources/linked_accounts/types/__init__.py +++ b/src/merge/resources/ticketing/resources/linked_accounts/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/linked_accounts/types/linked_accounts_list_request_category.py b/src/merge/resources/ticketing/resources/linked_accounts/types/linked_accounts_list_request_category.py index ce04d1de..bd873ea8 100644 --- a/src/merge/resources/ticketing/resources/linked_accounts/types/linked_accounts_list_request_category.py +++ b/src/merge/resources/ticketing/resources/linked_accounts/types/linked_accounts_list_request_category.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class LinkedAccountsListRequestCategory(enum.StrEnum): +class LinkedAccountsListRequestCategory(str, enum.Enum): ACCOUNTING = "accounting" ATS = "ats" CRM = "crm" diff --git a/src/merge/resources/ticketing/resources/passthrough/raw_client.py b/src/merge/resources/ticketing/resources/passthrough/raw_client.py index 7eb739b2..a81c9a2d 100644 --- a/src/merge/resources/ticketing/resources/passthrough/raw_client.py +++ b/src/merge/resources/ticketing/resources/passthrough/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.data_passthrough_request import DataPassthroughRequest from ...types.remote_response import RemoteResponse -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -114,8 +108,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/projects/__init__.py b/src/merge/resources/ticketing/resources/projects/__init__.py index eddc1259..4017e304 100644 --- a/src/merge/resources/ticketing/resources/projects/__init__.py +++ b/src/merge/resources/ticketing/resources/projects/__init__.py @@ -16,10 +16,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/projects/raw_client.py b/src/merge/resources/ticketing/resources/projects/raw_client.py index e50d932e..a18488ee 100644 --- a/src/merge/resources/ticketing/resources/projects/raw_client.py +++ b/src/merge/resources/ticketing/resources/projects/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_project_list import PaginatedProjectList from ...types.paginated_user_list import PaginatedUserList from ...types.project import Project from .types.projects_users_list_request_expand_item import ProjectsUsersListRequestExpandItem -from pydantic import ValidationError class RawProjectsClient: @@ -111,10 +109,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -168,10 +162,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def users_list( @@ -247,10 +237,6 @@ def users_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -346,10 +332,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -403,10 +385,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def users_list( @@ -482,8 +460,4 @@ async def users_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/projects/types/__init__.py b/src/merge/resources/ticketing/resources/projects/types/__init__.py index 37c356bb..7724983b 100644 --- a/src/merge/resources/ticketing/resources/projects/types/__init__.py +++ b/src/merge/resources/ticketing/resources/projects/types/__init__.py @@ -18,10 +18,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/projects/types/projects_users_list_request_expand_item.py b/src/merge/resources/ticketing/resources/projects/types/projects_users_list_request_expand_item.py index a68d557b..1f068356 100644 --- a/src/merge/resources/ticketing/resources/projects/types/projects_users_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/projects/types/projects_users_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class ProjectsUsersListRequestExpandItem(enum.StrEnum): +class ProjectsUsersListRequestExpandItem(str, enum.Enum): ROLES = "roles" TEAMS = "teams" diff --git a/src/merge/resources/ticketing/resources/regenerate_key/raw_client.py b/src/merge/resources/ticketing/resources/regenerate_key/raw_client.py index 77edd652..0b07bbab 100644 --- a/src/merge/resources/ticketing/resources/regenerate_key/raw_client.py +++ b/src/merge/resources/ticketing/resources/regenerate_key/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.remote_key import RemoteKey -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -62,10 +60,6 @@ def create(self, *, name: str, request_options: typing.Optional[RequestOptions] _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -117,8 +111,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/roles/raw_client.py b/src/merge/resources/ticketing/resources/roles/raw_client.py index a322ffe5..5f40ef03 100644 --- a/src/merge/resources/ticketing/resources/roles/raw_client.py +++ b/src/merge/resources/ticketing/resources/roles/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_role_list import PaginatedRoleList from ...types.role import Role -from pydantic import ValidationError class RawRolesClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/scopes/raw_client.py b/src/merge/resources/ticketing/resources/scopes/raw_client.py index ffabec37..0088cc62 100644 --- a/src/merge/resources/ticketing/resources/scopes/raw_client.py +++ b/src/merge/resources/ticketing/resources/scopes/raw_client.py @@ -6,12 +6,10 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.common_model_scope_api import CommonModelScopeApi from ...types.individual_common_model_scope_deserializer_request import IndividualCommonModelScopeDeserializerRequest -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -55,10 +53,6 @@ def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_retrieve( @@ -95,10 +89,6 @@ def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def linked_account_scopes_create( @@ -148,10 +138,6 @@ def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -193,10 +179,6 @@ async def default_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_retrieve( @@ -233,10 +215,6 @@ async def linked_account_scopes_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def linked_account_scopes_create( @@ -286,8 +264,4 @@ async def linked_account_scopes_create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/sync_status/raw_client.py b/src/merge/resources/ticketing/resources/sync_status/raw_client.py index 3db85d7e..0052fc35 100644 --- a/src/merge/resources/ticketing/resources/sync_status/raw_client.py +++ b/src/merge/resources/ticketing/resources/sync_status/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_sync_status_list import PaginatedSyncStatusList -from pydantic import ValidationError class RawSyncStatusClient: @@ -65,10 +63,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -124,8 +118,4 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/tags/raw_client.py b/src/merge/resources/ticketing/resources/tags/raw_client.py index d89cb051..8a283c5b 100644 --- a/src/merge/resources/ticketing/resources/tags/raw_client.py +++ b/src/merge/resources/ticketing/resources/tags/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_tag_list import PaginatedTagList from ...types.tag import Tag -from pydantic import ValidationError class RawTagsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/teams/raw_client.py b/src/merge/resources/ticketing/resources/teams/raw_client.py index 5fcd8dfb..05f6264d 100644 --- a/src/merge/resources/ticketing/resources/teams/raw_client.py +++ b/src/merge/resources/ticketing/resources/teams/raw_client.py @@ -9,12 +9,10 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_team_list import PaginatedTeamList from ...types.team import Team -from pydantic import ValidationError class RawTeamsClient: @@ -109,10 +107,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -166,10 +160,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -265,10 +255,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -322,8 +308,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/tickets/__init__.py b/src/merge/resources/ticketing/resources/tickets/__init__.py index 93956391..e6bd28f7 100644 --- a/src/merge/resources/ticketing/resources/tickets/__init__.py +++ b/src/merge/resources/ticketing/resources/tickets/__init__.py @@ -40,10 +40,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/tickets/raw_client.py b/src/merge/resources/ticketing/resources/tickets/raw_client.py index f428f39e..d5848593 100644 --- a/src/merge/resources/ticketing/resources/tickets/raw_client.py +++ b/src/merge/resources/ticketing/resources/tickets/raw_client.py @@ -10,7 +10,6 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.meta_response import MetaResponse @@ -34,7 +33,6 @@ from .types.tickets_retrieve_request_remote_fields import TicketsRetrieveRequestRemoteFields from .types.tickets_retrieve_request_show_enum_origins import TicketsRetrieveRequestShowEnumOrigins from .types.tickets_viewers_list_request_expand_item import TicketsViewersListRequestExpandItem -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -277,10 +275,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -341,10 +335,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -420,10 +410,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def partial_update( @@ -487,10 +473,6 @@ def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def viewers_list( @@ -566,10 +548,6 @@ def viewers_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.contextmanager @@ -677,13 +655,6 @@ def _stream() -> HttpResponse[typing.Iterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield _stream() @@ -724,10 +695,6 @@ def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def meta_post_retrieve( @@ -778,10 +745,6 @@ def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def remote_field_classes_list( @@ -862,10 +825,6 @@ def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -1106,10 +1065,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -1170,10 +1125,6 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -1249,10 +1200,6 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def partial_update( @@ -1316,10 +1263,6 @@ async def partial_update( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def viewers_list( @@ -1395,10 +1338,6 @@ async def viewers_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @contextlib.asynccontextmanager @@ -1507,13 +1446,6 @@ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]: raise ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response.text ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, - headers=dict(_response.headers), - body=_response.json(), - cause=e, - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) yield await _stream() @@ -1554,10 +1486,6 @@ async def meta_patch_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def meta_post_retrieve( @@ -1608,10 +1536,6 @@ async def meta_post_retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def remote_field_classes_list( @@ -1692,8 +1616,4 @@ async def remote_field_classes_list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/tickets/types/__init__.py b/src/merge/resources/ticketing/resources/tickets/types/__init__.py index b6b07777..8af738f3 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/__init__.py +++ b/src/merge/resources/ticketing/resources/tickets/types/__init__.py @@ -38,10 +38,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_expand_item.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_expand_item.py index 0c5adbf3..3fd344fd 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsListRequestExpandItem(enum.StrEnum): +class TicketsListRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ASSIGNED_TEAMS = "assigned_teams" ASSIGNEES = "assignees" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_priority.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_priority.py index 3593db73..db455e45 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_priority.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_priority.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsListRequestPriority(enum.StrEnum): +class TicketsListRequestPriority(str, enum.Enum): HIGH = "HIGH" LOW = "LOW" NORMAL = "NORMAL" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_remote_fields.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_remote_fields.py index f8457759..f12ce7d7 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_remote_fields.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsListRequestRemoteFields(enum.StrEnum): +class TicketsListRequestRemoteFields(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_show_enum_origins.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_show_enum_origins.py index 0986e8cf..d077c628 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_show_enum_origins.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsListRequestShowEnumOrigins(enum.StrEnum): +class TicketsListRequestShowEnumOrigins(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_status.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_status.py index 1b2e1c97..edb298e9 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_status.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_list_request_status.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsListRequestStatus(enum.StrEnum): +class TicketsListRequestStatus(str, enum.Enum): EMPTY = "" CLOSED = "CLOSED" IN_PROGRESS = "IN_PROGRESS" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_remote_fields.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_remote_fields.py index 45c671f0..1a43df23 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_remote_fields.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsLiveSearchRetrieveRequestRemoteFields(enum.StrEnum): +class TicketsLiveSearchRetrieveRequestRemoteFields(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_show_enum_origins.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_show_enum_origins.py index 3e77f3ae..203e0ded 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_live_search_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsLiveSearchRetrieveRequestShowEnumOrigins(enum.StrEnum): +class TicketsLiveSearchRetrieveRequestShowEnumOrigins(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_expand_item.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_expand_item.py index 1fd4ebf3..1b50b165 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsRetrieveRequestExpandItem(enum.StrEnum): +class TicketsRetrieveRequestExpandItem(str, enum.Enum): ACCOUNT = "account" ASSIGNED_TEAMS = "assigned_teams" ASSIGNEES = "assignees" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_remote_fields.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_remote_fields.py index 7ebf58c9..18dfa4e7 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_remote_fields.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_remote_fields.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsRetrieveRequestRemoteFields(enum.StrEnum): +class TicketsRetrieveRequestRemoteFields(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_show_enum_origins.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_show_enum_origins.py index acb327de..a0fcfa42 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_show_enum_origins.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_retrieve_request_show_enum_origins.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsRetrieveRequestShowEnumOrigins(enum.StrEnum): +class TicketsRetrieveRequestShowEnumOrigins(str, enum.Enum): PRIORITY = "priority" PRIORITY_STATUS = "priority,status" PRIORITY_STATUS_TICKET_TYPE = "priority,status,ticket_type" diff --git a/src/merge/resources/ticketing/resources/tickets/types/tickets_viewers_list_request_expand_item.py b/src/merge/resources/ticketing/resources/tickets/types/tickets_viewers_list_request_expand_item.py index ce3da1ef..756fcef2 100644 --- a/src/merge/resources/ticketing/resources/tickets/types/tickets_viewers_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/tickets/types/tickets_viewers_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class TicketsViewersListRequestExpandItem(enum.StrEnum): +class TicketsViewersListRequestExpandItem(str, enum.Enum): TEAM = "team" USER = "user" diff --git a/src/merge/resources/ticketing/resources/users/__init__.py b/src/merge/resources/ticketing/resources/users/__init__.py index 47b3e9a5..8e4fa9ff 100644 --- a/src/merge/resources/ticketing/resources/users/__init__.py +++ b/src/merge/resources/ticketing/resources/users/__init__.py @@ -19,10 +19,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/users/raw_client.py b/src/merge/resources/ticketing/resources/users/raw_client.py index 953754a8..4faeb895 100644 --- a/src/merge/resources/ticketing/resources/users/raw_client.py +++ b/src/merge/resources/ticketing/resources/users/raw_client.py @@ -9,14 +9,12 @@ from .....core.datetime_utils import serialize_datetime from .....core.http_response import AsyncHttpResponse, HttpResponse from .....core.jsonable_encoder import jsonable_encoder -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.paginated_user_list import PaginatedUserList from ...types.user import User from .types.users_list_request_expand_item import UsersListRequestExpandItem from .types.users_retrieve_request_expand_item import UsersRetrieveRequestExpandItem -from pydantic import ValidationError class RawUsersClient: @@ -143,10 +141,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def retrieve( @@ -207,10 +201,6 @@ def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -338,10 +328,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def retrieve( @@ -402,8 +388,4 @@ async def retrieve( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/resources/users/types/__init__.py b/src/merge/resources/ticketing/resources/users/types/__init__.py index ae62b2c8..e7ba722e 100644 --- a/src/merge/resources/ticketing/resources/users/types/__init__.py +++ b/src/merge/resources/ticketing/resources/users/types/__init__.py @@ -20,10 +20,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: diff --git a/src/merge/resources/ticketing/resources/users/types/users_list_request_expand_item.py b/src/merge/resources/ticketing/resources/users/types/users_list_request_expand_item.py index 4880852f..5a1b474b 100644 --- a/src/merge/resources/ticketing/resources/users/types/users_list_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/users/types/users_list_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class UsersListRequestExpandItem(enum.StrEnum): +class UsersListRequestExpandItem(str, enum.Enum): ROLES = "roles" TEAMS = "teams" diff --git a/src/merge/resources/ticketing/resources/users/types/users_retrieve_request_expand_item.py b/src/merge/resources/ticketing/resources/users/types/users_retrieve_request_expand_item.py index 1cd8403c..5f734dfc 100644 --- a/src/merge/resources/ticketing/resources/users/types/users_retrieve_request_expand_item.py +++ b/src/merge/resources/ticketing/resources/users/types/users_retrieve_request_expand_item.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ......core import enum - T_Result = typing.TypeVar("T_Result") -class UsersRetrieveRequestExpandItem(enum.StrEnum): +class UsersRetrieveRequestExpandItem(str, enum.Enum): ROLES = "roles" TEAMS = "teams" diff --git a/src/merge/resources/ticketing/resources/webhook_receivers/raw_client.py b/src/merge/resources/ticketing/resources/webhook_receivers/raw_client.py index 873b73cc..9060561d 100644 --- a/src/merge/resources/ticketing/resources/webhook_receivers/raw_client.py +++ b/src/merge/resources/ticketing/resources/webhook_receivers/raw_client.py @@ -6,11 +6,9 @@ from .....core.api_error import ApiError from .....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .....core.http_response import AsyncHttpResponse, HttpResponse -from .....core.parse_error import ParsingError from .....core.request_options import RequestOptions from .....core.unchecked_base_model import construct_type from ...types.webhook_receiver import WebhookReceiver -from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -54,10 +52,6 @@ def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def create( @@ -114,10 +108,6 @@ def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) @@ -159,10 +149,6 @@ async def list( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def create( @@ -219,8 +205,4 @@ async def create( _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/merge/resources/ticketing/types/__init__.py b/src/merge/resources/ticketing/types/__init__.py index c2cf2ca8..477efd5d 100644 --- a/src/merge/resources/ticketing/types/__init__.py +++ b/src/merge/resources/ticketing/types/__init__.py @@ -152,6 +152,8 @@ from .status_fd_5_enum import StatusFd5Enum from .sync_status import SyncStatus from .sync_status_last_sync_result import SyncStatusLastSyncResult + from .sync_status_reason_enum import SyncStatusReasonEnum + from .sync_status_sync_status_reason import SyncStatusSyncStatusReason from .tag import Tag from .team import Team from .ticket import Ticket @@ -339,6 +341,8 @@ "StatusFd5Enum": ".status_fd_5_enum", "SyncStatus": ".sync_status", "SyncStatusLastSyncResult": ".sync_status_last_sync_result", + "SyncStatusReasonEnum": ".sync_status_reason_enum", + "SyncStatusSyncStatusReason": ".sync_status_sync_status_reason", "Tag": ".tag", "Team": ".team", "Ticket": ".ticket", @@ -390,10 +394,8 @@ def __getattr__(attr_name: str) -> typing.Any: raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") try: module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) + result = getattr(module, attr_name) + return result except ImportError as e: raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e except AttributeError as e: @@ -550,6 +552,8 @@ def __dir__(): "StatusFd5Enum", "SyncStatus", "SyncStatusLastSyncResult", + "SyncStatusReasonEnum", + "SyncStatusSyncStatusReason", "Tag", "Team", "Ticket", diff --git a/src/merge/resources/ticketing/types/account.py b/src/merge/resources/ticketing/types/account.py index e0989157..3d1cda4c 100644 --- a/src/merge/resources/ticketing/types/account.py +++ b/src/merge/resources/ticketing/types/account.py @@ -52,7 +52,7 @@ class Account(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/account_details_and_actions.py b/src/merge/resources/ticketing/types/account_details_and_actions.py index cbf29cb3..93c874ed 100644 --- a/src/merge/resources/ticketing/types/account_details_and_actions.py +++ b/src/merge/resources/ticketing/types/account_details_and_actions.py @@ -42,7 +42,7 @@ class AccountDetailsAndActions(UncheckedBaseModel): integration: typing.Optional[AccountDetailsAndActionsIntegration] = None account_type: str completed_at: dt.datetime - integration_specific_fields: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_specific_fields: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/account_details_and_actions_status_enum.py b/src/merge/resources/ticketing/types/account_details_and_actions_status_enum.py index b9ae9efc..df37f582 100644 --- a/src/merge/resources/ticketing/types/account_details_and_actions_status_enum.py +++ b/src/merge/resources/ticketing/types/account_details_and_actions_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class AccountDetailsAndActionsStatusEnum(enum.StrEnum): +class AccountDetailsAndActionsStatusEnum(str, enum.Enum): """ * `COMPLETE` - COMPLETE * `INCOMPLETE` - INCOMPLETE diff --git a/src/merge/resources/ticketing/types/account_integration.py b/src/merge/resources/ticketing/types/account_integration.py index 7bc872ca..ef8b260d 100644 --- a/src/merge/resources/ticketing/types/account_integration.py +++ b/src/merge/resources/ticketing/types/account_integration.py @@ -40,7 +40,9 @@ class AccountIntegration(UncheckedBaseModel): """ slug: typing.Optional[str] = None - api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + api_endpoints_to_documentation_urls: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = ( + pydantic.Field(default=None) + ) """ Mapping of API endpoints to documentation urls for support. Example: {'GET': [['/common-model-scopes', 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], 'POST': []} """ @@ -50,7 +52,7 @@ class AccountIntegration(UncheckedBaseModel): Setup guide URL for third party webhook creation. Exposed in Merge Docs. """ - category_beta_status: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + category_beta_status: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ Category or categories this integration is in beta status for. """ diff --git a/src/merge/resources/ticketing/types/actions_enum.py b/src/merge/resources/ticketing/types/actions_enum.py index 3bf626a1..77b81831 100644 --- a/src/merge/resources/ticketing/types/actions_enum.py +++ b/src/merge/resources/ticketing/types/actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ActionsEnum(enum.StrEnum): +class ActionsEnum(str, enum.Enum): """ * `VIEW` - VIEW * `CREATE` - CREATE diff --git a/src/merge/resources/ticketing/types/advanced_metadata.py b/src/merge/resources/ticketing/types/advanced_metadata.py index aef64bb3..60b5d072 100644 --- a/src/merge/resources/ticketing/types/advanced_metadata.py +++ b/src/merge/resources/ticketing/types/advanced_metadata.py @@ -13,7 +13,7 @@ class AdvancedMetadata(UncheckedBaseModel): description: typing.Optional[str] = None is_required: typing.Optional[bool] = None is_custom: typing.Optional[bool] = None - field_choices: typing.Optional[typing.List[typing.Any]] = None + field_choices: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/attachment.py b/src/merge/resources/ticketing/types/attachment.py index 03ae7f16..13163ced 100644 --- a/src/merge/resources/ticketing/types/attachment.py +++ b/src/merge/resources/ticketing/types/attachment.py @@ -72,7 +72,7 @@ class Attachment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -85,15 +85,8 @@ class Config: extra = pydantic.Extra.allow -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket import Ticket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 +from .attachment_ticket import AttachmentTicket # noqa: E402, F401, I001 -update_forward_refs( - Attachment, - AttachmentTicket=AttachmentTicket, - Ticket=Ticket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +update_forward_refs(Attachment) diff --git a/src/merge/resources/ticketing/types/attachment_request.py b/src/merge/resources/ticketing/types/attachment_request.py index a3fc7f7e..62af0a78 100644 --- a/src/merge/resources/ticketing/types/attachment_request.py +++ b/src/merge/resources/ticketing/types/attachment_request.py @@ -45,8 +45,8 @@ class AttachmentRequest(UncheckedBaseModel): The user who uploaded the attachment. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -58,4 +58,8 @@ class Config: extra = pydantic.Extra.allow +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(AttachmentRequest) diff --git a/src/merge/resources/ticketing/types/categories_enum.py b/src/merge/resources/ticketing/types/categories_enum.py index 82308151..3f2dc5a9 100644 --- a/src/merge/resources/ticketing/types/categories_enum.py +++ b/src/merge/resources/ticketing/types/categories_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoriesEnum(enum.StrEnum): +class CategoriesEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/ticketing/types/category_enum.py b/src/merge/resources/ticketing/types/category_enum.py index 9a2fa8c7..d37e48f5 100644 --- a/src/merge/resources/ticketing/types/category_enum.py +++ b/src/merge/resources/ticketing/types/category_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CategoryEnum(enum.StrEnum): +class CategoryEnum(str, enum.Enum): """ * `hris` - hris * `ats` - ats diff --git a/src/merge/resources/ticketing/types/collection.py b/src/merge/resources/ticketing/types/collection.py index ece05a77..d881c678 100644 --- a/src/merge/resources/ticketing/types/collection.py +++ b/src/merge/resources/ticketing/types/collection.py @@ -94,7 +94,7 @@ class Collection(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -107,6 +107,6 @@ class Config: extra = pydantic.Extra.allow -from .collection_parent_collection import CollectionParentCollection # noqa: E402, I001 +from .collection_parent_collection import CollectionParentCollection # noqa: E402, F401, I001 -update_forward_refs(Collection, CollectionParentCollection=CollectionParentCollection) +update_forward_refs(Collection) diff --git a/src/merge/resources/ticketing/types/collection_access_level_enum.py b/src/merge/resources/ticketing/types/collection_access_level_enum.py index 85d4dd62..63f9cbc7 100644 --- a/src/merge/resources/ticketing/types/collection_access_level_enum.py +++ b/src/merge/resources/ticketing/types/collection_access_level_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionAccessLevelEnum(enum.StrEnum): +class CollectionAccessLevelEnum(str, enum.Enum): """ * `PRIVATE` - PRIVATE * `COMPANY` - COMPANY diff --git a/src/merge/resources/ticketing/types/collection_type_enum.py b/src/merge/resources/ticketing/types/collection_type_enum.py index 4f26dfd5..cd631559 100644 --- a/src/merge/resources/ticketing/types/collection_type_enum.py +++ b/src/merge/resources/ticketing/types/collection_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class CollectionTypeEnum(enum.StrEnum): +class CollectionTypeEnum(str, enum.Enum): """ * `LIST` - LIST * `PROJECT` - PROJECT diff --git a/src/merge/resources/ticketing/types/comment.py b/src/merge/resources/ticketing/types/comment.py index 3933cd4b..34dbbe8e 100644 --- a/src/merge/resources/ticketing/types/comment.py +++ b/src/merge/resources/ticketing/types/comment.py @@ -80,7 +80,7 @@ class Comment(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: @@ -93,4 +93,8 @@ class Config: extra = pydantic.Extra.allow +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(Comment) diff --git a/src/merge/resources/ticketing/types/comment_request.py b/src/merge/resources/ticketing/types/comment_request.py index 0eedd3eb..0f70cc1b 100644 --- a/src/merge/resources/ticketing/types/comment_request.py +++ b/src/merge/resources/ticketing/types/comment_request.py @@ -52,8 +52,8 @@ class CommentRequest(UncheckedBaseModel): Whether or not the comment is internal. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -65,4 +65,8 @@ class Config: extra = pydantic.Extra.allow +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(CommentRequest) diff --git a/src/merge/resources/ticketing/types/comment_response.py b/src/merge/resources/ticketing/types/comment_response.py index 39626bab..68a9e96b 100644 --- a/src/merge/resources/ticketing/types/comment_response.py +++ b/src/merge/resources/ticketing/types/comment_response.py @@ -29,4 +29,8 @@ class Config: extra = pydantic.Extra.allow +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(CommentResponse) diff --git a/src/merge/resources/ticketing/types/contact.py b/src/merge/resources/ticketing/types/contact.py index 76ffeeb4..2e699d49 100644 --- a/src/merge/resources/ticketing/types/contact.py +++ b/src/merge/resources/ticketing/types/contact.py @@ -66,7 +66,7 @@ class Contact(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/contact_request.py b/src/merge/resources/ticketing/types/contact_request.py index 07e8a96b..92ec7aa6 100644 --- a/src/merge/resources/ticketing/types/contact_request.py +++ b/src/merge/resources/ticketing/types/contact_request.py @@ -43,8 +43,8 @@ class ContactRequest(UncheckedBaseModel): The contact's account. """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/data_passthrough_request.py b/src/merge/resources/ticketing/types/data_passthrough_request.py index df3af029..c9f0a799 100644 --- a/src/merge/resources/ticketing/types/data_passthrough_request.py +++ b/src/merge/resources/ticketing/types/data_passthrough_request.py @@ -41,7 +41,7 @@ class DataPassthroughRequest(UncheckedBaseModel): Pass an array of `MultipartFormField` objects in here instead of using the `data` param if `request_format` is set to `MULTIPART`. """ - headers: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ The headers to use for the request (Merge will handle the account's authorization headers). `Content-Type` header is required for passthrough. Choose content type corresponding to expected format of receiving server. """ diff --git a/src/merge/resources/ticketing/types/effect_enum.py b/src/merge/resources/ticketing/types/effect_enum.py index f9aae87b..4b8cafc9 100644 --- a/src/merge/resources/ticketing/types/effect_enum.py +++ b/src/merge/resources/ticketing/types/effect_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EffectEnum(enum.StrEnum): +class EffectEnum(str, enum.Enum): """ * `ALLOWED` - ALLOWED * `DENIED` - DENIED diff --git a/src/merge/resources/ticketing/types/enabled_actions_enum.py b/src/merge/resources/ticketing/types/enabled_actions_enum.py index 604265f8..29cf9839 100644 --- a/src/merge/resources/ticketing/types/enabled_actions_enum.py +++ b/src/merge/resources/ticketing/types/enabled_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EnabledActionsEnum(enum.StrEnum): +class EnabledActionsEnum(str, enum.Enum): """ * `READ` - READ * `WRITE` - WRITE diff --git a/src/merge/resources/ticketing/types/encoding_enum.py b/src/merge/resources/ticketing/types/encoding_enum.py index aa2aa971..7454647e 100644 --- a/src/merge/resources/ticketing/types/encoding_enum.py +++ b/src/merge/resources/ticketing/types/encoding_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EncodingEnum(enum.StrEnum): +class EncodingEnum(str, enum.Enum): """ * `RAW` - RAW * `BASE64` - BASE64 diff --git a/src/merge/resources/ticketing/types/event_type_enum.py b/src/merge/resources/ticketing/types/event_type_enum.py index 1c16772d..537cea3f 100644 --- a/src/merge/resources/ticketing/types/event_type_enum.py +++ b/src/merge/resources/ticketing/types/event_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class EventTypeEnum(enum.StrEnum): +class EventTypeEnum(str, enum.Enum): """ * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY diff --git a/src/merge/resources/ticketing/types/external_target_field_api_response.py b/src/merge/resources/ticketing/types/external_target_field_api_response.py index 3bb4f12a..787b39d6 100644 --- a/src/merge/resources/ticketing/types/external_target_field_api_response.py +++ b/src/merge/resources/ticketing/types/external_target_field_api_response.py @@ -3,61 +3,23 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .external_target_field_api import ExternalTargetFieldApi class ExternalTargetFieldApiResponse(UncheckedBaseModel): - ticket: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Ticket"), - pydantic.Field(alias="Ticket"), - ] = None - comment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Comment"), - pydantic.Field(alias="Comment"), - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Project"), - pydantic.Field(alias="Project"), - ] = None - collection: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Collection"), - pydantic.Field(alias="Collection"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - role: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Role"), pydantic.Field(alias="Role") - ] = None - account: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[ExternalTargetFieldApi]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None + ticket: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Ticket", default=None) + comment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Comment", default=None) + project: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Project", default=None) + collection: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Collection", default=None) + user: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="User", default=None) + role: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Role", default=None) + account: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Account", default=None) + team: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Team", default=None) + attachment: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Attachment", default=None) + tag: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Tag", default=None) + contact: typing.Optional[typing.List[ExternalTargetFieldApi]] = pydantic.Field(alias="Contact", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/field_format_enum.py b/src/merge/resources/ticketing/types/field_format_enum.py index 26052239..2f6eda2f 100644 --- a/src/merge/resources/ticketing/types/field_format_enum.py +++ b/src/merge/resources/ticketing/types/field_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldFormatEnum(enum.StrEnum): +class FieldFormatEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/ticketing/types/field_mapping_api_instance_remote_field.py b/src/merge/resources/ticketing/types/field_mapping_api_instance_remote_field.py index ccd1f990..578a2b10 100644 --- a/src/merge/resources/ticketing/types/field_mapping_api_instance_remote_field.py +++ b/src/merge/resources/ticketing/types/field_mapping_api_instance_remote_field.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance_remote_field_remote_endpoint_info import ( FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo, @@ -14,9 +12,9 @@ class FieldMappingApiInstanceRemoteField(UncheckedBaseModel): remote_key_name: typing.Optional[str] = None - schema_: typing_extensions.Annotated[ - typing.Optional[typing.Dict[str, typing.Any]], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] = None + schema_: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field( + alias="schema", default=None + ) remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/field_mapping_api_instance_response.py b/src/merge/resources/ticketing/types/field_mapping_api_instance_response.py index 62a33658..08b85996 100644 --- a/src/merge/resources/ticketing/types/field_mapping_api_instance_response.py +++ b/src/merge/resources/ticketing/types/field_mapping_api_instance_response.py @@ -3,61 +3,23 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .field_mapping_api_instance import FieldMappingApiInstance class FieldMappingApiInstanceResponse(UncheckedBaseModel): - ticket: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Ticket"), - pydantic.Field(alias="Ticket"), - ] = None - comment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Comment"), - pydantic.Field(alias="Comment"), - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Project"), - pydantic.Field(alias="Project"), - ] = None - collection: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Collection"), - pydantic.Field(alias="Collection"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - role: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Role"), pydantic.Field(alias="Role") - ] = None - account: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Account"), - pydantic.Field(alias="Account"), - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[FieldMappingApiInstance]], - FieldMetadata(alias="Contact"), - pydantic.Field(alias="Contact"), - ] = None + ticket: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Ticket", default=None) + comment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Comment", default=None) + project: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Project", default=None) + collection: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Collection", default=None) + user: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="User", default=None) + role: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Role", default=None) + account: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Account", default=None) + team: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Team", default=None) + attachment: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Attachment", default=None) + tag: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Tag", default=None) + contact: typing.Optional[typing.List[FieldMappingApiInstance]] = pydantic.Field(alias="Contact", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/field_permission_deserializer.py b/src/merge/resources/ticketing/types/field_permission_deserializer.py index 407ed547..1d71ae04 100644 --- a/src/merge/resources/ticketing/types/field_permission_deserializer.py +++ b/src/merge/resources/ticketing/types/field_permission_deserializer.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializer(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/field_permission_deserializer_request.py b/src/merge/resources/ticketing/types/field_permission_deserializer_request.py index 6680c7d2..a4113b46 100644 --- a/src/merge/resources/ticketing/types/field_permission_deserializer_request.py +++ b/src/merge/resources/ticketing/types/field_permission_deserializer_request.py @@ -8,8 +8,8 @@ class FieldPermissionDeserializerRequest(UncheckedBaseModel): - enabled_fields: typing.Optional[typing.List[typing.Any]] = None - disabled_fields: typing.Optional[typing.List[typing.Any]] = None + enabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + disabled_fields: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/field_type_enum.py b/src/merge/resources/ticketing/types/field_type_enum.py index d3635f4b..b99c1309 100644 --- a/src/merge/resources/ticketing/types/field_type_enum.py +++ b/src/merge/resources/ticketing/types/field_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class FieldTypeEnum(enum.StrEnum): +class FieldTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/ticketing/types/issue.py b/src/merge/resources/ticketing/types/issue.py index 5d37505d..df31be95 100644 --- a/src/merge/resources/ticketing/types/issue.py +++ b/src/merge/resources/ticketing/types/issue.py @@ -20,7 +20,7 @@ class Issue(UncheckedBaseModel): """ error_description: str - end_user: typing.Optional[typing.Dict[str, typing.Any]] = None + end_user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None first_incident_time: typing.Optional[dt.datetime] = None last_incident_time: typing.Optional[dt.datetime] = None is_muted: typing.Optional[bool] = None diff --git a/src/merge/resources/ticketing/types/issue_status_enum.py b/src/merge/resources/ticketing/types/issue_status_enum.py index 30d126bb..57eb9618 100644 --- a/src/merge/resources/ticketing/types/issue_status_enum.py +++ b/src/merge/resources/ticketing/types/issue_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class IssueStatusEnum(enum.StrEnum): +class IssueStatusEnum(str, enum.Enum): """ * `ONGOING` - ONGOING * `RESOLVED` - RESOLVED diff --git a/src/merge/resources/ticketing/types/item_format_enum.py b/src/merge/resources/ticketing/types/item_format_enum.py index 6e1e81ce..6fef7236 100644 --- a/src/merge/resources/ticketing/types/item_format_enum.py +++ b/src/merge/resources/ticketing/types/item_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemFormatEnum(enum.StrEnum): +class ItemFormatEnum(str, enum.Enum): """ * `string` - uuid * `number` - url diff --git a/src/merge/resources/ticketing/types/item_type_enum.py b/src/merge/resources/ticketing/types/item_type_enum.py index f92370d0..afcc4dd6 100644 --- a/src/merge/resources/ticketing/types/item_type_enum.py +++ b/src/merge/resources/ticketing/types/item_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ItemTypeEnum(enum.StrEnum): +class ItemTypeEnum(str, enum.Enum): """ * `string` - string * `number` - number diff --git a/src/merge/resources/ticketing/types/language_enum.py b/src/merge/resources/ticketing/types/language_enum.py index 3ff1e9da..44b693f2 100644 --- a/src/merge/resources/ticketing/types/language_enum.py +++ b/src/merge/resources/ticketing/types/language_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LanguageEnum(enum.StrEnum): +class LanguageEnum(str, enum.Enum): """ * `en` - en * `de` - de diff --git a/src/merge/resources/ticketing/types/last_sync_result_enum.py b/src/merge/resources/ticketing/types/last_sync_result_enum.py index f82505a1..ec777ee6 100644 --- a/src/merge/resources/ticketing/types/last_sync_result_enum.py +++ b/src/merge/resources/ticketing/types/last_sync_result_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class LastSyncResultEnum(enum.StrEnum): +class LastSyncResultEnum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/ticketing/types/meta_response.py b/src/merge/resources/ticketing/types/meta_response.py index 0da37619..caa2c831 100644 --- a/src/merge/resources/ticketing/types/meta_response.py +++ b/src/merge/resources/ticketing/types/meta_response.py @@ -9,8 +9,8 @@ class MetaResponse(UncheckedBaseModel): - request_schema: typing.Dict[str, typing.Any] - remote_field_classes: typing.Optional[typing.Dict[str, typing.Any]] = None + request_schema: typing.Dict[str, typing.Optional[typing.Any]] + remote_field_classes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None status: typing.Optional[LinkedAccountStatus] = None has_conditional_params: bool has_required_linked_account_params: bool diff --git a/src/merge/resources/ticketing/types/method_enum.py b/src/merge/resources/ticketing/types/method_enum.py index 4c8376dd..57bcde10 100644 --- a/src/merge/resources/ticketing/types/method_enum.py +++ b/src/merge/resources/ticketing/types/method_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class MethodEnum(enum.StrEnum): +class MethodEnum(str, enum.Enum): """ * `GET` - GET * `OPTIONS` - OPTIONS diff --git a/src/merge/resources/ticketing/types/paginated_attachment_list.py b/src/merge/resources/ticketing/types/paginated_attachment_list.py index 0c012799..e5f0a2cf 100644 --- a/src/merge/resources/ticketing/types/paginated_attachment_list.py +++ b/src/merge/resources/ticketing/types/paginated_attachment_list.py @@ -24,17 +24,8 @@ class Config: extra = pydantic.Extra.allow -from .attachment import Attachment # noqa: E402, I001 -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket import Ticket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 - -update_forward_refs( - PaginatedAttachmentList, - Attachment=Attachment, - AttachmentTicket=AttachmentTicket, - Ticket=Ticket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + +update_forward_refs(PaginatedAttachmentList) diff --git a/src/merge/resources/ticketing/types/paginated_collection_list.py b/src/merge/resources/ticketing/types/paginated_collection_list.py index a31e965a..ef8d33e3 100644 --- a/src/merge/resources/ticketing/types/paginated_collection_list.py +++ b/src/merge/resources/ticketing/types/paginated_collection_list.py @@ -24,9 +24,6 @@ class Config: extra = pydantic.Extra.allow -from .collection import Collection # noqa: E402, I001 -from .collection_parent_collection import CollectionParentCollection # noqa: E402, I001 +from .collection import Collection # noqa: E402, F401, I001 -update_forward_refs( - PaginatedCollectionList, Collection=Collection, CollectionParentCollection=CollectionParentCollection -) +update_forward_refs(PaginatedCollectionList) diff --git a/src/merge/resources/ticketing/types/paginated_comment_list.py b/src/merge/resources/ticketing/types/paginated_comment_list.py index b034fe2f..08c8a4f8 100644 --- a/src/merge/resources/ticketing/types/paginated_comment_list.py +++ b/src/merge/resources/ticketing/types/paginated_comment_list.py @@ -25,4 +25,8 @@ class Config: extra = pydantic.Extra.allow +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(PaginatedCommentList) diff --git a/src/merge/resources/ticketing/types/paginated_ticket_list.py b/src/merge/resources/ticketing/types/paginated_ticket_list.py index 4a4b67ae..6c4128a0 100644 --- a/src/merge/resources/ticketing/types/paginated_ticket_list.py +++ b/src/merge/resources/ticketing/types/paginated_ticket_list.py @@ -24,17 +24,8 @@ class Config: extra = pydantic.Extra.allow -from .attachment import Attachment # noqa: E402, I001 -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket import Ticket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 - -update_forward_refs( - PaginatedTicketList, - Attachment=Attachment, - AttachmentTicket=AttachmentTicket, - Ticket=Ticket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + +update_forward_refs(PaginatedTicketList) diff --git a/src/merge/resources/ticketing/types/patched_ticket_request.py b/src/merge/resources/ticketing/types/patched_ticket_request.py index 036d79df..8d538874 100644 --- a/src/merge/resources/ticketing/types/patched_ticket_request.py +++ b/src/merge/resources/ticketing/types/patched_ticket_request.py @@ -127,8 +127,8 @@ class PatchedTicketRequest(UncheckedBaseModel): * `LOW` - LOW """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: @@ -141,4 +141,8 @@ class Config: extra = pydantic.Extra.allow +from .collection import Collection # noqa: E402, F401, I001 +from .attachment import Attachment # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(PatchedTicketRequest) diff --git a/src/merge/resources/ticketing/types/permission.py b/src/merge/resources/ticketing/types/permission.py index 1d3995d0..bb45eeff 100644 --- a/src/merge/resources/ticketing/types/permission.py +++ b/src/merge/resources/ticketing/types/permission.py @@ -59,7 +59,7 @@ class Permission(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/permission_request.py b/src/merge/resources/ticketing/types/permission_request.py index 7c64852f..4d4252b2 100644 --- a/src/merge/resources/ticketing/types/permission_request.py +++ b/src/merge/resources/ticketing/types/permission_request.py @@ -42,8 +42,8 @@ class PermissionRequest(UncheckedBaseModel): applied_to_roles: typing.Optional[typing.List[typing.Optional[str]]] = None applied_to_teams: typing.Optional[typing.List[typing.Optional[str]]] = None applied_to_collections: typing.Optional[typing.List[typing.Optional[str]]] = None - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/priority_enum.py b/src/merge/resources/ticketing/types/priority_enum.py index ecdcc5df..73a079d4 100644 --- a/src/merge/resources/ticketing/types/priority_enum.py +++ b/src/merge/resources/ticketing/types/priority_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class PriorityEnum(enum.StrEnum): +class PriorityEnum(str, enum.Enum): """ * `URGENT` - URGENT * `HIGH` - HIGH diff --git a/src/merge/resources/ticketing/types/project.py b/src/merge/resources/ticketing/types/project.py index 9ed72da7..51ce64c5 100644 --- a/src/merge/resources/ticketing/types/project.py +++ b/src/merge/resources/ticketing/types/project.py @@ -50,7 +50,7 @@ class Project(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/remote_data.py b/src/merge/resources/ticketing/types/remote_data.py index 2026f05a..f34bec80 100644 --- a/src/merge/resources/ticketing/types/remote_data.py +++ b/src/merge/resources/ticketing/types/remote_data.py @@ -22,7 +22,7 @@ class RemoteData(UncheckedBaseModel): The third-party API path that is being called. """ - data: typing.Optional[typing.Any] = pydantic.Field(default=None) + data: typing.Optional[typing.Optional[typing.Any]] = pydantic.Field(default=None) """ The data returned from the third-party for this object in its original, unnormalized format. """ diff --git a/src/merge/resources/ticketing/types/remote_endpoint_info.py b/src/merge/resources/ticketing/types/remote_endpoint_info.py index ffa70b94..07ceff6a 100644 --- a/src/merge/resources/ticketing/types/remote_endpoint_info.py +++ b/src/merge/resources/ticketing/types/remote_endpoint_info.py @@ -10,7 +10,7 @@ class RemoteEndpointInfo(UncheckedBaseModel): method: str url_path: str - field_traversal_path: typing.List[typing.Any] + field_traversal_path: typing.List[typing.Optional[typing.Any]] if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/remote_field.py b/src/merge/resources/ticketing/types/remote_field.py index 556c69ef..1a9272f0 100644 --- a/src/merge/resources/ticketing/types/remote_field.py +++ b/src/merge/resources/ticketing/types/remote_field.py @@ -10,7 +10,7 @@ class RemoteField(UncheckedBaseModel): remote_field_class: RemoteFieldRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/remote_field_api.py b/src/merge/resources/ticketing/types/remote_field_api.py index 79cf45c4..4c66a23b 100644 --- a/src/merge/resources/ticketing/types/remote_field_api.py +++ b/src/merge/resources/ticketing/types/remote_field_api.py @@ -3,9 +3,7 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .advanced_metadata import AdvancedMetadata from .remote_endpoint_info import RemoteEndpointInfo @@ -13,12 +11,10 @@ class RemoteFieldApi(UncheckedBaseModel): - schema_: typing_extensions.Annotated[ - typing.Dict[str, typing.Any], FieldMetadata(alias="schema"), pydantic.Field(alias="schema") - ] + schema_: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field(alias="schema") remote_key_name: str remote_endpoint_info: RemoteEndpointInfo - example_values: typing.Optional[typing.List[typing.Any]] = None + example_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None advanced_metadata: typing.Optional[AdvancedMetadata] = None coverage: typing.Optional[RemoteFieldApiCoverage] = None diff --git a/src/merge/resources/ticketing/types/remote_field_api_response.py b/src/merge/resources/ticketing/types/remote_field_api_response.py index c493c279..e844cd77 100644 --- a/src/merge/resources/ticketing/types/remote_field_api_response.py +++ b/src/merge/resources/ticketing/types/remote_field_api_response.py @@ -3,51 +3,23 @@ import typing import pydantic -import typing_extensions from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from ....core.serialization import FieldMetadata from ....core.unchecked_base_model import UncheckedBaseModel from .remote_field_api import RemoteFieldApi class RemoteFieldApiResponse(UncheckedBaseModel): - ticket: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Ticket"), pydantic.Field(alias="Ticket") - ] = None - comment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Comment"), pydantic.Field(alias="Comment") - ] = None - project: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Project"), pydantic.Field(alias="Project") - ] = None - collection: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Collection"), - pydantic.Field(alias="Collection"), - ] = None - user: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="User"), pydantic.Field(alias="User") - ] = None - role: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Role"), pydantic.Field(alias="Role") - ] = None - account: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Account"), pydantic.Field(alias="Account") - ] = None - team: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Team"), pydantic.Field(alias="Team") - ] = None - attachment: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], - FieldMetadata(alias="Attachment"), - pydantic.Field(alias="Attachment"), - ] = None - tag: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Tag"), pydantic.Field(alias="Tag") - ] = None - contact: typing_extensions.Annotated[ - typing.Optional[typing.List[RemoteFieldApi]], FieldMetadata(alias="Contact"), pydantic.Field(alias="Contact") - ] = None + ticket: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Ticket", default=None) + comment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Comment", default=None) + project: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Project", default=None) + collection: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Collection", default=None) + user: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="User", default=None) + role: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Role", default=None) + account: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Account", default=None) + team: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Team", default=None) + attachment: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Attachment", default=None) + tag: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Tag", default=None) + contact: typing.Optional[typing.List[RemoteFieldApi]] = pydantic.Field(alias="Contact", default=None) if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/remote_field_class_field_choices_item.py b/src/merge/resources/ticketing/types/remote_field_class_field_choices_item.py index 0b1a5faa..9003f782 100644 --- a/src/merge/resources/ticketing/types/remote_field_class_field_choices_item.py +++ b/src/merge/resources/ticketing/types/remote_field_class_field_choices_item.py @@ -8,7 +8,7 @@ class RemoteFieldClassFieldChoicesItem(UncheckedBaseModel): - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None display_name: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/remote_field_request.py b/src/merge/resources/ticketing/types/remote_field_request.py index e3c6e0fc..69bc39da 100644 --- a/src/merge/resources/ticketing/types/remote_field_request.py +++ b/src/merge/resources/ticketing/types/remote_field_request.py @@ -10,7 +10,7 @@ class RemoteFieldRequest(UncheckedBaseModel): remote_field_class: RemoteFieldRequestRemoteFieldClass - value: typing.Optional[typing.Any] = None + value: typing.Optional[typing.Optional[typing.Any]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/remote_response.py b/src/merge/resources/ticketing/types/remote_response.py index 2804a254..af181fc0 100644 --- a/src/merge/resources/ticketing/types/remote_response.py +++ b/src/merge/resources/ticketing/types/remote_response.py @@ -21,10 +21,10 @@ class RemoteResponse(UncheckedBaseModel): method: str path: str status: int - response: typing.Any - response_headers: typing.Optional[typing.Dict[str, typing.Any]] = None + response: typing.Optional[typing.Any] = None + response_headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None response_type: typing.Optional[ResponseTypeEnum] = None - headers: typing.Optional[typing.Dict[str, typing.Any]] = None + headers: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/merge/resources/ticketing/types/request_format_enum.py b/src/merge/resources/ticketing/types/request_format_enum.py index b8e2234c..21c272f2 100644 --- a/src/merge/resources/ticketing/types/request_format_enum.py +++ b/src/merge/resources/ticketing/types/request_format_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RequestFormatEnum(enum.StrEnum): +class RequestFormatEnum(str, enum.Enum): """ * `JSON` - JSON * `XML` - XML diff --git a/src/merge/resources/ticketing/types/response_type_enum.py b/src/merge/resources/ticketing/types/response_type_enum.py index 8a72c2a9..ef241302 100644 --- a/src/merge/resources/ticketing/types/response_type_enum.py +++ b/src/merge/resources/ticketing/types/response_type_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class ResponseTypeEnum(enum.StrEnum): +class ResponseTypeEnum(str, enum.Enum): """ * `JSON` - JSON * `BASE64_GZIP` - BASE64_GZIP diff --git a/src/merge/resources/ticketing/types/role.py b/src/merge/resources/ticketing/types/role.py index f718f9ed..8d4109ff 100644 --- a/src/merge/resources/ticketing/types/role.py +++ b/src/merge/resources/ticketing/types/role.py @@ -61,7 +61,7 @@ class Role(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/role_enum.py b/src/merge/resources/ticketing/types/role_enum.py index 394ec992..8f2c9b1d 100644 --- a/src/merge/resources/ticketing/types/role_enum.py +++ b/src/merge/resources/ticketing/types/role_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class RoleEnum(enum.StrEnum): +class RoleEnum(str, enum.Enum): """ * `ADMIN` - ADMIN * `DEVELOPER` - DEVELOPER diff --git a/src/merge/resources/ticketing/types/selective_sync_configurations_usage_enum.py b/src/merge/resources/ticketing/types/selective_sync_configurations_usage_enum.py index e8e318c0..9ff43813 100644 --- a/src/merge/resources/ticketing/types/selective_sync_configurations_usage_enum.py +++ b/src/merge/resources/ticketing/types/selective_sync_configurations_usage_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class SelectiveSyncConfigurationsUsageEnum(enum.StrEnum): +class SelectiveSyncConfigurationsUsageEnum(str, enum.Enum): """ * `IN_NEXT_SYNC` - IN_NEXT_SYNC * `IN_LAST_SYNC` - IN_LAST_SYNC diff --git a/src/merge/resources/ticketing/types/status_fd_5_enum.py b/src/merge/resources/ticketing/types/status_fd_5_enum.py index 6b851a79..d753f77c 100644 --- a/src/merge/resources/ticketing/types/status_fd_5_enum.py +++ b/src/merge/resources/ticketing/types/status_fd_5_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class StatusFd5Enum(enum.StrEnum): +class StatusFd5Enum(str, enum.Enum): """ * `SYNCING` - SYNCING * `DONE` - DONE diff --git a/src/merge/resources/ticketing/types/sync_status.py b/src/merge/resources/ticketing/types/sync_status.py index 4a628c4f..af29a5a1 100644 --- a/src/merge/resources/ticketing/types/sync_status.py +++ b/src/merge/resources/ticketing/types/sync_status.py @@ -9,6 +9,7 @@ from .selective_sync_configurations_usage_enum import SelectiveSyncConfigurationsUsageEnum from .status_fd_5_enum import StatusFd5Enum from .sync_status_last_sync_result import SyncStatusLastSyncResult +from .sync_status_sync_status_reason import SyncStatusSyncStatusReason class SyncStatus(UncheckedBaseModel): @@ -27,7 +28,13 @@ class SyncStatus(UncheckedBaseModel): next_sync_start: typing.Optional[dt.datetime] = None last_sync_result: typing.Optional[SyncStatusLastSyncResult] = None last_sync_finished: typing.Optional[dt.datetime] = None + data_fresh_as_of: typing.Optional[dt.datetime] = None status: StatusFd5Enum + sync_status_reason: typing.Optional[SyncStatusSyncStatusReason] = pydantic.Field(default=None) + """ + The reason a model with a `SYNCING` status is temporarily not progressing. `RATE_LIMITED` indicates the model is paused to respect the data provider's rate limits. `WAITING_ON_OTHER_MODELS` indicates the model is waiting for other models to finish syncing. + """ + is_initial_sync: bool selective_sync_configurations_usage: typing.Optional[SelectiveSyncConfigurationsUsageEnum] = None diff --git a/src/merge/resources/ticketing/types/sync_status_reason_enum.py b/src/merge/resources/ticketing/types/sync_status_reason_enum.py new file mode 100644 index 00000000..bf5e1c15 --- /dev/null +++ b/src/merge/resources/ticketing/types/sync_status_reason_enum.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class SyncStatusReasonEnum(str, enum.Enum): + RATE_LIMITED = "RATE_LIMITED" + WAITING_ON_OTHER_MODELS = "WAITING_ON_OTHER_MODELS" + + def visit( + self, rate_limited: typing.Callable[[], T_Result], waiting_on_other_models: typing.Callable[[], T_Result] + ) -> T_Result: + if self is SyncStatusReasonEnum.RATE_LIMITED: + return rate_limited() + if self is SyncStatusReasonEnum.WAITING_ON_OTHER_MODELS: + return waiting_on_other_models() diff --git a/src/merge/resources/ticketing/types/sync_status_sync_status_reason.py b/src/merge/resources/ticketing/types/sync_status_sync_status_reason.py new file mode 100644 index 00000000..56da308e --- /dev/null +++ b/src/merge/resources/ticketing/types/sync_status_sync_status_reason.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .sync_status_reason_enum import SyncStatusReasonEnum + +SyncStatusSyncStatusReason = typing.Union[SyncStatusReasonEnum, str] diff --git a/src/merge/resources/ticketing/types/tag.py b/src/merge/resources/ticketing/types/tag.py index 25a95613..c5f85543 100644 --- a/src/merge/resources/ticketing/types/tag.py +++ b/src/merge/resources/ticketing/types/tag.py @@ -45,7 +45,7 @@ class Tag(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/team.py b/src/merge/resources/ticketing/types/team.py index 3ebbaab0..0cd15521 100644 --- a/src/merge/resources/ticketing/types/team.py +++ b/src/merge/resources/ticketing/types/team.py @@ -50,7 +50,7 @@ class Team(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/src/merge/resources/ticketing/types/ticket.py b/src/merge/resources/ticketing/types/ticket.py index 2ff957a2..c44fefb3 100644 --- a/src/merge/resources/ticketing/types/ticket.py +++ b/src/merge/resources/ticketing/types/ticket.py @@ -163,7 +163,7 @@ class Ticket(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None remote_fields: typing.Optional[typing.List[RemoteField]] = None @@ -177,15 +177,9 @@ class Config: extra = pydantic.Extra.allow -from .attachment import Attachment # noqa: E402, I001 -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .attachment import Attachment # noqa: E402, F401, I001 +from .ticket_parent_ticket import TicketParentTicket # noqa: E402, F401, I001 +from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, F401, I001 -update_forward_refs( - Ticket, - Attachment=Attachment, - AttachmentTicket=AttachmentTicket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +update_forward_refs(Ticket) diff --git a/src/merge/resources/ticketing/types/ticket_access_enum.py b/src/merge/resources/ticketing/types/ticket_access_enum.py index b3912d4b..860f2f52 100644 --- a/src/merge/resources/ticketing/types/ticket_access_enum.py +++ b/src/merge/resources/ticketing/types/ticket_access_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TicketAccessEnum(enum.StrEnum): +class TicketAccessEnum(str, enum.Enum): """ * `ALL` - ALL * `ASSIGNED_ONLY` - ASSIGNED_ONLY diff --git a/src/merge/resources/ticketing/types/ticket_access_level_enum.py b/src/merge/resources/ticketing/types/ticket_access_level_enum.py index 81298afa..c02bef7d 100644 --- a/src/merge/resources/ticketing/types/ticket_access_level_enum.py +++ b/src/merge/resources/ticketing/types/ticket_access_level_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TicketAccessLevelEnum(enum.StrEnum): +class TicketAccessLevelEnum(str, enum.Enum): """ * `COMPANY` - COMPANY * `PUBLIC` - PUBLIC diff --git a/src/merge/resources/ticketing/types/ticket_actions_enum.py b/src/merge/resources/ticketing/types/ticket_actions_enum.py index a2751080..03e873d8 100644 --- a/src/merge/resources/ticketing/types/ticket_actions_enum.py +++ b/src/merge/resources/ticketing/types/ticket_actions_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TicketActionsEnum(enum.StrEnum): +class TicketActionsEnum(str, enum.Enum): """ * `VIEW` - VIEW * `CREATE` - CREATE diff --git a/src/merge/resources/ticketing/types/ticket_request.py b/src/merge/resources/ticketing/types/ticket_request.py index 8b32159b..ed0e1ec4 100644 --- a/src/merge/resources/ticketing/types/ticket_request.py +++ b/src/merge/resources/ticketing/types/ticket_request.py @@ -133,8 +133,8 @@ class TicketRequest(UncheckedBaseModel): * `LOW` - LOW """ - integration_params: typing.Optional[typing.Dict[str, typing.Any]] = None - linked_account_params: typing.Optional[typing.Dict[str, typing.Any]] = None + integration_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + linked_account_params: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_fields: typing.Optional[typing.List[RemoteFieldRequest]] = None if IS_PYDANTIC_V2: @@ -147,4 +147,8 @@ class Config: extra = pydantic.Extra.allow +from .collection import Collection # noqa: E402, F401, I001 +from .attachment import Attachment # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + update_forward_refs(TicketRequest) diff --git a/src/merge/resources/ticketing/types/ticket_response.py b/src/merge/resources/ticketing/types/ticket_response.py index d3f11816..1512f825 100644 --- a/src/merge/resources/ticketing/types/ticket_response.py +++ b/src/merge/resources/ticketing/types/ticket_response.py @@ -28,17 +28,8 @@ class Config: extra = pydantic.Extra.allow -from .attachment import Attachment # noqa: E402, I001 -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket import Ticket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 - -update_forward_refs( - TicketResponse, - Attachment=Attachment, - AttachmentTicket=AttachmentTicket, - Ticket=Ticket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + +update_forward_refs(TicketResponse) diff --git a/src/merge/resources/ticketing/types/ticket_status_enum.py b/src/merge/resources/ticketing/types/ticket_status_enum.py index 40757a9e..55651325 100644 --- a/src/merge/resources/ticketing/types/ticket_status_enum.py +++ b/src/merge/resources/ticketing/types/ticket_status_enum.py @@ -1,13 +1,12 @@ # This file was auto-generated by Fern from our API Definition. +import enum import typing -from ....core import enum - T_Result = typing.TypeVar("T_Result") -class TicketStatusEnum(enum.StrEnum): +class TicketStatusEnum(str, enum.Enum): """ * `OPEN` - OPEN * `CLOSED` - CLOSED diff --git a/src/merge/resources/ticketing/types/ticketing_attachment_response.py b/src/merge/resources/ticketing/types/ticketing_attachment_response.py index e88c1097..1afad69d 100644 --- a/src/merge/resources/ticketing/types/ticketing_attachment_response.py +++ b/src/merge/resources/ticketing/types/ticketing_attachment_response.py @@ -28,17 +28,8 @@ class Config: extra = pydantic.Extra.allow -from .attachment import Attachment # noqa: E402, I001 -from .attachment_ticket import AttachmentTicket # noqa: E402, I001 -from .ticket import Ticket # noqa: E402, I001 -from .ticket_attachments_item import TicketAttachmentsItem # noqa: E402, I001 -from .ticket_parent_ticket import TicketParentTicket # noqa: E402, I001 - -update_forward_refs( - TicketingAttachmentResponse, - Attachment=Attachment, - AttachmentTicket=AttachmentTicket, - Ticket=Ticket, - TicketAttachmentsItem=TicketAttachmentsItem, - TicketParentTicket=TicketParentTicket, -) +from .attachment import Attachment # noqa: E402, F401, I001 +from .collection import Collection # noqa: E402, F401, I001 +from .ticket import Ticket # noqa: E402, F401, I001 + +update_forward_refs(TicketingAttachmentResponse) diff --git a/src/merge/resources/ticketing/types/user.py b/src/merge/resources/ticketing/types/user.py index 336d4011..b89d230c 100644 --- a/src/merge/resources/ticketing/types/user.py +++ b/src/merge/resources/ticketing/types/user.py @@ -65,7 +65,7 @@ class User(UncheckedBaseModel): Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). """ - field_mappings: typing.Optional[typing.Dict[str, typing.Any]] = None + field_mappings: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None remote_data: typing.Optional[typing.List[RemoteData]] = None if IS_PYDANTIC_V2: diff --git a/tests/custom/test_parsing_error_unreachable.py b/tests/custom/test_parsing_error_unreachable.py deleted file mode 100644 index 6e49e5f5..00000000 --- a/tests/custom/test_parsing_error_unreachable.py +++ /dev/null @@ -1,76 +0,0 @@ -import httpx -import pydantic -import pytest - -from merge import Merge -from merge.core import ApiError, ParsingError -from merge.core.http_response import HttpResponse -from merge.core.unchecked_base_model import construct_type -from merge.resources.accounting.types.account import Account -from merge.resources.accounting.types.paginated_account_list import PaginatedAccountList - - -MALFORMED_ACCOUNT = { - "id": 12345, - "name": 999, - "current_balance": "not-a-number", - "created_at": "definitely-not-a-datetime", - "status": {"unexpected": "shape"}, - "company": ["wrong", "container"], - "classification": 3.14, - "totally_unexpected_key": {"nested": [1, 2, 3]}, -} - -MALFORMED_PAGE = { - "next": 42, - "previous": {"not": "a-string"}, - "results": [MALFORMED_ACCOUNT, "a-bare-string-not-an-object", 777], -} - - -def _client_with_response(response: httpx.Response) -> Merge: - def handler(request: httpx.Request) -> httpx.Response: - return response - - httpx_client = httpx.Client(transport=httpx.MockTransport(handler)) - return Merge(account_token="test-token", api_key="test-key", httpx_client=httpx_client) - - -def test_malformed_input_is_genuinely_schema_violating(): - with pytest.raises(pydantic.ValidationError): - Account.model_validate(MALFORMED_ACCOUNT) - - -def test_parsing_error_is_not_in_the_api_error_hierarchy(): - assert not issubclass(ParsingError, ApiError) - assert not issubclass(ApiError, ParsingError) - - -def test_construct_type_does_not_raise_on_malformed_account(): - result = construct_type(type_=Account, object_=MALFORMED_ACCOUNT) - assert isinstance(result, Account) - - -def test_construct_type_does_not_raise_on_malformed_paginated_list(): - result = construct_type(type_=PaginatedAccountList, object_=MALFORMED_PAGE) - assert isinstance(result, PaginatedAccountList) - - -def test_success_path_with_schema_violating_body_never_raises_parsing_error(): - client = _client_with_response(httpx.Response(200, json=MALFORMED_PAGE)) - result = client.accounting.accounts.list() - assert isinstance(result, PaginatedAccountList) - - -def test_raw_success_path_returns_http_response_not_parsing_error(): - client = _client_with_response(httpx.Response(200, json=MALFORMED_PAGE)) - raw = client.accounting.accounts.with_raw_response.list() - assert isinstance(raw, HttpResponse) - - -def test_error_path_raises_api_error_not_parsing_error(): - client = _client_with_response(httpx.Response(400, text="gateway error")) - with pytest.raises(ApiError) as exc_info: - client.accounting.accounts.list() - assert not isinstance(exc_info.value, ParsingError) - assert exc_info.value.status_code == 400 diff --git a/tests/custom/test_pydantic_config_no_deprecation.py b/tests/custom/test_pydantic_config_no_deprecation.py deleted file mode 100644 index d97af000..00000000 --- a/tests/custom/test_pydantic_config_no_deprecation.py +++ /dev/null @@ -1,60 +0,0 @@ -import warnings - -import pydantic -import pytest - -from merge.core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from merge.core.unchecked_base_model import UncheckedBaseModel -from merge.resources.accounting.types.account import Account -from merge.resources.accounting.types.field_mapping_api_instance_response import ( - FieldMappingApiInstanceResponse, -) - -pytestmark = pytest.mark.skipif(not IS_PYDANTIC_V2, reason="config deprecation only applies on pydantic v2") - -_DEPRECATION_MARKERS = ( - "class-based `config`", - "allow_population_by_field_name", - "smart_union", - "Valid config keys have changed", -) - - -def _pydantic_config_warnings(records): - hits = [] - for r in records: - if not issubclass(r.category, (DeprecationWarning, UserWarning, PendingDeprecationWarning)): - continue - text = str(r.message) - if any(marker in text for marker in _DEPRECATION_MARKERS): - hits.append(text) - return hits - - -def test_defining_a_subclass_emits_no_config_deprecation_warnings(): - with warnings.catch_warnings(record=True) as records: - warnings.simplefilter("always") - - class _Probe(UncheckedBaseModel): - name: str = pydantic.Field(default="", alias="Name") - - _Probe(Name="probe") - - hits = _pydantic_config_warnings(records) - assert hits == [], f"deprecated pydantic config resurfaced (issue #117): {hits}" - - -def test_instantiating_real_models_emits_no_config_deprecation_warnings(): - with warnings.catch_warnings(record=True) as records: - warnings.simplefilter("always") - Account(name="Cash", id="123") - FieldMappingApiInstanceResponse(account=[]) - - hits = _pydantic_config_warnings(records) - assert hits == [], f"deprecated pydantic config resurfaced (issue #117): {hits}" - - -def test_base_model_config_has_no_deprecated_v1_keys(): - config = UniversalBaseModel.model_config - assert "smart_union" not in config - assert "allow_population_by_field_name" not in config diff --git a/tests/utils/test_http_client.py b/tests/utils/test_http_client.py index 457fc63b..10910c68 100644 --- a/tests/utils/test_http_client.py +++ b/tests/utils/test_http_client.py @@ -1,57 +1,13 @@ # This file was auto-generated by Fern from our API Definition. -from typing import Any, Dict - -import pytest - -from merge.core.http_client import ( - AsyncHttpClient, - HttpClient, - _build_url, - get_request_body, - remove_none_from_dict, -) +from merge.core.http_client import get_request_body from merge.core.request_options import RequestOptions -# Stub clients for testing HttpClient and AsyncHttpClient -class _DummySyncClient: - """A minimal stub for httpx.Client that records request arguments.""" - - def __init__(self) -> None: - self.last_request_kwargs: Dict[str, Any] = {} - - def request(self, **kwargs: Any) -> "_DummyResponse": - self.last_request_kwargs = kwargs - return _DummyResponse() - - -class _DummyAsyncClient: - """A minimal stub for httpx.AsyncClient that records request arguments.""" - - def __init__(self) -> None: - self.last_request_kwargs: Dict[str, Any] = {} - - async def request(self, **kwargs: Any) -> "_DummyResponse": - self.last_request_kwargs = kwargs - return _DummyResponse() - - -class _DummyResponse: - """A minimal stub for httpx.Response.""" - - status_code = 200 - headers: Dict[str, str] = {} - - def get_request_options() -> RequestOptions: return {"additional_body_parameters": {"see you": "later"}} -def get_request_options_with_none() -> RequestOptions: - return {"additional_body_parameters": {"see you": "later", "optional": None}} - - def test_get_json_request_body() -> None: json_body, data_body = get_request_body(json={"hello": "world"}, data=None, request_options=None, omit=None) assert json_body == {"hello": "world"} @@ -92,209 +48,14 @@ def test_get_none_request_body() -> None: def test_get_empty_json_request_body() -> None: - """Test that implicit empty bodies (json=None) are collapsed to None.""" unrelated_request_options: RequestOptions = {"max_retries": 3} json_body, data_body = get_request_body(json=None, data=None, request_options=unrelated_request_options, omit=None) assert json_body is None assert data_body is None - -def test_explicit_empty_json_body_is_preserved() -> None: - """Test that explicit empty bodies (json={}) are preserved and sent as {}. - - This is important for endpoints where the request body is required but all - fields are optional. The server expects valid JSON ({}) not an empty body. - """ - unrelated_request_options: RequestOptions = {"max_retries": 3} - - # Explicit json={} should be preserved - json_body, data_body = get_request_body(json={}, data=None, request_options=unrelated_request_options, omit=None) - assert json_body == {} - assert data_body is None - - # Explicit data={} should also be preserved - json_body2, data_body2 = get_request_body(json=None, data={}, request_options=unrelated_request_options, omit=None) - assert json_body2 is None - assert data_body2 == {} - - -def test_json_body_preserves_none_values() -> None: - """Test that JSON bodies preserve None values (they become JSON null).""" - json_body, data_body = get_request_body( - json={"hello": "world", "optional": None}, data=None, request_options=None, omit=None - ) - # JSON bodies should preserve None values - assert json_body == {"hello": "world", "optional": None} - assert data_body is None - - -def test_data_body_preserves_none_values_without_multipart() -> None: - """Test that data bodies preserve None values when not using multipart. - - The filtering of None values happens in HttpClient.request/stream methods, - not in get_request_body. This test verifies get_request_body doesn't filter None. - """ - json_body, data_body = get_request_body( - json=None, data={"hello": "world", "optional": None}, request_options=None, omit=None - ) - # get_request_body should preserve None values in data body - # The filtering happens later in HttpClient.request when multipart is detected - assert data_body == {"hello": "world", "optional": None} - assert json_body is None - - -def test_remove_none_from_dict_filters_none_values() -> None: - """Test that remove_none_from_dict correctly filters out None values.""" - original = {"hello": "world", "optional": None, "another": "value", "also_none": None} - filtered = remove_none_from_dict(original) - assert filtered == {"hello": "world", "another": "value"} - # Original should not be modified - assert original == {"hello": "world", "optional": None, "another": "value", "also_none": None} - - -def test_remove_none_from_dict_empty_dict() -> None: - """Test that remove_none_from_dict handles empty dict.""" - assert remove_none_from_dict({}) == {} - - -def test_remove_none_from_dict_all_none() -> None: - """Test that remove_none_from_dict handles dict with all None values.""" - assert remove_none_from_dict({"a": None, "b": None}) == {} - - -def test_http_client_does_not_pass_empty_params_list() -> None: - """Test that HttpClient passes params=None when params are empty. - - This prevents httpx from stripping existing query parameters from the URL, - which happens when params=[] or params={} is passed. - """ - dummy_client = _DummySyncClient() - http_client = HttpClient( - httpx_client=dummy_client, # type: ignore[arg-type] - base_timeout=lambda: None, - base_headers=lambda: {}, - base_url=lambda: "https://example.com", - ) - - # Use a path with query params (e.g., pagination cursor URL) - http_client.request( - path="resource?after=123", - method="GET", - params=None, - request_options=None, - ) - - # We care that httpx receives params=None, not [] or {} - assert "params" in dummy_client.last_request_kwargs - assert dummy_client.last_request_kwargs["params"] is None - - # Verify the query string in the URL is preserved - url = str(dummy_client.last_request_kwargs["url"]) - assert "after=123" in url, f"Expected query param 'after=123' in URL, got: {url}" - - -def test_http_client_passes_encoded_params_when_present() -> None: - """Test that HttpClient passes encoded params when params are provided.""" - dummy_client = _DummySyncClient() - http_client = HttpClient( - httpx_client=dummy_client, # type: ignore[arg-type] - base_timeout=lambda: None, - base_headers=lambda: {}, - base_url=lambda: "https://example.com/resource", - ) - - http_client.request( - path="", - method="GET", - params={"after": "456"}, - request_options=None, - ) - - params = dummy_client.last_request_kwargs["params"] - # For a simple dict, encode_query should give a single (key, value) tuple - assert params == [("after", "456")] - - -@pytest.mark.asyncio -async def test_async_http_client_does_not_pass_empty_params_list() -> None: - """Test that AsyncHttpClient passes params=None when params are empty. - - This prevents httpx from stripping existing query parameters from the URL, - which happens when params=[] or params={} is passed. - """ - dummy_client = _DummyAsyncClient() - http_client = AsyncHttpClient( - httpx_client=dummy_client, # type: ignore[arg-type] - base_timeout=lambda: None, - base_headers=lambda: {}, - base_url=lambda: "https://example.com", - async_base_headers=None, - ) - - # Use a path with query params (e.g., pagination cursor URL) - await http_client.request( - path="resource?after=123", - method="GET", - params=None, - request_options=None, - ) - - # We care that httpx receives params=None, not [] or {} - assert "params" in dummy_client.last_request_kwargs - assert dummy_client.last_request_kwargs["params"] is None - - # Verify the query string in the URL is preserved - url = str(dummy_client.last_request_kwargs["url"]) - assert "after=123" in url, f"Expected query param 'after=123' in URL, got: {url}" - - -@pytest.mark.asyncio -async def test_async_http_client_passes_encoded_params_when_present() -> None: - """Test that AsyncHttpClient passes encoded params when params are provided.""" - dummy_client = _DummyAsyncClient() - http_client = AsyncHttpClient( - httpx_client=dummy_client, # type: ignore[arg-type] - base_timeout=lambda: None, - base_headers=lambda: {}, - base_url=lambda: "https://example.com/resource", - async_base_headers=None, - ) - - await http_client.request( - path="", - method="GET", - params={"after": "456"}, - request_options=None, + json_body_extras, data_body_extras = get_request_body( + json={}, data=None, request_options=unrelated_request_options, omit=None ) - params = dummy_client.last_request_kwargs["params"] - # For a simple dict, encode_query should give a single (key, value) tuple - assert params == [("after", "456")] - - -def test_basic_url_joining() -> None: - """Test basic URL joining with a simple base URL and path.""" - result = _build_url("https://api.example.com", "/users") - assert result == "https://api.example.com/users" - - -def test_basic_url_joining_trailing_slash() -> None: - """Test basic URL joining with a simple base URL and path.""" - result = _build_url("https://api.example.com/", "/users") - assert result == "https://api.example.com/users" - - -def test_preserves_base_url_path_prefix() -> None: - """Test that path prefixes in base URL are preserved. - - This is the critical bug fix - urllib.parse.urljoin() would strip - the path prefix when the path starts with '/'. - """ - result = _build_url("https://cloud.example.com/org/tenant/api", "/users") - assert result == "https://cloud.example.com/org/tenant/api/users" - - -def test_preserves_base_url_path_prefix_trailing_slash() -> None: - """Test that path prefixes in base URL are preserved.""" - result = _build_url("https://cloud.example.com/org/tenant/api/", "/users") - assert result == "https://cloud.example.com/org/tenant/api/users" + assert json_body_extras is None + assert data_body_extras is None From c1bcaedfc6463e2602993f4d68075a3d77c12639 Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2026 14:26:50 +0000 Subject: [PATCH 2/2] [fern-replay] Applied customizations Patches with unresolved conflicts (1): - patch-09841618: update version to 3.1.0 (#198) Run `fern-replay resolve` to apply these customizations. --- .fern/replay.lock | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index 30ee9c54..0a1f3ec5 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -12,7 +12,13 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 5.0.8 -current_generation: 3f73767305ee9dc15a905e160650c32b0cb83a27 + - commit_sha: 37e3fb887f9ced6b154cd6a13aaea0bdebcd48b5 + tree_hash: 69bf48fa11e0d15c7132f5d2c245592165c78e4c + timestamp: 2026-07-24T14:26:47.650Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.29.1 +current_generation: 37e3fb887f9ced6b154cd6a13aaea0bdebcd48b5 patches: - id: patch-09841618 content_hash: sha256:5da05043df04207e1c3dad25d3c390a26cfc9f23b67f46f105aa367c41393ba5