mergepythonclient 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- merge/__init__.py +77 -0
- merge/_base_client.py +1431 -0
- merge/_base_exceptions.py +117 -0
- merge/_client.py +344 -0
- merge/_exceptions.py +31 -0
- merge/_models.py +235 -0
- merge/_qs.py +148 -0
- merge/_resource.py +34 -0
- merge/_types.py +145 -0
- merge/_utils/__init__.py +25 -0
- merge/_utils/_transform.py +205 -0
- merge/_utils/_utils.py +325 -0
- merge/_version.py +4 -0
- merge/pagination.py +43 -0
- merge/py.typed +0 -0
- merge/resources/__init__.py +26 -0
- merge/resources/accounting/__init__.py +104 -0
- merge/resources/accounting/account_details.py +52 -0
- merge/resources/accounting/account_tokens.py +54 -0
- merge/resources/accounting/accounting.py +184 -0
- merge/resources/accounting/accounts/__init__.py +6 -0
- merge/resources/accounting/accounts/accounts.py +428 -0
- merge/resources/accounting/accounts/meta.py +52 -0
- merge/resources/accounting/addresses.py +122 -0
- merge/resources/accounting/attachments/__init__.py +6 -0
- merge/resources/accounting/attachments/attachments.py +371 -0
- merge/resources/accounting/attachments/meta.py +52 -0
- merge/resources/accounting/available_actions.py +52 -0
- merge/resources/accounting/balance_sheets.py +294 -0
- merge/resources/accounting/cash_flow_statements.py +294 -0
- merge/resources/accounting/common_model_scopes.py +185 -0
- merge/resources/accounting/company_info.py +286 -0
- merge/resources/accounting/contacts/__init__.py +6 -0
- merge/resources/accounting/contacts/contacts.py +428 -0
- merge/resources/accounting/contacts/meta.py +52 -0
- merge/resources/accounting/credit_notes.py +342 -0
- merge/resources/accounting/expenses/__init__.py +6 -0
- merge/resources/accounting/expenses/expenses.py +416 -0
- merge/resources/accounting/expenses/meta.py +52 -0
- merge/resources/accounting/income_statements.py +294 -0
- merge/resources/accounting/invoices/__init__.py +6 -0
- merge/resources/accounting/invoices/invoices.py +472 -0
- merge/resources/accounting/invoices/meta.py +52 -0
- merge/resources/accounting/issues.py +251 -0
- merge/resources/accounting/items.py +322 -0
- merge/resources/accounting/journal_entries/__init__.py +6 -0
- merge/resources/accounting/journal_entries/journal_entries.py +416 -0
- merge/resources/accounting/journal_entries/meta.py +52 -0
- merge/resources/accounting/link_tokens.py +173 -0
- merge/resources/accounting/linked_accounts.py +286 -0
- merge/resources/accounting/passthrough_requests.py +167 -0
- merge/resources/accounting/payments/__init__.py +6 -0
- merge/resources/accounting/payments/meta.py +52 -0
- merge/resources/accounting/payments/payments.py +430 -0
- merge/resources/accounting/phone_numbers.py +97 -0
- merge/resources/accounting/purchase_orders/__init__.py +6 -0
- merge/resources/accounting/purchase_orders/meta.py +52 -0
- merge/resources/accounting/purchase_orders/purchase_orders.py +452 -0
- merge/resources/accounting/remote_keys.py +144 -0
- merge/resources/accounting/selective_sync.py +234 -0
- merge/resources/accounting/sync_status.py +167 -0
- merge/resources/accounting/tax_rates.py +290 -0
- merge/resources/accounting/tracking_categories.py +326 -0
- merge/resources/accounting/transactions.py +310 -0
- merge/resources/accounting/vendor_credits.py +310 -0
- merge/resources/accounting/webhook_receivers.py +139 -0
- merge/resources/ats/__init__.py +89 -0
- merge/resources/ats/account_details.py +52 -0
- merge/resources/ats/account_tokens.py +54 -0
- merge/resources/ats/activities/__init__.py +6 -0
- merge/resources/ats/activities/activities.py +446 -0
- merge/resources/ats/activities/meta.py +52 -0
- merge/resources/ats/applications/__init__.py +6 -0
- merge/resources/ats/applications/applications.py +547 -0
- merge/resources/ats/applications/meta.py +96 -0
- merge/resources/ats/ats.py +159 -0
- merge/resources/ats/attachments/__init__.py +6 -0
- merge/resources/ats/attachments/attachments.py +442 -0
- merge/resources/ats/attachments/meta.py +52 -0
- merge/resources/ats/available_actions.py +52 -0
- merge/resources/ats/candidates/__init__.py +6 -0
- merge/resources/ats/candidates/candidates.py +543 -0
- merge/resources/ats/candidates/meta.py +52 -0
- merge/resources/ats/common_model_scopes.py +185 -0
- merge/resources/ats/departments.py +255 -0
- merge/resources/ats/eeocs.py +458 -0
- merge/resources/ats/interviews/__init__.py +6 -0
- merge/resources/ats/interviews/interviews.py +464 -0
- merge/resources/ats/interviews/meta.py +52 -0
- merge/resources/ats/issues.py +251 -0
- merge/resources/ats/job_interview_stages.py +294 -0
- merge/resources/ats/jobs.py +354 -0
- merge/resources/ats/link_tokens.py +173 -0
- merge/resources/ats/linked_accounts.py +286 -0
- merge/resources/ats/offers.py +330 -0
- merge/resources/ats/offices.py +255 -0
- merge/resources/ats/passthrough_requests.py +167 -0
- merge/resources/ats/reject_reasons.py +261 -0
- merge/resources/ats/remote_keys.py +144 -0
- merge/resources/ats/scorecards.py +338 -0
- merge/resources/ats/selective_sync.py +234 -0
- merge/resources/ats/sync_status.py +167 -0
- merge/resources/ats/tags.py +174 -0
- merge/resources/ats/users.py +303 -0
- merge/resources/ats/webhook_receivers.py +136 -0
- merge/resources/crm/__init__.py +80 -0
- merge/resources/crm/account_details.py +52 -0
- merge/resources/crm/account_tokens.py +54 -0
- merge/resources/crm/accounts/__init__.py +6 -0
- merge/resources/crm/accounts/accounts.py +626 -0
- merge/resources/crm/accounts/meta.py +92 -0
- merge/resources/crm/available_actions.py +52 -0
- merge/resources/crm/common_model_scopes.py +185 -0
- merge/resources/crm/contacts/__init__.py +6 -0
- merge/resources/crm/contacts/contacts.py +727 -0
- merge/resources/crm/contacts/meta.py +92 -0
- merge/resources/crm/crm.py +144 -0
- merge/resources/crm/custom_object_classes/__init__.py +6 -0
- merge/resources/crm/custom_object_classes/association_types/__init__.py +6 -0
- merge/resources/crm/custom_object_classes/association_types/association_types.py +374 -0
- merge/resources/crm/custom_object_classes/association_types/meta.py +54 -0
- merge/resources/crm/custom_object_classes/custom_object_classes.py +302 -0
- merge/resources/crm/custom_objects/__init__.py +17 -0
- merge/resources/crm/custom_objects/associations.py +250 -0
- merge/resources/crm/custom_objects/custom_objects.py +452 -0
- merge/resources/crm/custom_objects/generators.py +54 -0
- merge/resources/crm/custom_objects/meta.py +96 -0
- merge/resources/crm/engagement_types.py +409 -0
- merge/resources/crm/engagements/__init__.py +6 -0
- merge/resources/crm/engagements/engagements.py +623 -0
- merge/resources/crm/engagements/meta.py +92 -0
- merge/resources/crm/issues.py +251 -0
- merge/resources/crm/leads/__init__.py +6 -0
- merge/resources/crm/leads/leads.py +558 -0
- merge/resources/crm/leads/meta.py +52 -0
- merge/resources/crm/link_tokens.py +173 -0
- merge/resources/crm/linked_accounts.py +286 -0
- merge/resources/crm/notes/__init__.py +6 -0
- merge/resources/crm/notes/meta.py +52 -0
- merge/resources/crm/notes/notes.py +564 -0
- merge/resources/crm/opportunities/__init__.py +6 -0
- merge/resources/crm/opportunities/meta.py +92 -0
- merge/resources/crm/opportunities/opportunities.py +697 -0
- merge/resources/crm/passthrough_requests.py +167 -0
- merge/resources/crm/remote_keys.py +144 -0
- merge/resources/crm/selective_sync.py +234 -0
- merge/resources/crm/stages.py +409 -0
- merge/resources/crm/sync_status.py +167 -0
- merge/resources/crm/tasks/__init__.py +6 -0
- merge/resources/crm/tasks/meta.py +92 -0
- merge/resources/crm/tasks/tasks.py +619 -0
- merge/resources/crm/users.py +509 -0
- merge/resources/crm/webhook_receivers.py +136 -0
- merge/resources/file_storage/__init__.py +59 -0
- merge/resources/file_storage/account_details.py +52 -0
- merge/resources/file_storage/account_tokens.py +54 -0
- merge/resources/file_storage/available_actions.py +52 -0
- merge/resources/file_storage/common_model_scopes.py +185 -0
- merge/resources/file_storage/drives.py +265 -0
- merge/resources/file_storage/file_storage.py +109 -0
- merge/resources/file_storage/files/__init__.py +6 -0
- merge/resources/file_storage/files/files.py +452 -0
- merge/resources/file_storage/files/meta.py +52 -0
- merge/resources/file_storage/folders/__init__.py +6 -0
- merge/resources/file_storage/folders/folders.py +420 -0
- merge/resources/file_storage/folders/meta.py +52 -0
- merge/resources/file_storage/groups.py +255 -0
- merge/resources/file_storage/issues.py +251 -0
- merge/resources/file_storage/link_tokens.py +173 -0
- merge/resources/file_storage/linked_accounts.py +286 -0
- merge/resources/file_storage/passthrough_requests.py +167 -0
- merge/resources/file_storage/remote_keys.py +147 -0
- merge/resources/file_storage/selective_sync.py +234 -0
- merge/resources/file_storage/sync_status.py +167 -0
- merge/resources/file_storage/users.py +255 -0
- merge/resources/file_storage/webhook_receivers.py +139 -0
- merge/resources/hris/__init__.py +83 -0
- merge/resources/hris/account_details.py +52 -0
- merge/resources/hris/account_tokens.py +54 -0
- merge/resources/hris/available_actions.py +52 -0
- merge/resources/hris/banks.py +356 -0
- merge/resources/hris/benefits.py +290 -0
- merge/resources/hris/common_model_scopes.py +185 -0
- merge/resources/hris/companies.py +255 -0
- merge/resources/hris/employee_payroll_runs.py +336 -0
- merge/resources/hris/employees/__init__.py +6 -0
- merge/resources/hris/employees/employees.py +841 -0
- merge/resources/hris/employees/meta.py +52 -0
- merge/resources/hris/employments.py +466 -0
- merge/resources/hris/groups.py +304 -0
- merge/resources/hris/hris.py +149 -0
- merge/resources/hris/issues.py +251 -0
- merge/resources/hris/link_tokens.py +173 -0
- merge/resources/hris/linked_accounts.py +286 -0
- merge/resources/hris/locations.py +294 -0
- merge/resources/hris/passthrough_requests.py +167 -0
- merge/resources/hris/pay_groups.py +255 -0
- merge/resources/hris/payroll_runs.py +356 -0
- merge/resources/hris/remote_keys.py +144 -0
- merge/resources/hris/selective_sync.py +234 -0
- merge/resources/hris/sync_status.py +167 -0
- merge/resources/hris/teams.py +291 -0
- merge/resources/hris/time_off/__init__.py +6 -0
- merge/resources/hris/time_off/meta.py +52 -0
- merge/resources/hris/time_off/time_off.py +560 -0
- merge/resources/hris/time_off_balances.py +354 -0
- merge/resources/hris/webhook_receivers.py +136 -0
- merge/resources/marketing/__init__.py +74 -0
- merge/resources/marketing/account_details.py +52 -0
- merge/resources/marketing/account_tokens.py +54 -0
- merge/resources/marketing/actions/__init__.py +6 -0
- merge/resources/marketing/actions/actions.py +363 -0
- merge/resources/marketing/actions/meta.py +52 -0
- merge/resources/marketing/automations/__init__.py +6 -0
- merge/resources/marketing/automations/automations.py +481 -0
- merge/resources/marketing/automations/meta.py +52 -0
- merge/resources/marketing/available_actions.py +52 -0
- merge/resources/marketing/campaigns/__init__.py +6 -0
- merge/resources/marketing/campaigns/campaigns.py +481 -0
- merge/resources/marketing/campaigns/meta.py +52 -0
- merge/resources/marketing/common_model_scopes.py +185 -0
- merge/resources/marketing/contact_lists/__init__.py +6 -0
- merge/resources/marketing/contact_lists/contact_lists.py +477 -0
- merge/resources/marketing/contact_lists/meta.py +52 -0
- merge/resources/marketing/contacts/__init__.py +6 -0
- merge/resources/marketing/contacts/contacts.py +361 -0
- merge/resources/marketing/contacts/meta.py +52 -0
- merge/resources/marketing/emails.py +375 -0
- merge/resources/marketing/events.py +375 -0
- merge/resources/marketing/issues.py +251 -0
- merge/resources/marketing/link_tokens.py +173 -0
- merge/resources/marketing/linked_accounts.py +286 -0
- merge/resources/marketing/marketing.py +134 -0
- merge/resources/marketing/messages.py +375 -0
- merge/resources/marketing/passthrough_requests.py +167 -0
- merge/resources/marketing/remote_keys.py +144 -0
- merge/resources/marketing/selective_sync.py +234 -0
- merge/resources/marketing/sync_status.py +167 -0
- merge/resources/marketing/templates/__init__.py +6 -0
- merge/resources/marketing/templates/meta.py +52 -0
- merge/resources/marketing/templates/templates.py +365 -0
- merge/resources/marketing/users.py +255 -0
- merge/resources/marketing/webhook_receivers.py +139 -0
- merge/resources/ticketing/__init__.py +74 -0
- merge/resources/ticketing/account_details.py +52 -0
- merge/resources/ticketing/account_tokens.py +54 -0
- merge/resources/ticketing/accounts.py +256 -0
- merge/resources/ticketing/attachments/__init__.py +6 -0
- merge/resources/ticketing/attachments/attachments.py +396 -0
- merge/resources/ticketing/attachments/meta.py +52 -0
- merge/resources/ticketing/available_actions.py +52 -0
- merge/resources/ticketing/collections.py +468 -0
- merge/resources/ticketing/comments/__init__.py +6 -0
- merge/resources/ticketing/comments/comments.py +396 -0
- merge/resources/ticketing/comments/meta.py +52 -0
- merge/resources/ticketing/common_model_scopes.py +185 -0
- merge/resources/ticketing/contacts.py +283 -0
- merge/resources/ticketing/issues.py +251 -0
- merge/resources/ticketing/link_tokens.py +173 -0
- merge/resources/ticketing/linked_accounts.py +286 -0
- merge/resources/ticketing/passthrough_requests.py +167 -0
- merge/resources/ticketing/projects.py +386 -0
- merge/resources/ticketing/remote_keys.py +144 -0
- merge/resources/ticketing/selective_sync.py +234 -0
- merge/resources/ticketing/sync_status.py +167 -0
- merge/resources/ticketing/tags.py +256 -0
- merge/resources/ticketing/teams.py +256 -0
- merge/resources/ticketing/ticketing.py +134 -0
- merge/resources/ticketing/tickets/__init__.py +6 -0
- merge/resources/ticketing/tickets/meta.py +92 -0
- merge/resources/ticketing/tickets/tickets.py +1037 -0
- merge/resources/ticketing/users.py +292 -0
- merge/resources/ticketing/webhook_receivers.py +139 -0
- merge/types/__init__.py +33 -0
- merge/types/accounting/__init__.py +155 -0
- merge/types/accounting/account_create_params.py +706 -0
- merge/types/accounting/account_list_params.py +63 -0
- merge/types/accounting/account_response.py +28 -0
- merge/types/accounting/account_retrieve_params.py +28 -0
- merge/types/accounting/accounting_attachment.py +35 -0
- merge/types/accounting/accounting_attachment_response.py +30 -0
- merge/types/accounting/accounts/__init__.py +3 -0
- merge/types/accounting/address_retrieve_params.py +21 -0
- merge/types/accounting/attachment_create_params.py +38 -0
- merge/types/accounting/attachment_list_params.py +51 -0
- merge/types/accounting/attachment_retrieve_params.py +15 -0
- merge/types/accounting/attachments/__init__.py +3 -0
- merge/types/accounting/balance_sheet.py +728 -0
- merge/types/accounting/balance_sheet_list_params.py +57 -0
- merge/types/accounting/balance_sheet_retrieve_params.py +22 -0
- merge/types/accounting/cash_flow_statement.py +730 -0
- merge/types/accounting/cash_flow_statement_list_params.py +57 -0
- merge/types/accounting/cash_flow_statement_retrieve_params.py +22 -0
- merge/types/accounting/common_model_scope_retrieve_params.py +12 -0
- merge/types/accounting/common_model_scope_update_params.py +21 -0
- merge/types/accounting/company_info.py +672 -0
- merge/types/accounting/company_info_list_params.py +54 -0
- merge/types/accounting/company_info_retrieve_params.py +22 -0
- merge/types/accounting/contact_create_params.py +384 -0
- merge/types/accounting/contact_list_params.py +63 -0
- merge/types/accounting/contact_response.py +28 -0
- merge/types/accounting/contact_retrieve_params.py +28 -0
- merge/types/accounting/contacts/__init__.py +3 -0
- merge/types/accounting/credit_note.py +727 -0
- merge/types/accounting/credit_note_list_params.py +69 -0
- merge/types/accounting/credit_note_retrieve_params.py +28 -0
- merge/types/accounting/expense.py +707 -0
- merge/types/accounting/expense_create_params.py +709 -0
- merge/types/accounting/expense_list_params.py +63 -0
- merge/types/accounting/expense_response.py +31 -0
- merge/types/accounting/expense_retrieve_params.py +22 -0
- merge/types/accounting/expenses/__init__.py +3 -0
- merge/types/accounting/income_statement.py +751 -0
- merge/types/accounting/income_statement_list_params.py +57 -0
- merge/types/accounting/income_statement_retrieve_params.py +22 -0
- merge/types/accounting/invoice.py +1357 -0
- merge/types/accounting/invoice_create_params.py +1351 -0
- merge/types/accounting/invoice_list_params.py +79 -0
- merge/types/accounting/invoice_response.py +30 -0
- merge/types/accounting/invoice_retrieve_params.py +28 -0
- merge/types/accounting/invoices/__init__.py +3 -0
- merge/types/accounting/issue_list_params.py +72 -0
- merge/types/accounting/item.py +54 -0
- merge/types/accounting/item_list_params.py +63 -0
- merge/types/accounting/item_retrieve_params.py +28 -0
- merge/types/accounting/journal_entries/__init__.py +3 -0
- merge/types/accounting/journal_entry.py +701 -0
- merge/types/accounting/journal_entry_create_params.py +699 -0
- merge/types/accounting/journal_entry_list_params.py +63 -0
- merge/types/accounting/journal_entry_response.py +31 -0
- merge/types/accounting/journal_entry_retrieve_params.py +22 -0
- merge/types/accounting/link_token_create_params.py +66 -0
- merge/types/accounting/linked_account_list_params.py +89 -0
- merge/types/accounting/passthrough_request_send_params.py +76 -0
- merge/types/accounting/payment.py +669 -0
- merge/types/accounting/payment_create_params.py +669 -0
- merge/types/accounting/payment_list_params.py +69 -0
- merge/types/accounting/payment_response.py +30 -0
- merge/types/accounting/payment_retrieve_params.py +22 -0
- merge/types/accounting/payments/__init__.py +3 -0
- merge/types/accounting/phone_number.py +19 -0
- merge/types/accounting/phone_number_retrieve_params.py +15 -0
- merge/types/accounting/purchase_order.py +1351 -0
- merge/types/accounting/purchase_order_create_params.py +1346 -0
- merge/types/accounting/purchase_order_list_params.py +69 -0
- merge/types/accounting/purchase_order_response.py +31 -0
- merge/types/accounting/purchase_order_retrieve_params.py +28 -0
- merge/types/accounting/purchase_orders/__init__.py +3 -0
- merge/types/accounting/remote_key_generate_params.py +11 -0
- merge/types/accounting/remote_key_regenerate_params.py +11 -0
- merge/types/accounting/selective_sync_list_configurations_response.py +11 -0
- merge/types/accounting/selective_sync_list_metadata_params.py +17 -0
- merge/types/accounting/selective_sync_replace_configurations_params.py +29 -0
- merge/types/accounting/selective_sync_replace_configurations_response.py +11 -0
- merge/types/accounting/sync_status_list_params.py +15 -0
- merge/types/accounting/sync_status_resync_response.py +9 -0
- merge/types/accounting/tax_rate.py +38 -0
- merge/types/accounting/tax_rate_list_params.py +57 -0
- merge/types/accounting/tax_rate_retrieve_params.py +22 -0
- merge/types/accounting/tracking_category.py +48 -0
- merge/types/accounting/tracking_category_list_params.py +63 -0
- merge/types/accounting/tracking_category_retrieve_params.py +28 -0
- merge/types/accounting/transaction.py +1336 -0
- merge/types/accounting/transaction_list_params.py +63 -0
- merge/types/accounting/transaction_retrieve_params.py +22 -0
- merge/types/accounting/vendor_credit.py +697 -0
- merge/types/accounting/vendor_credit_list_params.py +63 -0
- merge/types/accounting/vendor_credit_retrieve_params.py +22 -0
- merge/types/accounting/webhook_receiver_create_params.py +15 -0
- merge/types/accounting/webhook_receiver_list_response.py +9 -0
- merge/types/ats/__init__.py +125 -0
- merge/types/ats/activities/__init__.py +3 -0
- merge/types/ats/activity.py +53 -0
- merge/types/ats/activity_create_params.py +55 -0
- merge/types/ats/activity_create_response.py +31 -0
- merge/types/ats/activity_list_params.py +63 -0
- merge/types/ats/activity_retrieve_params.py +28 -0
- merge/types/ats/application.py +49 -0
- merge/types/ats/application_change_stage_params.py +15 -0
- merge/types/ats/application_create_params.py +63 -0
- merge/types/ats/application_list_params.py +72 -0
- merge/types/ats/application_response.py +33 -0
- merge/types/ats/application_retrieve_params.py +22 -0
- merge/types/ats/applications/__init__.py +5 -0
- merge/types/ats/applications/meta_for_create_params.py +12 -0
- merge/types/ats/attachment_create_params.py +61 -0
- merge/types/ats/attachment_list_params.py +63 -0
- merge/types/ats/attachment_response.py +28 -0
- merge/types/ats/attachment_retrieve_params.py +28 -0
- merge/types/ats/attachments/__init__.py +3 -0
- merge/types/ats/candidate.py +128 -0
- merge/types/ats/candidate_create_params.py +137 -0
- merge/types/ats/candidate_ignore_row_params.py +18 -0
- merge/types/ats/candidate_list_params.py +72 -0
- merge/types/ats/candidate_response.py +32 -0
- merge/types/ats/candidate_retrieve_params.py +22 -0
- merge/types/ats/candidates/__init__.py +3 -0
- merge/types/ats/common_model_scope_retrieve_params.py +12 -0
- merge/types/ats/common_model_scope_update_params.py +21 -0
- merge/types/ats/department.py +29 -0
- merge/types/ats/department_list_params.py +48 -0
- merge/types/ats/department_retrieve_params.py +15 -0
- merge/types/ats/eeoc.py +94 -0
- merge/types/ats/eeoc_list_params.py +95 -0
- merge/types/ats/eeoc_retrieve_params.py +60 -0
- merge/types/ats/interview_create_params.py +64 -0
- merge/types/ats/interview_list_params.py +69 -0
- merge/types/ats/interview_retrieve_params.py +28 -0
- merge/types/ats/interviews/__init__.py +3 -0
- merge/types/ats/issue_list_params.py +72 -0
- merge/types/ats/job.py +91 -0
- merge/types/ats/job_interview_stage.py +35 -0
- merge/types/ats/job_interview_stage_list_params.py +57 -0
- merge/types/ats/job_interview_stage_retrieve_params.py +22 -0
- merge/types/ats/job_list_params.py +81 -0
- merge/types/ats/job_retrieve_params.py +28 -0
- merge/types/ats/link_token_create_params.py +66 -0
- merge/types/ats/linked_account_list_params.py +89 -0
- merge/types/ats/offer.py +62 -0
- merge/types/ats/offer_list_params.py +66 -0
- merge/types/ats/offer_retrieve_params.py +28 -0
- merge/types/ats/office.py +32 -0
- merge/types/ats/office_list_params.py +48 -0
- merge/types/ats/office_retrieve_params.py +15 -0
- merge/types/ats/passthrough_request_send_params.py +76 -0
- merge/types/ats/reject_reason.py +29 -0
- merge/types/ats/reject_reason_list_params.py +48 -0
- merge/types/ats/reject_reason_retrieve_params.py +15 -0
- merge/types/ats/remote_key_generate_params.py +11 -0
- merge/types/ats/remote_key_regenerate_params.py +11 -0
- merge/types/ats/scheduled_interview.py +61 -0
- merge/types/ats/scheduled_interview_response.py +32 -0
- merge/types/ats/scorecard.py +51 -0
- merge/types/ats/scorecard_list_params.py +69 -0
- merge/types/ats/scorecard_retrieve_params.py +28 -0
- merge/types/ats/selective_sync_list_configurations_response.py +11 -0
- merge/types/ats/selective_sync_list_metadata_params.py +17 -0
- merge/types/ats/selective_sync_replace_configurations_params.py +29 -0
- merge/types/ats/selective_sync_replace_configurations_response.py +11 -0
- merge/types/ats/sync_status_list_params.py +15 -0
- merge/types/ats/sync_status_resync_response.py +9 -0
- merge/types/ats/tag_list_params.py +48 -0
- merge/types/ats/user_list_params.py +57 -0
- merge/types/ats/user_retrieve_params.py +21 -0
- merge/types/ats/webhook_receiver_create_params.py +15 -0
- merge/types/ats/webhook_receiver_list_response.py +9 -0
- merge/types/crm/__init__.py +156 -0
- merge/types/crm/account_create_params.py +706 -0
- merge/types/crm/account_list_params.py +63 -0
- merge/types/crm/account_list_remote_field_classes_params.py +30 -0
- merge/types/crm/account_response.py +28 -0
- merge/types/crm/account_retrieve_params.py +28 -0
- merge/types/crm/account_update_params.py +55 -0
- merge/types/crm/accounts/__init__.py +3 -0
- merge/types/crm/common_model_scope_retrieve_params.py +12 -0
- merge/types/crm/common_model_scope_update_params.py +21 -0
- merge/types/crm/contact_create_params.py +384 -0
- merge/types/crm/contact_ignore_row_params.py +18 -0
- merge/types/crm/contact_list_params.py +63 -0
- merge/types/crm/contact_list_remote_field_classes_params.py +30 -0
- merge/types/crm/contact_response.py +28 -0
- merge/types/crm/contact_retrieve_params.py +28 -0
- merge/types/crm/contact_update_params.py +371 -0
- merge/types/crm/contacts/__init__.py +3 -0
- merge/types/crm/custom_object.py +31 -0
- merge/types/crm/custom_object_class.py +73 -0
- merge/types/crm/custom_object_class_list_params.py +54 -0
- merge/types/crm/custom_object_class_retrieve_params.py +22 -0
- merge/types/crm/custom_object_classes/__init__.py +17 -0
- merge/types/crm/custom_object_classes/association_type.py +46 -0
- merge/types/crm/custom_object_classes/association_type_create_params.py +54 -0
- merge/types/crm/custom_object_classes/association_type_list_params.py +54 -0
- merge/types/crm/custom_object_classes/association_type_response.py +29 -0
- merge/types/crm/custom_object_classes/association_type_retrieve_params.py +22 -0
- merge/types/crm/custom_object_classes/association_types/__init__.py +3 -0
- merge/types/crm/custom_object_create_params.py +15 -0
- merge/types/crm/custom_object_list_params.py +54 -0
- merge/types/crm/custom_object_response.py +29 -0
- merge/types/crm/custom_object_retrieve_params.py +21 -0
- merge/types/crm/custom_object_update_params.py +15 -0
- merge/types/crm/custom_objects/__init__.py +6 -0
- merge/types/crm/custom_objects/association.py +19 -0
- merge/types/crm/custom_objects/association_list_params.py +57 -0
- merge/types/crm/engagement.py +64 -0
- merge/types/crm/engagement_create_params.py +61 -0
- merge/types/crm/engagement_list_params.py +60 -0
- merge/types/crm/engagement_list_remote_field_classes_params.py +30 -0
- merge/types/crm/engagement_response.py +30 -0
- merge/types/crm/engagement_retrieve_params.py +28 -0
- merge/types/crm/engagement_type.py +38 -0
- merge/types/crm/engagement_type_list_params.py +54 -0
- merge/types/crm/engagement_type_list_remote_field_classes_params.py +30 -0
- merge/types/crm/engagement_type_retrieve_params.py +21 -0
- merge/types/crm/engagement_update_params.py +61 -0
- merge/types/crm/engagements/__init__.py +3 -0
- merge/types/crm/issue_list_params.py +72 -0
- merge/types/crm/lead.py +111 -0
- merge/types/crm/lead_create_params.py +386 -0
- merge/types/crm/lead_list_params.py +69 -0
- merge/types/crm/lead_list_remote_field_classes_params.py +30 -0
- merge/types/crm/lead_response.py +30 -0
- merge/types/crm/lead_retrieve_params.py +28 -0
- merge/types/crm/leads/__init__.py +3 -0
- merge/types/crm/link_token_create_params.py +66 -0
- merge/types/crm/linked_account_list_params.py +89 -0
- merge/types/crm/note.py +54 -0
- merge/types/crm/note_create_params.py +43 -0
- merge/types/crm/note_list_params.py +72 -0
- merge/types/crm/note_list_remote_field_classes_params.py +30 -0
- merge/types/crm/note_response.py +29 -0
- merge/types/crm/note_retrieve_params.py +28 -0
- merge/types/crm/notes/__init__.py +3 -0
- merge/types/crm/opportunities/__init__.py +3 -0
- merge/types/crm/opportunity.py +68 -0
- merge/types/crm/opportunity_create_params.py +63 -0
- merge/types/crm/opportunity_list_params.py +85 -0
- merge/types/crm/opportunity_list_remote_field_classes_params.py +30 -0
- merge/types/crm/opportunity_response.py +30 -0
- merge/types/crm/opportunity_retrieve_params.py +34 -0
- merge/types/crm/opportunity_update_params.py +63 -0
- merge/types/crm/passthrough_request_send_params.py +76 -0
- merge/types/crm/remote_key_generate_params.py +11 -0
- merge/types/crm/remote_key_regenerate_params.py +11 -0
- merge/types/crm/selective_sync_list_configurations_response.py +11 -0
- merge/types/crm/selective_sync_list_metadata_params.py +17 -0
- merge/types/crm/selective_sync_replace_configurations_params.py +29 -0
- merge/types/crm/selective_sync_replace_configurations_response.py +11 -0
- merge/types/crm/stage.py +37 -0
- merge/types/crm/stage_list_params.py +54 -0
- merge/types/crm/stage_list_remote_field_classes_params.py +30 -0
- merge/types/crm/stage_retrieve_params.py +21 -0
- merge/types/crm/sync_status_list_params.py +15 -0
- merge/types/crm/sync_status_resync_response.py +9 -0
- merge/types/crm/task.py +59 -0
- merge/types/crm/task_create_params.py +55 -0
- merge/types/crm/task_create_response.py +29 -0
- merge/types/crm/task_list_params.py +60 -0
- merge/types/crm/task_list_remote_field_classes_params.py +30 -0
- merge/types/crm/task_retrieve_params.py +28 -0
- merge/types/crm/task_update_params.py +55 -0
- merge/types/crm/tasks/__init__.py +3 -0
- merge/types/crm/user.py +43 -0
- merge/types/crm/user_ignore_row_params.py +18 -0
- merge/types/crm/user_list_params.py +54 -0
- merge/types/crm/user_list_remote_field_classes_params.py +30 -0
- merge/types/crm/user_retrieve_params.py +21 -0
- merge/types/crm/webhook_receiver_create_params.py +15 -0
- merge/types/crm/webhook_receiver_list_response.py +9 -0
- merge/types/file_storage/__init__.py +65 -0
- merge/types/file_storage/common_model_scope_retrieve_params.py +12 -0
- merge/types/file_storage/common_model_scope_update_params.py +21 -0
- merge/types/file_storage/drive.py +31 -0
- merge/types/file_storage/drive_list_params.py +54 -0
- merge/types/file_storage/drive_retrieve_params.py +15 -0
- merge/types/file_storage/file.py +59 -0
- merge/types/file_storage/file_create_params.py +60 -0
- merge/types/file_storage/file_list_params.py +66 -0
- merge/types/file_storage/file_response.py +30 -0
- merge/types/file_storage/file_retrieve_params.py +22 -0
- merge/types/file_storage/files/__init__.py +3 -0
- merge/types/file_storage/folder.py +53 -0
- merge/types/file_storage/folder_create_params.py +55 -0
- merge/types/file_storage/folder_list_params.py +69 -0
- merge/types/file_storage/folder_response.py +31 -0
- merge/types/file_storage/folder_retrieve_params.py +22 -0
- merge/types/file_storage/folders/__init__.py +3 -0
- merge/types/file_storage/group.py +32 -0
- merge/types/file_storage/group_list_params.py +48 -0
- merge/types/file_storage/group_retrieve_params.py +15 -0
- merge/types/file_storage/issue_list_params.py +72 -0
- merge/types/file_storage/link_token_create_params.py +66 -0
- merge/types/file_storage/linked_account_list_params.py +89 -0
- merge/types/file_storage/passthrough_request_send_params.py +76 -0
- merge/types/file_storage/remote_key_generate_params.py +11 -0
- merge/types/file_storage/remote_key_regenerate_params.py +11 -0
- merge/types/file_storage/selective_sync_list_configurations_response.py +11 -0
- merge/types/file_storage/selective_sync_list_metadata_params.py +17 -0
- merge/types/file_storage/selective_sync_replace_configurations_params.py +29 -0
- merge/types/file_storage/selective_sync_replace_configurations_response.py +11 -0
- merge/types/file_storage/sync_status_list_params.py +15 -0
- merge/types/file_storage/sync_status_resync_response.py +9 -0
- merge/types/file_storage/user.py +31 -0
- merge/types/file_storage/user_list_params.py +48 -0
- merge/types/file_storage/user_retrieve_params.py +15 -0
- merge/types/file_storage/webhook_receiver_create_params.py +15 -0
- merge/types/file_storage/webhook_receiver_list_response.py +9 -0
- merge/types/hris/__init__.py +103 -0
- merge/types/hris/bank_info.py +48 -0
- merge/types/hris/bank_list_params.py +78 -0
- merge/types/hris/bank_retrieve_params.py +28 -0
- merge/types/hris/benefit.py +41 -0
- merge/types/hris/benefit_list_params.py +57 -0
- merge/types/hris/benefit_retrieve_params.py +22 -0
- merge/types/hris/common_model_scope_retrieve_params.py +12 -0
- merge/types/hris/common_model_scope_update_params.py +21 -0
- merge/types/hris/company.py +35 -0
- merge/types/hris/company_list_params.py +48 -0
- merge/types/hris/company_retrieve_params.py +15 -0
- merge/types/hris/created_employee_response.py +31 -0
- merge/types/hris/employee.py +167 -0
- merge/types/hris/employee_create_params.py +164 -0
- merge/types/hris/employee_ignore_params.py +18 -0
- merge/types/hris/employee_list_params.py +162 -0
- merge/types/hris/employee_payroll_run.py +149 -0
- merge/types/hris/employee_payroll_run_list_params.py +77 -0
- merge/types/hris/employee_payroll_run_retrieve_params.py +22 -0
- merge/types/hris/employee_retrieve_params.py +68 -0
- merge/types/hris/employees/__init__.py +3 -0
- merge/types/hris/employment.py +718 -0
- merge/types/hris/employment_list_params.py +98 -0
- merge/types/hris/employment_retrieve_params.py +60 -0
- merge/types/hris/group.py +42 -0
- merge/types/hris/group_list_params.py +60 -0
- merge/types/hris/group_retrieve_params.py +21 -0
- merge/types/hris/issue_list_params.py +72 -0
- merge/types/hris/link_token_create_params.py +66 -0
- merge/types/hris/linked_account_list_params.py +89 -0
- merge/types/hris/location.py +309 -0
- merge/types/hris/location_list_params.py +54 -0
- merge/types/hris/location_retrieve_params.py +21 -0
- merge/types/hris/passthrough_request_send_params.py +76 -0
- merge/types/hris/pay_group.py +29 -0
- merge/types/hris/pay_group_list_params.py +48 -0
- merge/types/hris/pay_group_retrieve_params.py +15 -0
- merge/types/hris/payroll_run.py +54 -0
- merge/types/hris/payroll_run_list_params.py +78 -0
- merge/types/hris/payroll_run_retrieve_params.py +21 -0
- merge/types/hris/remote_key_generate_params.py +11 -0
- merge/types/hris/remote_key_regenerate_params.py +11 -0
- merge/types/hris/selective_sync_list_configurations_response.py +11 -0
- merge/types/hris/selective_sync_list_metadata_params.py +17 -0
- merge/types/hris/selective_sync_replace_configurations_params.py +29 -0
- merge/types/hris/selective_sync_replace_configurations_response.py +11 -0
- merge/types/hris/sync_status_list_params.py +15 -0
- merge/types/hris/sync_status_resync_response.py +9 -0
- merge/types/hris/team_list_params.py +57 -0
- merge/types/hris/team_retrieve_params.py +22 -0
- merge/types/hris/time_off/__init__.py +5 -0
- merge/types/hris/time_off/time_off.py +69 -0
- merge/types/hris/time_off_balance.py +46 -0
- merge/types/hris/time_off_balance_list_params.py +77 -0
- merge/types/hris/time_off_balance_retrieve_params.py +28 -0
- merge/types/hris/time_off_create_params.py +75 -0
- merge/types/hris/time_off_list_params.py +108 -0
- merge/types/hris/time_off_response.py +30 -0
- merge/types/hris/time_off_retrieve_params.py +44 -0
- merge/types/hris/webhook_receiver_create_params.py +15 -0
- merge/types/hris/webhook_receiver_list_response.py +9 -0
- merge/types/marketing/__init__.py +113 -0
- merge/types/marketing/action.py +41 -0
- merge/types/marketing/action_create_params.py +44 -0
- merge/types/marketing/action_list_params.py +48 -0
- merge/types/marketing/action_response.py +30 -0
- merge/types/marketing/action_retrieve_params.py +15 -0
- merge/types/marketing/actions/__init__.py +3 -0
- merge/types/marketing/automation.py +53 -0
- merge/types/marketing/automation_create_params.py +60 -0
- merge/types/marketing/automation_list_params.py +48 -0
- merge/types/marketing/automation_list_recipients_params.py +24 -0
- merge/types/marketing/automation_response.py +31 -0
- merge/types/marketing/automation_retrieve_params.py +15 -0
- merge/types/marketing/automations/__init__.py +3 -0
- merge/types/marketing/campaign.py +38 -0
- merge/types/marketing/campaign_create_params.py +39 -0
- merge/types/marketing/campaign_list_contacts_params.py +24 -0
- merge/types/marketing/campaign_list_params.py +48 -0
- merge/types/marketing/campaign_response.py +31 -0
- merge/types/marketing/campaign_retrieve_params.py +15 -0
- merge/types/marketing/campaigns/__init__.py +3 -0
- merge/types/marketing/common_model_scope_retrieve_params.py +12 -0
- merge/types/marketing/common_model_scope_update_params.py +21 -0
- merge/types/marketing/contact_create_params.py +384 -0
- merge/types/marketing/contact_list.py +38 -0
- merge/types/marketing/contact_list_create_params.py +34 -0
- merge/types/marketing/contact_list_create_response.py +29 -0
- merge/types/marketing/contact_list_list_params.py +48 -0
- merge/types/marketing/contact_list_list_subscribers_params.py +24 -0
- merge/types/marketing/contact_list_params.py +48 -0
- merge/types/marketing/contact_list_retrieve_params.py +15 -0
- merge/types/marketing/contact_lists/__init__.py +3 -0
- merge/types/marketing/contact_response.py +28 -0
- merge/types/marketing/contact_retrieve_params.py +15 -0
- merge/types/marketing/contacts/__init__.py +3 -0
- merge/types/marketing/email.py +73 -0
- merge/types/marketing/email_list_params.py +48 -0
- merge/types/marketing/email_list_recipients_params.py +24 -0
- merge/types/marketing/email_retrieve_params.py +15 -0
- merge/types/marketing/event.py +47 -0
- merge/types/marketing/event_list_contacts_params.py +24 -0
- merge/types/marketing/event_list_params.py +48 -0
- merge/types/marketing/event_retrieve_params.py +15 -0
- merge/types/marketing/issue_list_params.py +72 -0
- merge/types/marketing/link_token_create_params.py +66 -0
- merge/types/marketing/linked_account_list_params.py +89 -0
- merge/types/marketing/message.py +35 -0
- merge/types/marketing/message_list_params.py +48 -0
- merge/types/marketing/message_list_recipients_params.py +24 -0
- merge/types/marketing/message_retrieve_params.py +15 -0
- merge/types/marketing/passthrough_request_send_params.py +76 -0
- merge/types/marketing/remote_key_generate_params.py +11 -0
- merge/types/marketing/remote_key_regenerate_params.py +11 -0
- merge/types/marketing/selective_sync_list_configurations_response.py +11 -0
- merge/types/marketing/selective_sync_list_metadata_params.py +17 -0
- merge/types/marketing/selective_sync_replace_configurations_params.py +29 -0
- merge/types/marketing/selective_sync_replace_configurations_response.py +11 -0
- merge/types/marketing/sync_status_list_params.py +15 -0
- merge/types/marketing/sync_status_resync_response.py +9 -0
- merge/types/marketing/template.py +48 -0
- merge/types/marketing/template_create_params.py +45 -0
- merge/types/marketing/template_list_params.py +48 -0
- merge/types/marketing/template_response.py +31 -0
- merge/types/marketing/template_retrieve_params.py +15 -0
- merge/types/marketing/templates/__init__.py +3 -0
- merge/types/marketing/user.py +47 -0
- merge/types/marketing/user_list_params.py +48 -0
- merge/types/marketing/user_retrieve_params.py +15 -0
- merge/types/marketing/webhook_receiver_create_params.py +15 -0
- merge/types/marketing/webhook_receiver_list_response.py +9 -0
- merge/types/shared/__init__.py +33 -0
- merge/types/shared/account.py +745 -0
- merge/types/shared/account_detail.py +45 -0
- merge/types/shared/account_details_and_actions.py +78 -0
- merge/types/shared/account_token.py +56 -0
- merge/types/shared/address.py +303 -0
- merge/types/shared/attachment.py +60 -0
- merge/types/shared/available_action.py +68 -0
- merge/types/shared/common_model_scope.py +56 -0
- merge/types/shared/condition_schema.py +56 -0
- merge/types/shared/contact.py +397 -0
- merge/types/shared/country.py +257 -0
- merge/types/shared/debug_log.py +22 -0
- merge/types/shared/issue.py +31 -0
- merge/types/shared/link_token.py +15 -0
- merge/types/shared/linked_account_selective_sync_configuration.py +35 -0
- merge/types/shared/meta_response.py +25 -0
- merge/types/shared/remote_data.py +13 -0
- merge/types/shared/remote_field_class.py +54 -0
- merge/types/shared/remote_key.py +12 -0
- merge/types/shared/remote_response.py +28 -0
- merge/types/shared/remote_user.py +51 -0
- merge/types/shared/sync_status.py +36 -0
- merge/types/shared/tag.py +27 -0
- merge/types/shared/team.py +35 -0
- merge/types/shared/validation_error.py +21 -0
- merge/types/shared/validation_warning.py +21 -0
- merge/types/shared/webhook_receiver.py +15 -0
- merge/types/shared_params/__init__.py +33 -0
- merge/types/shared_params/account.py +700 -0
- merge/types/shared_params/account_detail.py +20 -0
- merge/types/shared_params/account_details_and_actions.py +78 -0
- merge/types/shared_params/account_token.py +54 -0
- merge/types/shared_params/address.py +295 -0
- merge/types/shared_params/attachment.py +50 -0
- merge/types/shared_params/available_action.py +66 -0
- merge/types/shared_params/common_model_scope.py +56 -0
- merge/types/shared_params/condition_schema.py +49 -0
- merge/types/shared_params/contact.py +374 -0
- merge/types/shared_params/country.py +259 -0
- merge/types/shared_params/debug_log.py +23 -0
- merge/types/shared_params/issue.py +25 -0
- merge/types/shared_params/link_token.py +15 -0
- merge/types/shared_params/linked_account_selective_sync_configuration.py +11 -0
- merge/types/shared_params/meta_response.py +25 -0
- merge/types/shared_params/remote_data.py +13 -0
- merge/types/shared_params/remote_field_class.py +54 -0
- merge/types/shared_params/remote_key.py +13 -0
- merge/types/shared_params/remote_response.py +27 -0
- merge/types/shared_params/remote_user.py +40 -0
- merge/types/shared_params/sync_status.py +38 -0
- merge/types/shared_params/tag.py +19 -0
- merge/types/shared_params/team.py +22 -0
- merge/types/shared_params/validation_error.py +21 -0
- merge/types/shared_params/validation_warning.py +21 -0
- merge/types/shared_params/webhook_receiver.py +15 -0
- merge/types/ticketing/__init__.py +94 -0
- merge/types/ticketing/account_list_params.py +48 -0
- merge/types/ticketing/account_retrieve_params.py +15 -0
- merge/types/ticketing/attachment_create_params.py +59 -0
- merge/types/ticketing/attachment_create_response.py +28 -0
- merge/types/ticketing/attachment_list_params.py +57 -0
- merge/types/ticketing/attachment_retrieve_params.py +22 -0
- merge/types/ticketing/attachments/__init__.py +3 -0
- merge/types/ticketing/collection.py +42 -0
- merge/types/ticketing/collection_list_params.py +73 -0
- merge/types/ticketing/collection_list_users_params.py +31 -0
- merge/types/ticketing/collection_retrieve_params.py +28 -0
- merge/types/ticketing/comment.py +46 -0
- merge/types/ticketing/comment_create_params.py +46 -0
- merge/types/ticketing/comment_list_params.py +57 -0
- merge/types/ticketing/comment_response.py +29 -0
- merge/types/ticketing/comment_retrieve_params.py +22 -0
- merge/types/ticketing/comments/__init__.py +3 -0
- merge/types/ticketing/common_model_scope_retrieve_params.py +12 -0
- merge/types/ticketing/common_model_scope_update_params.py +21 -0
- merge/types/ticketing/contact_list_params.py +54 -0
- merge/types/ticketing/contact_retrieve_params.py +22 -0
- merge/types/ticketing/issue_list_params.py +72 -0
- merge/types/ticketing/link_token_create_params.py +66 -0
- merge/types/ticketing/linked_account_list_params.py +89 -0
- merge/types/ticketing/passthrough_request_send_params.py +76 -0
- merge/types/ticketing/project.py +32 -0
- merge/types/ticketing/project_list_params.py +48 -0
- merge/types/ticketing/project_list_users_params.py +31 -0
- merge/types/ticketing/project_retrieve_params.py +15 -0
- merge/types/ticketing/remote_key_generate_params.py +11 -0
- merge/types/ticketing/remote_key_regenerate_params.py +11 -0
- merge/types/ticketing/selective_sync_list_configurations_response.py +11 -0
- merge/types/ticketing/selective_sync_list_metadata_params.py +17 -0
- merge/types/ticketing/selective_sync_replace_configurations_params.py +29 -0
- merge/types/ticketing/selective_sync_replace_configurations_response.py +11 -0
- merge/types/ticketing/sync_status_list_params.py +15 -0
- merge/types/ticketing/sync_status_resync_response.py +9 -0
- merge/types/ticketing/tag_list_params.py +48 -0
- merge/types/ticketing/tag_retrieve_params.py +15 -0
- merge/types/ticketing/team_list_params.py +48 -0
- merge/types/ticketing/team_retrieve_params.py +15 -0
- merge/types/ticketing/ticket.py +100 -0
- merge/types/ticketing/ticket_create_params.py +91 -0
- merge/types/ticketing/ticket_list_collaborators_params.py +31 -0
- merge/types/ticketing/ticket_list_params.py +171 -0
- merge/types/ticketing/ticket_list_remote_field_classes_params.py +24 -0
- merge/types/ticketing/ticket_response.py +29 -0
- merge/types/ticketing/ticket_retrieve_params.py +52 -0
- merge/types/ticketing/ticket_update_params.py +89 -0
- merge/types/ticketing/tickets/__init__.py +3 -0
- merge/types/ticketing/user.py +40 -0
- merge/types/ticketing/user_list_params.py +60 -0
- merge/types/ticketing/user_retrieve_params.py +22 -0
- merge/types/ticketing/webhook_receiver_create_params.py +15 -0
- merge/types/ticketing/webhook_receiver_list_response.py +9 -0
- mergepythonclient-0.0.1.dist-info/LICENSE.md +16 -0
- mergepythonclient-0.0.1.dist-info/METADATA +281 -0
- mergepythonclient-0.0.1.dist-info/RECORD +834 -0
- mergepythonclient-0.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, List, Mapping, TypeVar, cast
|
|
4
|
+
from datetime import date, datetime
|
|
5
|
+
from typing_extensions import Literal, get_args, get_type_hints
|
|
6
|
+
|
|
7
|
+
from pydantic.typing import is_typeddict
|
|
8
|
+
|
|
9
|
+
from ._utils import (
|
|
10
|
+
is_list,
|
|
11
|
+
is_mapping,
|
|
12
|
+
is_list_type,
|
|
13
|
+
is_union_type,
|
|
14
|
+
extract_type_arg,
|
|
15
|
+
is_required_type,
|
|
16
|
+
is_annotated_type,
|
|
17
|
+
strip_annotated_type,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
_T = TypeVar("_T")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# TODO: support for drilling globals() and locals()
|
|
24
|
+
# TODO: ensure works correctly with forward references in all cases
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
PropertyFormat = Literal["iso8601", "custom"]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class PropertyInfo:
|
|
31
|
+
"""Metadata class to be used in Annotated types to provide information about a given type.
|
|
32
|
+
|
|
33
|
+
For example:
|
|
34
|
+
|
|
35
|
+
class MyParams(TypedDict):
|
|
36
|
+
account_holder_name: Annotated[str, PropertyInfo(alias='accountHolderName')]
|
|
37
|
+
|
|
38
|
+
This means that {'account_holder_name': 'Robert'} will be transformed to {'accountHolderName': 'Robert'} before being sent to the API.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
alias: str | None
|
|
42
|
+
format: PropertyFormat | None
|
|
43
|
+
format_template: str | None
|
|
44
|
+
|
|
45
|
+
def __init__(
|
|
46
|
+
self,
|
|
47
|
+
*,
|
|
48
|
+
alias: str | None = None,
|
|
49
|
+
format: PropertyFormat | None = None,
|
|
50
|
+
format_template: str | None = None,
|
|
51
|
+
) -> None:
|
|
52
|
+
self.alias = alias
|
|
53
|
+
self.format = format
|
|
54
|
+
self.format_template = format_template
|
|
55
|
+
|
|
56
|
+
def __repr__(self) -> str:
|
|
57
|
+
return f"{self.__class__.__name__}(alias='{self.alias}', format={self.format}, format_template='{self.format_template}')"
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def maybe_transform(
|
|
61
|
+
data: Mapping[str, object] | List[Any] | None,
|
|
62
|
+
expected_type: object,
|
|
63
|
+
) -> Any | None:
|
|
64
|
+
"""Wrapper over `transform()` that allows `None` to be passed.
|
|
65
|
+
|
|
66
|
+
See `transform()` for more details.
|
|
67
|
+
"""
|
|
68
|
+
if data is None:
|
|
69
|
+
return None
|
|
70
|
+
return transform(data, expected_type)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# Wrapper over _transform_recursive providing fake types
|
|
74
|
+
def transform(
|
|
75
|
+
data: _T,
|
|
76
|
+
expected_type: object,
|
|
77
|
+
) -> _T:
|
|
78
|
+
"""Transform dictionaries based off of type information from the given type, for example:
|
|
79
|
+
|
|
80
|
+
```py
|
|
81
|
+
class Params(TypedDict, total=False):
|
|
82
|
+
card_id: Required[Annotated[str, PropertyInfo(alias='cardID')]]
|
|
83
|
+
|
|
84
|
+
transformed = transform({'card_id': '<my card ID>'}, Params)
|
|
85
|
+
# {'cardID': '<my card ID>'}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Any keys / data that does not have type information given will be included as is.
|
|
89
|
+
|
|
90
|
+
It should be noted that the transformations that this function does are not represented in the type system.
|
|
91
|
+
"""
|
|
92
|
+
transformed = _transform_recursive(data, annotation=cast(type, expected_type))
|
|
93
|
+
return cast(_T, transformed)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _get_annoted_type(type_: type) -> type | None:
|
|
97
|
+
"""If the given type is an `Annotated` type then it is returned, if not `None` is returned.
|
|
98
|
+
|
|
99
|
+
This also unwraps the type when applicable, e.g. `Required[Annotated[T, ...]]`
|
|
100
|
+
"""
|
|
101
|
+
if is_required_type(type_):
|
|
102
|
+
# Unwrap `Required[Annotated[T, ...]]` to `Annotated[T, ...]`
|
|
103
|
+
type_ = get_args(type_)[0]
|
|
104
|
+
|
|
105
|
+
if is_annotated_type(type_):
|
|
106
|
+
return type_
|
|
107
|
+
|
|
108
|
+
return None
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _maybe_transform_key(key: str, type_: type) -> str:
|
|
112
|
+
annotated_type = _get_annoted_type(type_)
|
|
113
|
+
if annotated_type is None:
|
|
114
|
+
# no `Annotated` definition for this type, no transformation needed
|
|
115
|
+
return key
|
|
116
|
+
|
|
117
|
+
# ignore the first argument as it is the actual type
|
|
118
|
+
annotations = get_args(annotated_type)[1:]
|
|
119
|
+
for annotation in annotations:
|
|
120
|
+
if isinstance(annotation, PropertyInfo) and annotation.alias is not None:
|
|
121
|
+
return annotation.alias
|
|
122
|
+
|
|
123
|
+
return key
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def _transform_recursive(
|
|
127
|
+
data: object,
|
|
128
|
+
*,
|
|
129
|
+
annotation: type,
|
|
130
|
+
inner_type: type | None = None,
|
|
131
|
+
) -> object:
|
|
132
|
+
"""Transform the given data against the expected type.
|
|
133
|
+
|
|
134
|
+
Args:
|
|
135
|
+
annotation: The direct type annotation given to the particular piece of data.
|
|
136
|
+
This may or may not be wrapped in metadata types, e.g. `Required[T]`, `Annotated[T, ...]` etc
|
|
137
|
+
|
|
138
|
+
inner_type: If applicable, this is the "inside" type. This is useful in certain cases where the outside type
|
|
139
|
+
is a container type such as `List[T]`. In that case `inner_type` should be set to `T` so that each entry in
|
|
140
|
+
the list can be transformed using the metadata from the container type.
|
|
141
|
+
|
|
142
|
+
Defaults to the same value as the `annotation` argument.
|
|
143
|
+
"""
|
|
144
|
+
if inner_type is None:
|
|
145
|
+
inner_type = annotation
|
|
146
|
+
|
|
147
|
+
stripped_type = strip_annotated_type(inner_type)
|
|
148
|
+
if is_typeddict(stripped_type) and is_mapping(data):
|
|
149
|
+
return _transform_typeddict(data, stripped_type)
|
|
150
|
+
|
|
151
|
+
if is_list_type(stripped_type) and is_list(data):
|
|
152
|
+
inner_type = extract_type_arg(stripped_type, 0)
|
|
153
|
+
return [_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
|
|
154
|
+
|
|
155
|
+
if is_union_type(stripped_type):
|
|
156
|
+
# For union types we run the transformation against all subtypes to ensure that everything is transformed.
|
|
157
|
+
#
|
|
158
|
+
# TODO: there may be edge cases where the same normalized field name will transform to two different names
|
|
159
|
+
# in different subtypes.
|
|
160
|
+
for subtype in get_args(stripped_type):
|
|
161
|
+
data = _transform_recursive(data, annotation=annotation, inner_type=subtype)
|
|
162
|
+
return data
|
|
163
|
+
|
|
164
|
+
return _transform_value(data, annotation)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def _transform_value(data: object, type_: type) -> object:
|
|
168
|
+
annotated_type = _get_annoted_type(type_)
|
|
169
|
+
if annotated_type is None:
|
|
170
|
+
return data
|
|
171
|
+
|
|
172
|
+
# ignore the first argument as it is the actual type
|
|
173
|
+
annotations = get_args(annotated_type)[1:]
|
|
174
|
+
for annotation in annotations:
|
|
175
|
+
if isinstance(annotation, PropertyInfo) and annotation.format is not None:
|
|
176
|
+
return _format_data(data, annotation.format, annotation.format_template)
|
|
177
|
+
|
|
178
|
+
return data
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _format_data(data: object, format_: PropertyFormat, format_template: str | None) -> object:
|
|
182
|
+
if isinstance(data, (date, datetime)):
|
|
183
|
+
if format_ == "iso8601":
|
|
184
|
+
return data.isoformat()
|
|
185
|
+
|
|
186
|
+
if format_ == "custom" and format_template is not None:
|
|
187
|
+
return data.strftime(format_template)
|
|
188
|
+
|
|
189
|
+
return data
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def _transform_typeddict(
|
|
193
|
+
data: Mapping[str, object],
|
|
194
|
+
expected_type: type,
|
|
195
|
+
) -> Mapping[str, object]:
|
|
196
|
+
result: dict[str, object] = {}
|
|
197
|
+
annotations = get_type_hints(expected_type, include_extras=True)
|
|
198
|
+
for key, value in data.items():
|
|
199
|
+
type_ = annotations.get(key)
|
|
200
|
+
if type_ is None:
|
|
201
|
+
# we do not have a type annotation for this field, leave it as is
|
|
202
|
+
result[key] = value
|
|
203
|
+
else:
|
|
204
|
+
result[_maybe_transform_key(key, type_)] = _transform_recursive(value, annotation=type_)
|
|
205
|
+
return result
|
merge/_utils/_utils.py
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import inspect
|
|
5
|
+
import functools
|
|
6
|
+
from typing import Any, Mapping, TypeVar, Callable, Iterable, Sequence, cast, overload
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing_extensions import Required, Annotated, TypeGuard, get_args, get_origin
|
|
9
|
+
|
|
10
|
+
from pydantic.typing import is_union as _is_union
|
|
11
|
+
|
|
12
|
+
# re-export for forwards compat
|
|
13
|
+
from pydantic.datetime_parse import parse_date as parse_date
|
|
14
|
+
from pydantic.datetime_parse import parse_datetime as parse_datetime
|
|
15
|
+
|
|
16
|
+
from .._types import NotGiven, FileTypes
|
|
17
|
+
|
|
18
|
+
_T = TypeVar("_T")
|
|
19
|
+
CallableT = TypeVar("CallableT", bound=Callable[..., Any])
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def flatten(t: Iterable[Iterable[_T]]) -> list[_T]:
|
|
23
|
+
return [item for sublist in t for item in sublist]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def extract_files(
|
|
27
|
+
# TODO: this needs to take Dict but variance issues.....
|
|
28
|
+
# create protocol type ?
|
|
29
|
+
query: Mapping[str, object],
|
|
30
|
+
*,
|
|
31
|
+
paths: Sequence[Sequence[str]],
|
|
32
|
+
) -> list[tuple[str, FileTypes]]:
|
|
33
|
+
files: list[tuple[str, FileTypes]] = []
|
|
34
|
+
for path in paths:
|
|
35
|
+
files.extend(_extract_items(query, path, index=0, flattened_key=None))
|
|
36
|
+
return files
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _extract_items(
|
|
40
|
+
obj: object,
|
|
41
|
+
path: Sequence[str],
|
|
42
|
+
*,
|
|
43
|
+
index: int,
|
|
44
|
+
# TODO: rename
|
|
45
|
+
flattened_key: str | None,
|
|
46
|
+
) -> list[tuple[str, FileTypes]]:
|
|
47
|
+
try:
|
|
48
|
+
key = path[index]
|
|
49
|
+
except IndexError:
|
|
50
|
+
# We have exhausted the path, return the entry we found.
|
|
51
|
+
if not isinstance(obj, bytes) and not isinstance(obj, tuple):
|
|
52
|
+
raise RuntimeError(
|
|
53
|
+
f"Expected entry at {flattened_key} to be bytes or a tuple but received {type(obj)} instead."
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# TODO: validate obj more?
|
|
57
|
+
assert flattened_key is not None
|
|
58
|
+
return [(flattened_key, cast(FileTypes, obj))]
|
|
59
|
+
|
|
60
|
+
index += 1
|
|
61
|
+
if is_dict(obj):
|
|
62
|
+
try:
|
|
63
|
+
# We are at the last entry in the path so we must remove the field
|
|
64
|
+
if (len(path)) == index:
|
|
65
|
+
item = obj.pop(key)
|
|
66
|
+
else:
|
|
67
|
+
item = obj[key]
|
|
68
|
+
except KeyError:
|
|
69
|
+
# Key was not present in the dictionary, this is not indicative of an error
|
|
70
|
+
# as the given path may not point to a required field. We also do not want
|
|
71
|
+
# to enforce required fields as the API may differ from the spec in some cases.
|
|
72
|
+
return []
|
|
73
|
+
if flattened_key is None:
|
|
74
|
+
flattened_key = key
|
|
75
|
+
else:
|
|
76
|
+
flattened_key += f"[{key}]"
|
|
77
|
+
return _extract_items(
|
|
78
|
+
item,
|
|
79
|
+
path,
|
|
80
|
+
index=index,
|
|
81
|
+
flattened_key=flattened_key,
|
|
82
|
+
)
|
|
83
|
+
elif is_list(obj):
|
|
84
|
+
if key != "<array>":
|
|
85
|
+
return []
|
|
86
|
+
|
|
87
|
+
return flatten(
|
|
88
|
+
[
|
|
89
|
+
_extract_items(
|
|
90
|
+
item,
|
|
91
|
+
path,
|
|
92
|
+
index=index,
|
|
93
|
+
flattened_key=flattened_key + "[]" if flattened_key is not None else "[]",
|
|
94
|
+
)
|
|
95
|
+
for item in obj
|
|
96
|
+
]
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# Something unexpected was passed, just ignore it.
|
|
100
|
+
return []
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
# Type safe methods for narrowing types with TypeVars.
|
|
104
|
+
# The default narrowing for isinstance(obj, dict) is dict[unknown, unknown],
|
|
105
|
+
# however this cause Pyright to rightfully report errors. As we know we don't
|
|
106
|
+
# care about the contained types we can safely use `object` in it's place.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def is_mapping(obj: object) -> TypeGuard[Mapping[str, object]]:
|
|
110
|
+
return isinstance(obj, Mapping)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def is_dict(obj: object) -> TypeGuard[dict[object, object]]:
|
|
114
|
+
return isinstance(obj, dict)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def is_list(obj: object) -> TypeGuard[list[object]]:
|
|
118
|
+
return isinstance(obj, list)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def is_annotated_type(typ: type) -> bool:
|
|
122
|
+
return get_origin(typ) == Annotated
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def is_list_type(typ: type) -> bool:
|
|
126
|
+
return (get_origin(typ) or typ) == list
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def is_union_type(typ: type) -> bool:
|
|
130
|
+
return _is_union(get_origin(typ))
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def is_required_type(typ: type) -> bool:
|
|
134
|
+
return get_origin(typ) == Required
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
# Extracts T from Annotated[T, ...] or from Required[Annotated[T, ...]]
|
|
138
|
+
def strip_annotated_type(typ: type) -> type:
|
|
139
|
+
if is_required_type(typ) or is_annotated_type(typ):
|
|
140
|
+
return strip_annotated_type(cast(type, get_args(typ)[0]))
|
|
141
|
+
|
|
142
|
+
return typ
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def extract_type_arg(typ: type, index: int) -> type:
|
|
146
|
+
args = get_args(typ)
|
|
147
|
+
try:
|
|
148
|
+
return cast(type, args[index])
|
|
149
|
+
except IndexError:
|
|
150
|
+
raise RuntimeError(f"Expected type {typ} to have a type argument at index {index} but it did not")
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def deepcopy_minimal(item: _T) -> _T:
|
|
154
|
+
"""Minimal reimplementation of copy.deepcopy() that will only copy certain object types:
|
|
155
|
+
|
|
156
|
+
- mappings, e.g. `dict`
|
|
157
|
+
- list
|
|
158
|
+
|
|
159
|
+
This is done for performance reasons.
|
|
160
|
+
"""
|
|
161
|
+
if is_mapping(item):
|
|
162
|
+
return cast(_T, {k: deepcopy_minimal(v) for k, v in item.items()})
|
|
163
|
+
if is_list(item):
|
|
164
|
+
return cast(_T, [deepcopy_minimal(entry) for entry in item])
|
|
165
|
+
return item
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
# copied from https://github.com/Rapptz/RoboDanny
|
|
169
|
+
def human_join(seq: Sequence[str], *, delim: str = ", ", final: str = "or") -> str:
|
|
170
|
+
size = len(seq)
|
|
171
|
+
if size == 0:
|
|
172
|
+
return ""
|
|
173
|
+
|
|
174
|
+
if size == 1:
|
|
175
|
+
return seq[0]
|
|
176
|
+
|
|
177
|
+
if size == 2:
|
|
178
|
+
return f"{seq[0]} {final} {seq[1]}"
|
|
179
|
+
|
|
180
|
+
return delim.join(seq[:-1]) + f" {final} {seq[-1]}"
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def quote(string: str) -> str:
|
|
184
|
+
"""Add single quotation marks around the given string. Does *not* do any escaping."""
|
|
185
|
+
return "'" + string + "'"
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def required_args(*variants: Sequence[str]) -> Callable[[CallableT], CallableT]:
|
|
189
|
+
"""Decorator to enforce a given set of arguments or variants of arguments are passed to the decorated function.
|
|
190
|
+
|
|
191
|
+
Useful for enforcing runtime validation of overloaded functions.
|
|
192
|
+
|
|
193
|
+
Example usage:
|
|
194
|
+
```py
|
|
195
|
+
@overload
|
|
196
|
+
def foo(*, a: str) -> str:
|
|
197
|
+
...
|
|
198
|
+
|
|
199
|
+
@overload
|
|
200
|
+
def foo(*, b: bool) -> str:
|
|
201
|
+
...
|
|
202
|
+
|
|
203
|
+
# This enforces the same constraints that a static type checker would
|
|
204
|
+
# i.e. that either a or b must be passed to the function
|
|
205
|
+
@required_args(['a'], ['b'])
|
|
206
|
+
def foo(*, a: str | None = None, b: bool | None = None) -> str:
|
|
207
|
+
...
|
|
208
|
+
```
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
def inner(func: CallableT) -> CallableT:
|
|
212
|
+
params = inspect.signature(func).parameters
|
|
213
|
+
positional = [
|
|
214
|
+
name
|
|
215
|
+
for name, param in params.items()
|
|
216
|
+
if param.kind
|
|
217
|
+
in {
|
|
218
|
+
param.POSITIONAL_ONLY,
|
|
219
|
+
param.POSITIONAL_OR_KEYWORD,
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
@functools.wraps(func)
|
|
224
|
+
def wrapper(*args: object, **kwargs: object) -> object:
|
|
225
|
+
given_params: set[str] = set()
|
|
226
|
+
for i, _ in enumerate(args):
|
|
227
|
+
try:
|
|
228
|
+
given_params.add(positional[i])
|
|
229
|
+
except IndexError:
|
|
230
|
+
raise TypeError(f"{func.__name__}() takes {len(positional)} argument(s) but {len(args)} were given")
|
|
231
|
+
|
|
232
|
+
for key in kwargs.keys():
|
|
233
|
+
given_params.add(key)
|
|
234
|
+
|
|
235
|
+
for variant in variants:
|
|
236
|
+
matches = all((param in given_params for param in variant))
|
|
237
|
+
if matches:
|
|
238
|
+
break
|
|
239
|
+
else: # no break
|
|
240
|
+
if len(variants) > 1:
|
|
241
|
+
variations = human_join(
|
|
242
|
+
["(" + human_join([quote(arg) for arg in variant], final="and") + ")" for variant in variants]
|
|
243
|
+
)
|
|
244
|
+
msg = f"Missing required arguments; Expected either {variations} arguments to be given"
|
|
245
|
+
else:
|
|
246
|
+
# TODO: this error message is not deterministic
|
|
247
|
+
missing = list(set(variants[0]) - given_params)
|
|
248
|
+
if len(missing) > 1:
|
|
249
|
+
msg = f"Missing required arguments: {human_join([quote(arg) for arg in missing])}"
|
|
250
|
+
else:
|
|
251
|
+
msg = f"Missing required argument: {quote(missing[0])}"
|
|
252
|
+
raise TypeError(msg)
|
|
253
|
+
return func(*args, **kwargs)
|
|
254
|
+
|
|
255
|
+
return wrapper # type: ignore
|
|
256
|
+
|
|
257
|
+
return inner
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
_K = TypeVar("_K")
|
|
261
|
+
_V = TypeVar("_V")
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
@overload
|
|
265
|
+
def strip_not_given(obj: None) -> None:
|
|
266
|
+
...
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
@overload
|
|
270
|
+
def strip_not_given(obj: Mapping[_K, _V | NotGiven]) -> dict[_K, _V]:
|
|
271
|
+
...
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
@overload
|
|
275
|
+
def strip_not_given(obj: object) -> object:
|
|
276
|
+
...
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def strip_not_given(obj: object | None) -> object:
|
|
280
|
+
"""Remove all top-level keys where their values are instances of `NotGiven`"""
|
|
281
|
+
if obj is None:
|
|
282
|
+
return None
|
|
283
|
+
|
|
284
|
+
if not is_mapping(obj):
|
|
285
|
+
return obj
|
|
286
|
+
|
|
287
|
+
return {key: value for key, value in obj.items() if not isinstance(value, NotGiven)}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def coerce_integer(val: str) -> int:
|
|
291
|
+
return int(val, base=10)
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
def coerce_float(val: str) -> float:
|
|
295
|
+
return float(val)
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
def coerce_boolean(val: str) -> bool:
|
|
299
|
+
return val == "true" or val == "1" or val == "on"
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
def removeprefix(string: str, prefix: str) -> str:
|
|
303
|
+
"""Remove a prefix from a string.
|
|
304
|
+
|
|
305
|
+
Backport of `str.removeprefix` for Python < 3.9
|
|
306
|
+
"""
|
|
307
|
+
if string.startswith(prefix):
|
|
308
|
+
return string[len(prefix) :]
|
|
309
|
+
return string
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
def removesuffix(string: str, suffix: str) -> str:
|
|
313
|
+
"""Remove a suffix from a string.
|
|
314
|
+
|
|
315
|
+
Backport of `str.removesuffix` for Python < 3.9
|
|
316
|
+
"""
|
|
317
|
+
if string.endswith(suffix):
|
|
318
|
+
return string[: -len(suffix)]
|
|
319
|
+
return string
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def file_from_path(path: str) -> FileTypes:
|
|
323
|
+
contents = Path(path).read_bytes()
|
|
324
|
+
file_name = os.path.basename(path)
|
|
325
|
+
return (file_name, contents)
|
merge/_version.py
ADDED
merge/pagination.py
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless.
|
|
2
|
+
|
|
3
|
+
from typing import List, Generic, TypeVar, Optional
|
|
4
|
+
|
|
5
|
+
from ._types import ModelT
|
|
6
|
+
from ._models import BaseModel
|
|
7
|
+
from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
|
|
8
|
+
|
|
9
|
+
__all__ = ["SyncPage", "AsyncPage"]
|
|
10
|
+
|
|
11
|
+
_BaseModelT = TypeVar("_BaseModelT", bound=BaseModel)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SyncPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
|
|
15
|
+
next: Optional[str]
|
|
16
|
+
previous: Optional[str]
|
|
17
|
+
results: List[ModelT]
|
|
18
|
+
|
|
19
|
+
def _get_page_items(self) -> List[ModelT]:
|
|
20
|
+
return self.results
|
|
21
|
+
|
|
22
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
23
|
+
cursor = self.next
|
|
24
|
+
if not cursor:
|
|
25
|
+
return None
|
|
26
|
+
|
|
27
|
+
return PageInfo(params={"cursor": cursor})
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class AsyncPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
|
|
31
|
+
next: Optional[str]
|
|
32
|
+
previous: Optional[str]
|
|
33
|
+
results: List[ModelT]
|
|
34
|
+
|
|
35
|
+
def _get_page_items(self) -> List[ModelT]:
|
|
36
|
+
return self.results
|
|
37
|
+
|
|
38
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
39
|
+
cursor = self.next
|
|
40
|
+
if not cursor:
|
|
41
|
+
return None
|
|
42
|
+
|
|
43
|
+
return PageInfo(params={"cursor": cursor})
|
merge/py.typed
ADDED
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless.
|
|
2
|
+
|
|
3
|
+
from .ats import ATS, AsyncATS
|
|
4
|
+
from .crm import CRM, AsyncCRM
|
|
5
|
+
from .hris import HRIS, AsyncHRIS
|
|
6
|
+
from .marketing import Marketing, AsyncMarketing
|
|
7
|
+
from .ticketing import Ticketing, AsyncTicketing
|
|
8
|
+
from .accounting import Accounting, AsyncAccounting
|
|
9
|
+
from .file_storage import FileStorage, AsyncFileStorage
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"HRIS",
|
|
13
|
+
"AsyncHRIS",
|
|
14
|
+
"ATS",
|
|
15
|
+
"AsyncATS",
|
|
16
|
+
"Accounting",
|
|
17
|
+
"AsyncAccounting",
|
|
18
|
+
"Ticketing",
|
|
19
|
+
"AsyncTicketing",
|
|
20
|
+
"CRM",
|
|
21
|
+
"AsyncCRM",
|
|
22
|
+
"Marketing",
|
|
23
|
+
"AsyncMarketing",
|
|
24
|
+
"FileStorage",
|
|
25
|
+
"AsyncFileStorage",
|
|
26
|
+
]
|