fern_gusto 0.0.6.pre.alpha6
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.
- checksums.yaml +7 -0
- data/lib/base_gusto.rb +175 -0
- data/lib/core/file_utilities.rb +27 -0
- data/lib/environment.rb +9 -0
- data/lib/fern_gusto/ach_transactions/client.rb +119 -0
- data/lib/fern_gusto/admins/types/admin.rb +82 -0
- data/lib/fern_gusto/companies/attachments/client.rb +335 -0
- data/lib/fern_gusto/companies/attachments/types/attachments_create_request_category.rb +15 -0
- data/lib/fern_gusto/companies/attachments/types/attachments_get_download_url_response.rb +56 -0
- data/lib/fern_gusto/companies/bank_accounts/client.rb +435 -0
- data/lib/fern_gusto/companies/bank_accounts/types/bank_accounts_create_request_account_type.rb +15 -0
- data/lib/fern_gusto/companies/benefits/client.rb +862 -0
- data/lib/fern_gusto/companies/client.rb +1104 -0
- data/lib/fern_gusto/companies/departments/client.rb +587 -0
- data/lib/fern_gusto/companies/departments/types/departments_add_people_request_contractors_item.rb +59 -0
- data/lib/fern_gusto/companies/departments/types/departments_add_people_request_employees_item.rb +59 -0
- data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_contractors_item.rb +59 -0
- data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_employees_item.rb +59 -0
- data/lib/fern_gusto/companies/employees/client.rb +376 -0
- data/lib/fern_gusto/companies/external_payrolls/client.rb +605 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item.rb +98 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_benefits_item.rb +79 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item.rb +87 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item_earning_type.rb +15 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_taxes_item.rb +69 -0
- data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_tax_liabilities_request_liability_selections_item.rb +80 -0
- data/lib/fern_gusto/companies/federal_tax_details/client.rb +212 -0
- data/lib/fern_gusto/companies/federal_tax_details/types/federal_tax_details_update_request_tax_payer_type.rb +25 -0
- data/lib/fern_gusto/companies/forms/client.rb +345 -0
- data/lib/fern_gusto/companies/industry_selection/client.rb +207 -0
- data/lib/fern_gusto/companies/locations/client.rb +417 -0
- data/lib/fern_gusto/companies/pay_schedules/client.rb +377 -0
- data/lib/fern_gusto/companies/payment_configs/client.rb +198 -0
- data/lib/fern_gusto/companies/payment_configs/types/payment_configs_update_request_payment_speed.rb +19 -0
- data/lib/fern_gusto/companies/signatories/client.rb +513 -0
- data/lib/fern_gusto/companies/signatories/types/signatories_create_request_home_address.rb +89 -0
- data/lib/fern_gusto/companies/signatories/types/signatories_update_request_home_address.rb +88 -0
- data/lib/fern_gusto/companies/tax_requirements/client.rb +367 -0
- data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_list_response_item.rb +75 -0
- data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item.rb +88 -0
- data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item_requirements_item.rb +70 -0
- data/lib/fern_gusto/companies/types/companies_accept_terms_response.rb +56 -0
- data/lib/fern_gusto/companies/types/companies_create_request_company.rb +83 -0
- data/lib/fern_gusto/companies/types/companies_create_request_user.rb +81 -0
- data/lib/fern_gusto/companies/types/companies_create_response.rb +82 -0
- data/lib/fern_gusto/companies/types/companies_get_custom_fields_response.rb +59 -0
- data/lib/fern_gusto/companies/types/companies_migrate_to_embedded_payroll_response.rb +68 -0
- data/lib/fern_gusto/companies/types/companies_retrieve_terms_response.rb +56 -0
- data/lib/fern_gusto/companies/types/company.rb +223 -0
- data/lib/fern_gusto/companies/types/company_company_status.rb +21 -0
- data/lib/fern_gusto/companies/types/company_compensations.rb +85 -0
- data/lib/fern_gusto/companies/types/company_compensations_fixed_item.rb +55 -0
- data/lib/fern_gusto/companies/types/company_compensations_hourly_item.rb +65 -0
- data/lib/fern_gusto/companies/types/company_compensations_paid_time_off_item.rb +55 -0
- data/lib/fern_gusto/companies/types/company_entity_type.rb +23 -0
- data/lib/fern_gusto/companies/types/company_funding_type.rb +15 -0
- data/lib/fern_gusto/companies/types/company_onboarding_status.rb +77 -0
- data/lib/fern_gusto/companies/types/company_onboarding_status_onboarding_steps_item.rb +97 -0
- data/lib/fern_gusto/companies/types/company_pay_schedule_type.rb +15 -0
- data/lib/fern_gusto/companies/types/company_primary_payroll_admin.rb +80 -0
- data/lib/fern_gusto/companies/types/company_primary_signatory.rb +100 -0
- data/lib/fern_gusto/companies/types/company_primary_signatory_home_address.rb +93 -0
- data/lib/fern_gusto/companies/types/company_tier.rb +20 -0
- data/lib/fern_gusto/company_attachment/types/company_attachment.rb +81 -0
- data/lib/fern_gusto/company_attachment/types/company_attachment_category.rb +13 -0
- data/lib/fern_gusto/company_bank_accounts/types/company_bank_account.rb +157 -0
- data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_account_type.rb +13 -0
- data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_plaid_status.rb +14 -0
- data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_status.rb +19 -0
- data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_type.rb +17 -0
- data/lib/fern_gusto/company_benefits/types/benefit_summary.rb +104 -0
- data/lib/fern_gusto/company_benefits/types/benefit_summary_employees.rb +113 -0
- data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits.rb +107 -0
- data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits_pay_period.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements.rb +156 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up.rb +86 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum.rb +88 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum_default_value.rb +68 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution.rb +86 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount.rb +87 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier.rb +88 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage.rb +88 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction.rb +88 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction_default_value.rb +67 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option.rb +86 -0
- data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option_default_value.rb +67 -0
- data/lib/fern_gusto/contractor/types/contractor_onboarding_info.rb +78 -0
- data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_status.rb +14 -0
- data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_steps_item.rb +88 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group.rb +145 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_payment_method.rb +15 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_status.rb +16 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_wage_type.rb +13 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group.rb +127 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal.rb +116 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_status.rb +16 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_totals.rb +74 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_status.rb +16 -0
- data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_totals.rb +74 -0
- data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account.rb +94 -0
- data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account_account_type.rb +13 -0
- data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method.rb +96 -0
- data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_split_by.rb +15 -0
- data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_type.rb +14 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment.rb +146 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_payment_method.rb +15 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_status.rb +13 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary.rb +81 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates.rb +81 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_contractor_payments_item.rb +93 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_total.rb +67 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_contractor_payments_item.rb +86 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_total.rb +67 -0
- data/lib/fern_gusto/contractor_payments/types/contractor_payment_wage_type.rb +13 -0
- data/lib/fern_gusto/contractors/client.rb +1025 -0
- data/lib/fern_gusto/contractors/documents/client.rb +269 -0
- data/lib/fern_gusto/contractors/documents/types/documents_sign_request_fields_item.rb +67 -0
- data/lib/fern_gusto/contractors/forms/client.rb +343 -0
- data/lib/fern_gusto/contractors/payment_groups/client.rb +569 -0
- data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item.rb +102 -0
- data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item_payment_method.rb +15 -0
- data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item.rb +102 -0
- data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item_payment_method.rb +15 -0
- data/lib/fern_gusto/contractors/payment_method/client.rb +369 -0
- data/lib/fern_gusto/contractors/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
- data/lib/fern_gusto/contractors/payment_method/types/payment_method_update_request_type.rb +17 -0
- data/lib/fern_gusto/contractors/payments/client.rb +558 -0
- data/lib/fern_gusto/contractors/payments/types/payments_create_request_payment_method.rb +15 -0
- data/lib/fern_gusto/contractors/payments/types/payments_list_response.rb +62 -0
- data/lib/fern_gusto/contractors/types/contractor.rb +227 -0
- data/lib/fern_gusto/contractors/types/contractor_address.rb +94 -0
- data/lib/fern_gusto/contractors/types/contractor_onboarding_status.rb +18 -0
- data/lib/fern_gusto/contractors/types/contractor_type.rb +13 -0
- data/lib/fern_gusto/contractors/types/contractor_wage_type.rb +13 -0
- data/lib/fern_gusto/custom_fields/types/company_custom_field.rb +88 -0
- data/lib/fern_gusto/custom_fields/types/custom_field_type.rb +16 -0
- data/lib/fern_gusto/custom_fields/types/employee_custom_field.rb +104 -0
- data/lib/fern_gusto/documents/types/document.rb +167 -0
- data/lib/fern_gusto/documents/types/document_fields_item.rb +114 -0
- data/lib/fern_gusto/documents/types/document_pages_item.rb +65 -0
- data/lib/fern_gusto/documents/types/document_recipient_type.rb +15 -0
- data/lib/fern_gusto/documents/types/document_signed.rb +137 -0
- data/lib/fern_gusto/documents/types/document_signed_recipient_type.rb +15 -0
- data/lib/fern_gusto/earning_types/types/earning_type.rb +66 -0
- data/lib/fern_gusto/employee_employments/types/unprocessed_termination_pay_period.rb +101 -0
- data/lib/fern_gusto/employee_payment_method/types/employee_bank_account.rb +94 -0
- data/lib/fern_gusto/employee_payment_method/types/employee_bank_account_account_type.rb +13 -0
- data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_info.rb +96 -0
- data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_split_by.rb +15 -0
- data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_type.rb +14 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax.rb +144 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax_w4data_type.rb +13 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax.rb +90 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_answer.rb +74 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format.rb +69 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format_options_item.rb +67 -0
- data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_question.rb +96 -0
- data/lib/fern_gusto/employees/adresses/client.rb +885 -0
- data/lib/fern_gusto/employees/benefits/client.rb +656 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution.rb +93 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_type.rb +23 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value.rb +67 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value_item.rb +80 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_create_request_deduction_reduces_taxable_income.rb +18 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution.rb +93 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_type.rb +23 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value.rb +67 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value_item.rb +80 -0
- data/lib/fern_gusto/employees/benefits/types/benefits_update_request_deduction_reduces_taxable_income.rb +18 -0
- data/lib/fern_gusto/employees/client.rb +822 -0
- data/lib/fern_gusto/employees/employments/client.rb +799 -0
- data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item.rb +95 -0
- data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item_employment_status.rb +20 -0
- data/lib/fern_gusto/employees/forms/client.rb +433 -0
- data/lib/fern_gusto/employees/forms/types/forms_generate_w2response.rb +132 -0
- data/lib/fern_gusto/employees/garnishments/client.rb +558 -0
- data/lib/fern_gusto/employees/garnishments/types/garnishments_create_request_garnishment_type.rb +20 -0
- data/lib/fern_gusto/employees/jobs_and_compensations/client.rb +938 -0
- data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_minimum_wages_item.rb +62 -0
- data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_payment_unit.rb +19 -0
- data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_minimum_wages_item.rb +62 -0
- data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_payment_unit.rb +19 -0
- data/lib/fern_gusto/employees/payment_method/client.rb +484 -0
- data/lib/fern_gusto/employees/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
- data/lib/fern_gusto/employees/payment_method/types/payment_method_update_bank_account_request_account_type.rb +14 -0
- data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_split_by.rb +17 -0
- data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_splits_item.rb +83 -0
- data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_type.rb +16 -0
- data/lib/fern_gusto/employees/tax_setup/client.rb +422 -0
- data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item.rb +73 -0
- data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item.rb +73 -0
- data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item_answers_item.rb +77 -0
- data/lib/fern_gusto/employees/types/employee.rb +281 -0
- data/lib/fern_gusto/employees/types/employee_current_employment_status.rb +20 -0
- data/lib/fern_gusto/employees/types/employee_onboarding_info.rb +77 -0
- data/lib/fern_gusto/employees/types/employee_onboarding_status.rb +19 -0
- data/lib/fern_gusto/employees/types/employee_onboarding_status_onboarding_steps_item.rb +88 -0
- data/lib/fern_gusto/employees/types/employee_payment_method.rb +13 -0
- data/lib/fern_gusto/employees/types/employees_get_custom_fields_response.rb +59 -0
- data/lib/fern_gusto/employees/types/employees_get_request_include.rb +12 -0
- data/lib/fern_gusto/events/client.rb +144 -0
- data/lib/fern_gusto/events/types/events_list_request_sort_order.rb +12 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll.rb +158 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_benefits_item.rb +73 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_earnings_item.rb +87 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_taxes_item.rb +85 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_basic.rb +101 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_basic_status.rb +16 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item.rb +93 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_benefits_item.rb +74 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_earnings_item.rb +81 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_taxes_item.rb +67 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_metadata.rb +56 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_status.rb +16 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions.rb +72 -0
- data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions_tax_suggestions.rb +68 -0
- data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections.rb +86 -0
- data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections_possible_liabilities.rb +75 -0
- data/lib/fern_gusto/federal_tax_details/types/federal_tax_details.rb +140 -0
- data/lib/fern_gusto/flows/client.rb +113 -0
- data/lib/fern_gusto/flows/types/flow.rb +66 -0
- data/lib/fern_gusto/flows/types/flows_create_request_entity_type.rb +14 -0
- data/lib/fern_gusto/forms/types/form.rb +123 -0
- data/lib/fern_gusto/forms/types/form1099.rb +126 -0
- data/lib/fern_gusto/generated_documents/client.rb +106 -0
- data/lib/fern_gusto/holiday_pay_policies/client.rb +599 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_add_employees_request_employees_item.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays.rb +198 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_christmas_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_columbus_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_independence_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_juneteenth.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_labor_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_memorial_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_mlk_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_new_years_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_presidents_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_thanksgiving.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_veterans_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_remove_employees_request_employees_item.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays.rb +198 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_christmas_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_columbus_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_independence_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_juneteenth.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_labor_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_memorial_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_mlk_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_new_years_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_presidents_day.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_thanksgiving.rb +57 -0
- data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_veterans_day.rb +57 -0
- data/lib/fern_gusto/industry/types/industry.rb +87 -0
- data/lib/fern_gusto/invoices/client.rb +132 -0
- data/lib/fern_gusto/jobs_and_compensations/types/compensation.rb +120 -0
- data/lib/fern_gusto/jobs_and_compensations/types/compensation_payment_unit.rb +17 -0
- data/lib/fern_gusto/jobs_and_compensations/types/job.rb +161 -0
- data/lib/fern_gusto/locations/types/company_address.rb +103 -0
- data/lib/fern_gusto/locations/types/location.rb +171 -0
- data/lib/fern_gusto/notifications/client.rb +120 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule.rb +151 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment.rb +103 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_department.rb +65 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee.rb +65 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee_change.rb +105 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_pay_period.rb +80 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview.rb +71 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview_type.rb +15 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_transition_pay_period.rb +68 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_type.rb +15 -0
- data/lib/fern_gusto/pay_schedules/types/pay_schedule_frequency.rb +17 -0
- data/lib/fern_gusto/payment_configs/types/payment_configs.rb +79 -0
- data/lib/fern_gusto/payroll/client.rb +1644 -0
- data/lib/fern_gusto/payroll/earning_types/client.rb +350 -0
- data/lib/fern_gusto/payroll/earning_types/types/earning_types_get_response.rb +74 -0
- data/lib/fern_gusto/payroll/external_payrolls/client.rb +199 -0
- data/lib/fern_gusto/payroll/pay_schedules/client.rb +584 -0
- data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_create_request_frequency.rb +17 -0
- data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_request_frequency.rb +16 -0
- data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response.rb +72 -0
- data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response_pay_periods_item.rb +83 -0
- data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_update_request_frequency.rb +17 -0
- data/lib/fern_gusto/payroll/types/payroll_create_request_off_cycle_reason.rb +15 -0
- data/lib/fern_gusto/payroll/types/payroll_create_request_withholding_pay_period.rb +18 -0
- data/lib/fern_gusto/payroll/types/payroll_get_request_include_item.rb +14 -0
- data/lib/fern_gusto/payroll/types/payroll_list_request_include_item.rb +13 -0
- data/lib/fern_gusto/payroll/types/payroll_list_request_payroll_types_item.rb +13 -0
- data/lib/fern_gusto/payroll/types/payroll_list_request_processing_statuses_item.rb +12 -0
- data/lib/fern_gusto/payroll/types/payroll_list_request_sort_order.rb +12 -0
- data/lib/fern_gusto/payroll/types/payroll_skip_payroll_request_payroll_type.rb +15 -0
- data/lib/fern_gusto/payroll/types/payroll_submit_request_submission_blockers_item.rb +67 -0
- data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item.rb +133 -0
- data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_fixed_compensations_item.rb +79 -0
- data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_hourly_compensations_item.rb +79 -0
- data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_paid_time_off_item.rb +85 -0
- data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_payment_method.rb +13 -0
- data/lib/fern_gusto/payrolls/types/employee_pay_stub.rb +94 -0
- data/lib/fern_gusto/payrolls/types/paid_time_off.rb +123 -0
- data/lib/fern_gusto/payrolls/types/paid_time_off_name.rb +14 -0
- data/lib/fern_gusto/payrolls/types/pay_period.rb +86 -0
- data/lib/fern_gusto/payrolls/types/pay_period_payroll.rb +107 -0
- data/lib/fern_gusto/payrolls/types/pay_period_payroll_payroll_type.rb +13 -0
- data/lib/fern_gusto/payrolls/types/payroll.rb +285 -0
- data/lib/fern_gusto/payrolls/types/payroll_minimal.rb +250 -0
- data/lib/fern_gusto/payrolls/types/payroll_prepared.rb +250 -0
- data/lib/fern_gusto/recovery_cases/client.rb +198 -0
- data/lib/fern_gusto/reports/client.rb +306 -0
- data/lib/fern_gusto/reports/types/reports_create_request_columns_item.rb +91 -0
- data/lib/fern_gusto/reports/types/reports_create_request_employment_status.rb +18 -0
- data/lib/fern_gusto/reports/types/reports_create_request_employment_type.rb +16 -0
- data/lib/fern_gusto/reports/types/reports_create_request_file_type.rb +13 -0
- data/lib/fern_gusto/reports/types/reports_create_request_groupings_item.rb +14 -0
- data/lib/fern_gusto/reports/types/reports_create_request_payment_method.rb +13 -0
- data/lib/fern_gusto/signatories/types/signatory.rb +175 -0
- data/lib/fern_gusto/signatories/types/signatory_home_address.rb +93 -0
- data/lib/fern_gusto/signatories/types/signatory_identity_verification_status.rb +28 -0
- data/lib/fern_gusto/terminations/types/termination.rb +109 -0
- data/lib/fern_gusto/time_off_policies/client.rb +863 -0
- data/lib/fern_gusto/time_off_policies/types/time_off_policies_add_employees_request_employees_item.rb +67 -0
- data/lib/fern_gusto/time_off_policies/types/time_off_policies_create_request_accrual_method.rb +19 -0
- data/lib/fern_gusto/time_off_policies/types/time_off_policies_remove_employees_request_employees_item.rb +57 -0
- data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_balance_request_employees_item.rb +67 -0
- data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_request_accrual_method.rb +19 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request.rb +141 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request_approver.rb +66 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request_employee.rb +66 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request_initiator.rb +66 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request_request_type.rb +13 -0
- data/lib/fern_gusto/time_off_requests/types/time_off_request_status.rb +14 -0
- data/lib/fern_gusto/token/client.rb +270 -0
- data/lib/fern_gusto/token/types/token_get_info_response.rb +85 -0
- data/lib/fern_gusto/token/types/token_get_info_response_resource.rb +64 -0
- data/lib/fern_gusto/token/types/token_get_info_response_resource_owner.rb +65 -0
- data/lib/fern_gusto/token/types/token_get_info_response_resource_owner_type.rb +13 -0
- data/lib/fern_gusto/token/types/token_get_system_access_token_response.rb +77 -0
- data/lib/fern_gusto/types/accruing_time_off_hour.rb +64 -0
- data/lib/fern_gusto/types/ach_transaction.rb +162 -0
- data/lib/fern_gusto/types/ach_transaction_payment_direction.rb +11 -0
- data/lib/fern_gusto/types/ach_transaction_payment_event_type.rb +11 -0
- data/lib/fern_gusto/types/ach_transaction_payment_status.rb +13 -0
- data/lib/fern_gusto/types/ach_transaction_recipient_type.rb +11 -0
- data/lib/fern_gusto/types/address.rb +111 -0
- data/lib/fern_gusto/types/authentication.rb +96 -0
- data/lib/fern_gusto/types/child_support_data.rb +58 -0
- data/lib/fern_gusto/types/child_support_data_agencies_item.rb +104 -0
- data/lib/fern_gusto/types/child_support_data_agencies_item_fips_codes_item.rb +67 -0
- data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item.rb +70 -0
- data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item_key.rb +14 -0
- data/lib/fern_gusto/types/company_benefit.rb +135 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits.rb +148 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item.rb +115 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution.rb +91 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value.rb +61 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers.rb +60 -0
- data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers_tiers_item.rb +86 -0
- data/lib/fern_gusto/types/contractor_address_info.rb +118 -0
- data/lib/fern_gusto/types/contractor_body.rb +200 -0
- data/lib/fern_gusto/types/contractor_body_type.rb +11 -0
- data/lib/fern_gusto/types/contractor_body_wage_type.rb +11 -0
- data/lib/fern_gusto/types/contractor_payment_receipt.rb +161 -0
- data/lib/fern_gusto/types/contractor_payment_receipt_contractor_payments_item.rb +120 -0
- data/lib/fern_gusto/types/contractor_payment_receipt_licensee.rb +92 -0
- data/lib/fern_gusto/types/contractor_payment_receipt_totals.rb +54 -0
- data/lib/fern_gusto/types/create_report.rb +77 -0
- data/lib/fern_gusto/types/department.rb +103 -0
- data/lib/fern_gusto/types/department_contractors_item.rb +53 -0
- data/lib/fern_gusto/types/department_employees_item.rb +53 -0
- data/lib/fern_gusto/types/document_pdf.rb +63 -0
- data/lib/fern_gusto/types/employee_address.rb +139 -0
- data/lib/fern_gusto/types/employee_benefit.rb +220 -0
- data/lib/fern_gusto/types/employee_benefit_base_object.rb +199 -0
- data/lib/fern_gusto/types/employee_benefit_base_object_contribution.rb +89 -0
- data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value.rb +61 -0
- data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers.rb +59 -0
- data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers_tiers_item.rb +85 -0
- data/lib/fern_gusto/types/employee_benefit_base_object_deduction_reduces_taxable_income.rb +14 -0
- data/lib/fern_gusto/types/employee_benefit_for_company_benefit.rb +220 -0
- data/lib/fern_gusto/types/employee_work_address.rb +137 -0
- data/lib/fern_gusto/types/entity_error_object.rb +102 -0
- data/lib/fern_gusto/types/entity_error_object_errors_item.rb +89 -0
- data/lib/fern_gusto/types/event.rb +99 -0
- data/lib/fern_gusto/types/flsa_status_type.rb +23 -0
- data/lib/fern_gusto/types/form_pdf.rb +63 -0
- data/lib/fern_gusto/types/garnishment.rb +172 -0
- data/lib/fern_gusto/types/garnishment_child_support.rb +113 -0
- data/lib/fern_gusto/types/garnishment_child_support_payment_period.rb +14 -0
- data/lib/fern_gusto/types/garnishment_garnishment_type.rb +16 -0
- data/lib/fern_gusto/types/generated_document.rb +70 -0
- data/lib/fern_gusto/types/gross_up_pay.rb +53 -0
- data/lib/fern_gusto/types/historical_employee_body.rb +156 -0
- data/lib/fern_gusto/types/historical_employee_body_employee_state_taxes.rb +80 -0
- data/lib/fern_gusto/types/historical_employee_body_home_address.rb +84 -0
- data/lib/fern_gusto/types/historical_employee_body_job.rb +53 -0
- data/lib/fern_gusto/types/historical_employee_body_termination.rb +53 -0
- data/lib/fern_gusto/types/historical_employee_body_work_address.rb +53 -0
- data/lib/fern_gusto/types/holiday_pay_policy.rb +88 -0
- data/lib/fern_gusto/types/holiday_pay_policy_employees_item.rb +53 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item.rb +179 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_columbus_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_independence_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_juneteenth.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_labor_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_memorial_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_mlk_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_new_years_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_presidents_day.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_thanksgiving.rb +72 -0
- data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_veterans_day.rb +72 -0
- data/lib/fern_gusto/types/invoice_data.rb +58 -0
- data/lib/fern_gusto/types/invoice_data_active_companies_item.rb +91 -0
- data/lib/fern_gusto/types/minimum_wage.rb +96 -0
- data/lib/fern_gusto/types/notification.rb +125 -0
- data/lib/fern_gusto/types/notification_resources_item.rb +85 -0
- data/lib/fern_gusto/types/off_cycle_reason_type.rb +19 -0
- data/lib/fern_gusto/types/paid_holidays.rb +61 -0
- data/lib/fern_gusto/types/paid_holidays_schema.rb +77 -0
- data/lib/fern_gusto/types/pay_schedule_assignment_body.rb +111 -0
- data/lib/fern_gusto/types/pay_schedule_assignment_body_departments_item.rb +65 -0
- data/lib/fern_gusto/types/pay_schedule_assignment_body_employees_item.rb +64 -0
- data/lib/fern_gusto/types/pay_schedule_assignment_body_type.rb +13 -0
- data/lib/fern_gusto/types/payment_method_bank_account.rb +87 -0
- data/lib/fern_gusto/types/payroll_blocker.rb +63 -0
- data/lib/fern_gusto/types/payroll_blockers_error.rb +60 -0
- data/lib/fern_gusto/types/payroll_blockers_error_errors_item.rb +83 -0
- data/lib/fern_gusto/types/payroll_blockers_error_errors_item_metadata.rb +54 -0
- data/lib/fern_gusto/types/payroll_check.rb +84 -0
- data/lib/fern_gusto/types/payroll_company_taxes_type.rb +6 -0
- data/lib/fern_gusto/types/payroll_company_taxes_type_item.rb +70 -0
- data/lib/fern_gusto/types/payroll_credit_blockers_type.rb +6 -0
- data/lib/fern_gusto/types/payroll_credit_blockers_type_item.rb +89 -0
- data/lib/fern_gusto/types/payroll_credit_blockers_type_item_status.rb +13 -0
- data/lib/fern_gusto/types/payroll_credit_blockers_type_item_unblock_options_item.rb +72 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type.rb +6 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item.rb +216 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_benefits_item.rb +79 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_deductions_item.rb +65 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_fixed_compensations_item.rb +74 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_hourly_compensations_item.rb +92 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_paid_time_off_item.rb +76 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_payment_method.rb +11 -0
- data/lib/fern_gusto/types/payroll_employee_compensations_type_item_taxes_item.rb +70 -0
- data/lib/fern_gusto/types/payroll_fixed_compensation_types_type.rb +6 -0
- data/lib/fern_gusto/types/payroll_fixed_compensation_types_type_item.rb +54 -0
- data/lib/fern_gusto/types/payroll_pay_period_type.rb +70 -0
- data/lib/fern_gusto/types/payroll_payment_speed_changed_type.rb +86 -0
- data/lib/fern_gusto/types/payroll_payroll_status_meta_type.rb +92 -0
- data/lib/fern_gusto/types/payroll_processing_request.rb +68 -0
- data/lib/fern_gusto/types/payroll_processing_request_status.rb +14 -0
- data/lib/fern_gusto/types/payroll_receipt.rb +177 -0
- data/lib/fern_gusto/types/payroll_receipt_employee_compensations_item.rb +116 -0
- data/lib/fern_gusto/types/payroll_receipt_licensee.rb +92 -0
- data/lib/fern_gusto/types/payroll_receipt_taxes_item.rb +63 -0
- data/lib/fern_gusto/types/payroll_receipt_totals.rb +85 -0
- data/lib/fern_gusto/types/payroll_reversal.rb +91 -0
- data/lib/fern_gusto/types/payroll_submission_blockers_type.rb +6 -0
- data/lib/fern_gusto/types/payroll_submission_blockers_type_item.rb +89 -0
- data/lib/fern_gusto/types/payroll_submission_blockers_type_item_status.rb +11 -0
- data/lib/fern_gusto/types/payroll_submission_blockers_type_item_unblock_options_item.rb +72 -0
- data/lib/fern_gusto/types/payroll_totals_type.rb +199 -0
- data/lib/fern_gusto/types/payroll_withholding_pay_period_type.rb +17 -0
- data/lib/fern_gusto/types/recovery_case.rb +131 -0
- data/lib/fern_gusto/types/recovery_case_status.rb +14 -0
- data/lib/fern_gusto/types/rehire.rb +116 -0
- data/lib/fern_gusto/types/rehire_body.rb +91 -0
- data/lib/fern_gusto/types/rehire_body_employment_status.rb +16 -0
- data/lib/fern_gusto/types/rehire_employment_status.rb +16 -0
- data/lib/fern_gusto/types/report.rb +72 -0
- data/lib/fern_gusto/types/report_template.rb +77 -0
- data/lib/fern_gusto/types/supported_benefit.rb +122 -0
- data/lib/fern_gusto/types/tax_requirement.rb +111 -0
- data/lib/fern_gusto/types/tax_requirement_applicable_if_item.rb +69 -0
- data/lib/fern_gusto/types/tax_requirement_applicable_if_item_value.rb +72 -0
- data/lib/fern_gusto/types/tax_requirement_effective_from.rb +5 -0
- data/lib/fern_gusto/types/tax_requirement_metadata.rb +182 -0
- data/lib/fern_gusto/types/tax_requirement_metadata_options_item.rb +70 -0
- data/lib/fern_gusto/types/tax_requirement_metadata_rate_type.rb +13 -0
- data/lib/fern_gusto/types/tax_requirement_metadata_type.rb +31 -0
- data/lib/fern_gusto/types/tax_requirement_metadata_validation.rb +81 -0
- data/lib/fern_gusto/types/tax_requirement_metadata_validation_type.rb +11 -0
- data/lib/fern_gusto/types/tax_requirement_set.rb +90 -0
- data/lib/fern_gusto/types/tax_requirements_state.rb +75 -0
- data/lib/fern_gusto/types/time_off_activity.rb +107 -0
- data/lib/fern_gusto/types/time_off_activity_time_off_type.rb +11 -0
- data/lib/fern_gusto/types/time_off_policy.rb +183 -0
- data/lib/fern_gusto/types/time_off_policy_employees_item.rb +53 -0
- data/lib/fern_gusto/types/time_off_policy_policy_type.rb +11 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body.rb +59 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body_errors.rb +57 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body_errors_base_item.rb +72 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body_item.rb +65 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item.rb +69 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item_answers_item.rb +72 -0
- data/lib/fern_gusto/types/unprocessable_entity_error_object.rb +63 -0
- data/lib/fern_gusto/types/versionable.rb +57 -0
- data/lib/fern_gusto/types/versionable_required.rb +55 -0
- data/lib/fern_gusto/types/wire_in_request.rb +170 -0
- data/lib/fern_gusto/types/wire_in_request_status.rb +14 -0
- data/lib/fern_gusto/webhooks/client.rb +627 -0
- data/lib/fern_gusto/webhooks/types/webhook_subscription.rb +82 -0
- data/lib/fern_gusto/webhooks/types/webhook_subscription_status.rb +14 -0
- data/lib/fern_gusto/webhooks/types/webhook_subscription_subscription_types_item.rb +25 -0
- data/lib/fern_gusto/webhooks/types/webhooks_create_request_subscription_types_item.rb +25 -0
- data/lib/fern_gusto/webhooks/types/webhooks_update_request_subscription_types_item.rb +25 -0
- data/lib/fern_gusto/wire_in_requests/client.rb +273 -0
- data/lib/fern_gusto.rb +310 -0
- data/lib/gemconfig.rb +13 -0
- data/lib/gusto_legacy.rb +19 -0
- data/lib/requests.rb +206 -0
- data/lib/types_export.rb +461 -0
- metadata +671 -0
@@ -0,0 +1,1025 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../requests"
|
3
|
+
require_relative "payment_method/client"
|
4
|
+
require_relative "forms/client"
|
5
|
+
require_relative "documents/client"
|
6
|
+
require_relative "payments/client"
|
7
|
+
require_relative "payment_groups/client"
|
8
|
+
require_relative "types/contractor"
|
9
|
+
require "json"
|
10
|
+
require_relative "../types/contractor_body"
|
11
|
+
require_relative "../types/contractor_body_type"
|
12
|
+
require_relative "../types/contractor_body_wage_type"
|
13
|
+
require_relative "../contractor/types/contractor_onboarding_info"
|
14
|
+
require_relative "../types/contractor_address_info"
|
15
|
+
require "async"
|
16
|
+
require "async"
|
17
|
+
require "async"
|
18
|
+
require "async"
|
19
|
+
require "async"
|
20
|
+
require "async"
|
21
|
+
require "async"
|
22
|
+
require "async"
|
23
|
+
require "async"
|
24
|
+
require_relative "../../requests"
|
25
|
+
|
26
|
+
module Gusto
|
27
|
+
class ContractorsClient
|
28
|
+
# @return [Gusto::RequestClient]
|
29
|
+
attr_reader :request_client
|
30
|
+
# @return [Gusto::Contractors::PaymentMethodClient]
|
31
|
+
attr_reader :payment_method
|
32
|
+
# @return [Gusto::Contractors::FormsClient]
|
33
|
+
attr_reader :forms
|
34
|
+
# @return [Gusto::Contractors::DocumentsClient]
|
35
|
+
attr_reader :documents
|
36
|
+
# @return [Gusto::Contractors::PaymentsClient]
|
37
|
+
attr_reader :payments
|
38
|
+
# @return [Gusto::Contractors::PaymentGroupsClient]
|
39
|
+
attr_reader :payment_groups
|
40
|
+
|
41
|
+
|
42
|
+
# @param request_client [Gusto::RequestClient]
|
43
|
+
# @return [Gusto::ContractorsClient]
|
44
|
+
def initialize(request_client:)
|
45
|
+
@request_client = request_client
|
46
|
+
@payment_method = Gusto::Contractors::PaymentMethodClient.new(request_client: request_client)
|
47
|
+
@forms = Gusto::Contractors::FormsClient.new(request_client: request_client)
|
48
|
+
@documents = Gusto::Contractors::DocumentsClient.new(request_client: request_client)
|
49
|
+
@payments = Gusto::Contractors::PaymentsClient.new(request_client: request_client)
|
50
|
+
@payment_groups = Gusto::Contractors::PaymentGroupsClient.new(request_client: request_client)
|
51
|
+
end
|
52
|
+
# Get all contractors, active and inactive, individual and business, for a
|
53
|
+
# company.
|
54
|
+
# scope: `contractors:read`
|
55
|
+
#
|
56
|
+
# @param company_id [String] The UUID of the company
|
57
|
+
# @param page [Float] The page that is requested. When unspecified, will load all objects unless
|
58
|
+
# endpoint forces pagination.
|
59
|
+
# @param per [Float] Number of objects per page. For majority of endpoints will default to 25
|
60
|
+
# @param search_term [String] A string to search for in the object's names
|
61
|
+
# @param request_options [Gusto::RequestOptions]
|
62
|
+
# @return [Array<Gusto::Contractors::Contractor>]
|
63
|
+
# @example
|
64
|
+
# api = Gusto::Client.new(
|
65
|
+
# base_url: "https://api.example.com",
|
66
|
+
# environment: Gusto::Environment::DEMO,
|
67
|
+
# token: "YOUR_AUTH_TOKEN"
|
68
|
+
# )
|
69
|
+
# api.contractors.list(company_id: "company_id")
|
70
|
+
def list(company_id:, page: nil, per: nil, search_term: nil, request_options: nil)
|
71
|
+
response = @request_client.conn.get do | req |
|
72
|
+
unless request_options&.timeout_in_seconds.nil?
|
73
|
+
req.options.timeout = request_options.timeout_in_seconds
|
74
|
+
end
|
75
|
+
unless request_options&.token.nil?
|
76
|
+
req.headers["Authorization"] = request_options.token
|
77
|
+
end
|
78
|
+
unless request_options&.gusto_api_version.nil?
|
79
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
80
|
+
end
|
81
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
82
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per, "search_term": search_term }.compact
|
83
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
84
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
85
|
+
end
|
86
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractors"
|
87
|
+
end
|
88
|
+
parsed_json = JSON.parse(response.body)
|
89
|
+
parsed_json&.map do | item |
|
90
|
+
item = item.to_json
|
91
|
+
Gusto::Contractors::Contractor.from_json(json_object: item)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
# Create an individual or business contractor.
|
95
|
+
# scope: `contractors:manage`
|
96
|
+
#
|
97
|
+
# @param company_id [String] The UUID of the company
|
98
|
+
# @param request [Hash] Request of type Gusto::ContractorBody, as a Hash
|
99
|
+
# * :type (Gusto::ContractorBodyType)
|
100
|
+
# * :wage_type (Gusto::ContractorBodyWageType)
|
101
|
+
# * :start_date (String)
|
102
|
+
# * :hourly_rate (String)
|
103
|
+
# * :self_onboarding (Boolean)
|
104
|
+
# * :email (String)
|
105
|
+
# * :first_name (String)
|
106
|
+
# * :last_name (String)
|
107
|
+
# * :middle_initial (String)
|
108
|
+
# * :file_new_hire_report (Boolean)
|
109
|
+
# * :work_state (String)
|
110
|
+
# * :ssn (String)
|
111
|
+
# * :business_name (String)
|
112
|
+
# * :ein (String)
|
113
|
+
# * :is_active (Boolean)
|
114
|
+
# @param request_options [Gusto::RequestOptions]
|
115
|
+
# @return [Gusto::Contractors::Contractor]
|
116
|
+
# @example
|
117
|
+
# api = Gusto::Client.new(
|
118
|
+
# base_url: "https://api.example.com",
|
119
|
+
# environment: Gusto::Environment::DEMO,
|
120
|
+
# token: "YOUR_AUTH_TOKEN"
|
121
|
+
# )
|
122
|
+
# api.contractors.create(company_id: "company_id", request: { type: INDIVIDUAL, wage_type: FIXED, start_date: "2020-04-01", self_onboarding: true, email: "johnson@johnson.com", first_name: "Johnson", last_name: "Johnson", file_new_hire_report: true, work_state: "CA" })
|
123
|
+
def create(company_id:, request:, request_options: nil)
|
124
|
+
response = @request_client.conn.post do | req |
|
125
|
+
unless request_options&.timeout_in_seconds.nil?
|
126
|
+
req.options.timeout = request_options.timeout_in_seconds
|
127
|
+
end
|
128
|
+
unless request_options&.token.nil?
|
129
|
+
req.headers["Authorization"] = request_options.token
|
130
|
+
end
|
131
|
+
unless request_options&.gusto_api_version.nil?
|
132
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
133
|
+
end
|
134
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
135
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
136
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
137
|
+
end
|
138
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
139
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractors"
|
140
|
+
end
|
141
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
142
|
+
end
|
143
|
+
# Get a contractor.
|
144
|
+
# scope: `contractors:read`
|
145
|
+
#
|
146
|
+
# @param contractor_id [String] The UUID of the contractor
|
147
|
+
# @param request_options [Gusto::RequestOptions]
|
148
|
+
# @return [Gusto::Contractors::Contractor]
|
149
|
+
# @example
|
150
|
+
# api = Gusto::Client.new(
|
151
|
+
# base_url: "https://api.example.com",
|
152
|
+
# environment: Gusto::Environment::DEMO,
|
153
|
+
# token: "YOUR_AUTH_TOKEN"
|
154
|
+
# )
|
155
|
+
# api.contractors.get(contractor_id: "contractor_id")
|
156
|
+
def get(contractor_id:, request_options: nil)
|
157
|
+
response = @request_client.conn.get do | req |
|
158
|
+
unless request_options&.timeout_in_seconds.nil?
|
159
|
+
req.options.timeout = request_options.timeout_in_seconds
|
160
|
+
end
|
161
|
+
unless request_options&.token.nil?
|
162
|
+
req.headers["Authorization"] = request_options.token
|
163
|
+
end
|
164
|
+
unless request_options&.gusto_api_version.nil?
|
165
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
166
|
+
end
|
167
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
168
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
169
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
170
|
+
end
|
171
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
172
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
173
|
+
end
|
174
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
175
|
+
end
|
176
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
177
|
+
end
|
178
|
+
# Update a contractor.
|
179
|
+
# scope: `contractors:write`
|
180
|
+
# > 🚧 Warning
|
181
|
+
# >
|
182
|
+
# > Watch out when changing a contractor's type (when the contractor is finished
|
183
|
+
# onboarding). Specifically, changing contractor type can be dangerous since Gusto
|
184
|
+
# won’t recognize and file two separate 1099s if they simply change from business
|
185
|
+
# to individual
|
186
|
+
#
|
187
|
+
# @param contractor_id [String] The UUID of the contractor
|
188
|
+
# @param version [String] The current version of the object. See the [versioning
|
189
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
|
190
|
+
# on how to use this field.
|
191
|
+
# @param type [Gusto::ContractorBodyType] The contractor type.
|
192
|
+
# @param wage_type [Gusto::ContractorBodyWageType] The contractor’s wage type.
|
193
|
+
# @param start_date [String] The day when the contractor will start working for the company.
|
194
|
+
# @param hourly_rate [String] The contractor’s hourly rate. This attribute is required if the wage_type is
|
195
|
+
# `Hourly`.
|
196
|
+
# @param self_onboarding [Boolean] Whether the contractor or the payroll admin will complete onboarding in Gusto.
|
197
|
+
# Self-onboarding is recommended so that contractors receive Gusto accounts.
|
198
|
+
# If self_onboarding is true, then email is required.
|
199
|
+
# @param email [String] The contractor’s email address.
|
200
|
+
# @param first_name [String] The contractor’s first name.
|
201
|
+
# This attribute is required for `Individual` contractors and will be ignored for
|
202
|
+
# `Business` contractors.
|
203
|
+
# @param last_name [String] The contractor’s last name.
|
204
|
+
# This attribute is required for `Individual` contractors and will be ignored for
|
205
|
+
# `Business` contractors.
|
206
|
+
# @param middle_initial [String] The contractor’s middle initial.
|
207
|
+
# This attribute is optional for `Individual` contractors and will be ignored for
|
208
|
+
# `Business` contractors.
|
209
|
+
# @param file_new_hire_report [Boolean] The boolean flag indicating whether Gusto will file a new hire report for the
|
210
|
+
# contractor.
|
211
|
+
# This attribute is optional for `Individual` contractors and will be ignored for
|
212
|
+
# `Business` contractors.
|
213
|
+
# @param work_state [String] State where the contractor will be conducting the majority of their work for the
|
214
|
+
# company.
|
215
|
+
# This value is used when generating the new hire report.
|
216
|
+
# This attribute is required for `Individual` contractors if
|
217
|
+
# `file_new_hire_report` is true and will be ignored for `Business` contractors.
|
218
|
+
# @param ssn [String] This attribute is optional for `Individual` contractors and will be ignored for
|
219
|
+
# `Business` contractors.
|
220
|
+
# Social security number is needed to file the annual 1099 tax form.
|
221
|
+
# @param business_name [String] The name of the contractor business. This attribute is required for `Business`
|
222
|
+
# contractors and will be ignored for `Individual` contractors.
|
223
|
+
# @param ein [String] The employer identification number of the contractor business.
|
224
|
+
# This attribute is optional for `Business` contractors and will be ignored for
|
225
|
+
# `Individual` contractors.
|
226
|
+
# @param is_active [Boolean] The status of the contractor. If the contractor's start date is in the future,
|
227
|
+
# updating this field to true means we are setting the start date to today.
|
228
|
+
# @param request_options [Gusto::RequestOptions]
|
229
|
+
# @return [Gusto::Contractors::Contractor]
|
230
|
+
# @example
|
231
|
+
# api = Gusto::Client.new(
|
232
|
+
# base_url: "https://api.example.com",
|
233
|
+
# environment: Gusto::Environment::DEMO,
|
234
|
+
# token: "YOUR_AUTH_TOKEN"
|
235
|
+
# )
|
236
|
+
# api.contractors.update(contractor_id: "contractor_id")
|
237
|
+
def update(contractor_id:, version:, type: nil, wage_type: nil, start_date: nil, hourly_rate: nil, self_onboarding: nil, email: nil, first_name: nil, last_name: nil, middle_initial: nil, file_new_hire_report: nil, work_state: nil, ssn: nil, business_name: nil, ein: nil, is_active: nil, request_options: nil)
|
238
|
+
response = @request_client.conn.put do | req |
|
239
|
+
unless request_options&.timeout_in_seconds.nil?
|
240
|
+
req.options.timeout = request_options.timeout_in_seconds
|
241
|
+
end
|
242
|
+
unless request_options&.token.nil?
|
243
|
+
req.headers["Authorization"] = request_options.token
|
244
|
+
end
|
245
|
+
unless request_options&.gusto_api_version.nil?
|
246
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
247
|
+
end
|
248
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
249
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
250
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
251
|
+
end
|
252
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type, wage_type: wage_type, start_date: start_date, hourly_rate: hourly_rate, self_onboarding: self_onboarding, email: email, first_name: first_name, last_name: last_name, middle_initial: middle_initial, file_new_hire_report: file_new_hire_report, work_state: work_state, ssn: ssn, business_name: business_name, ein: ein, is_active: is_active }.compact
|
253
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
254
|
+
end
|
255
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
256
|
+
end
|
257
|
+
# A contractor can only be deleted when there are no contractor payments.
|
258
|
+
# scope: `contractors:manage`
|
259
|
+
#
|
260
|
+
# @param contractor_id [String] The UUID of the contractor
|
261
|
+
# @param request_options [Gusto::RequestOptions]
|
262
|
+
# @return [Void]
|
263
|
+
# @example
|
264
|
+
# api = Gusto::Client.new(
|
265
|
+
# base_url: "https://api.example.com",
|
266
|
+
# environment: Gusto::Environment::DEMO,
|
267
|
+
# token: "YOUR_AUTH_TOKEN"
|
268
|
+
# )
|
269
|
+
# api.contractors.delete(contractor_id: "contractor_id")
|
270
|
+
def delete(contractor_id:, request_options: nil)
|
271
|
+
response = @request_client.conn.delete do | req |
|
272
|
+
unless request_options&.timeout_in_seconds.nil?
|
273
|
+
req.options.timeout = request_options.timeout_in_seconds
|
274
|
+
end
|
275
|
+
unless request_options&.token.nil?
|
276
|
+
req.headers["Authorization"] = request_options.token
|
277
|
+
end
|
278
|
+
unless request_options&.gusto_api_version.nil?
|
279
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
280
|
+
end
|
281
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
282
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
283
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
284
|
+
end
|
285
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
286
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
287
|
+
end
|
288
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
289
|
+
end
|
290
|
+
end
|
291
|
+
# Retrieves a contractor's onboarding status. The data returned helps inform the
|
292
|
+
# required onboarding steps and respective completion status.
|
293
|
+
# scope: `contractors:read`
|
294
|
+
# ## onboarding_status
|
295
|
+
# ### Admin-facilitated onboarding
|
296
|
+
# | onboarding_status |
|
297
|
+
# Description |
|
298
|
+
# | :---------------------------- |
|
299
|
+
# ------------------------------------------------------------------------: |
|
300
|
+
# | `admin_onboarding_incomplete` | Admin needs to enter basic
|
301
|
+
# information about the contractor. |
|
302
|
+
# | `admin_onboarding_review` | All information has been completed and admin
|
303
|
+
# needs to confirm onboarding. |
|
304
|
+
# | `onboarding_completed` | Contractor has been
|
305
|
+
# fully onboarded and verified. |
|
306
|
+
# ### Contractor self-onboarding
|
307
|
+
# | onboarding_status | Description
|
308
|
+
# |
|
309
|
+
# | ----------------------------- |
|
310
|
+
# --------------------------------------------------------------------------------
|
311
|
+
# |
|
312
|
+
# | `admin_onboarding_incomplete` | Admin needs to enter basic information about
|
313
|
+
# the contractor.
|
314
|
+
# |
|
315
|
+
# | `self_onboarding_not_invited` | Admin has the intention to invite the
|
316
|
+
# contractor to self-onboard (e.g., marking a checkbox), but the system has not
|
317
|
+
# yet sent the invitation. |
|
318
|
+
# | `self_onboarding_invited` | Contractor has been sent an invitation to
|
319
|
+
# self-onboard.
|
320
|
+
# |
|
321
|
+
# | `self_onboarding_started` | Contractor has started the self-onboarding
|
322
|
+
# process.
|
323
|
+
# |
|
324
|
+
# | `self_onboarding_review` | Admin needs to review contractors's entered
|
325
|
+
# information and confirm onboarding.
|
326
|
+
# |
|
327
|
+
# | `onboarding_completed` | Contractor has been fully onboarded and
|
328
|
+
# verified.
|
329
|
+
# |
|
330
|
+
# ## onboarding_steps
|
331
|
+
# | onboarding_steps |
|
332
|
+
# Requirement(s) to be completed |
|
333
|
+
# | :--------------------- |
|
334
|
+
# -------------------------------------------------------------------------------:
|
335
|
+
# |
|
336
|
+
# | `basic_details` | Add individual contractor's first name, last name,
|
337
|
+
# social security number or Business name and EIN depending on the contractor type
|
338
|
+
# |
|
339
|
+
# | `add_address` |
|
340
|
+
# Add contractor address. |
|
341
|
+
# | `compensation_details` |
|
342
|
+
# Add contractor compensation. |
|
343
|
+
# | `payment_details` |
|
344
|
+
# Set up contractor's direct deposit or set to check. |
|
345
|
+
# | `sign_documents` |
|
346
|
+
# Contractor forms (e.g., W9) are generated & signed. |
|
347
|
+
# | `file_new_hire_report` |
|
348
|
+
# Contractor new hire report is generated. |
|
349
|
+
#
|
350
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
351
|
+
# @param request_options [Gusto::RequestOptions]
|
352
|
+
# @return [Gusto::Contractor::ContractorOnboardingInfo]
|
353
|
+
# @example
|
354
|
+
# api = Gusto::Client.new(
|
355
|
+
# base_url: "https://api.example.com",
|
356
|
+
# environment: Gusto::Environment::DEMO,
|
357
|
+
# token: "YOUR_AUTH_TOKEN"
|
358
|
+
# )
|
359
|
+
# api.contractors.get_onboarding_status(contractor_uuid: "contractor_uuid")
|
360
|
+
def get_onboarding_status(contractor_uuid:, request_options: nil)
|
361
|
+
response = @request_client.conn.get do | req |
|
362
|
+
unless request_options&.timeout_in_seconds.nil?
|
363
|
+
req.options.timeout = request_options.timeout_in_seconds
|
364
|
+
end
|
365
|
+
unless request_options&.token.nil?
|
366
|
+
req.headers["Authorization"] = request_options.token
|
367
|
+
end
|
368
|
+
unless request_options&.gusto_api_version.nil?
|
369
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
370
|
+
end
|
371
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
372
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
373
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
374
|
+
end
|
375
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
376
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
377
|
+
end
|
378
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/onboarding_status"
|
379
|
+
end
|
380
|
+
Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
|
381
|
+
end
|
382
|
+
# Updates a contractor's onboarding status.
|
383
|
+
# scope: `contractors:write`
|
384
|
+
# Below is a list of valid onboarding status changes depending on the intended
|
385
|
+
# action to be performed on behalf of the contractor.
|
386
|
+
# | Action | current
|
387
|
+
# onboarding_status | new onboarding_status |
|
388
|
+
# | :---------------------------------------- |
|
389
|
+
# :------------------------------------------------------------: |
|
390
|
+
# ----------------------------: |
|
391
|
+
# | Mark a contractor as self-onboarding |
|
392
|
+
# `admin_onboarding_incomplete` | `self_onboarding_not_invited` |
|
393
|
+
# | Invite a contractor to self-onboard | `admin_onboarding_incomplete` or
|
394
|
+
# `self_onboarding_not_invited` | `self_onboarding_invited` |
|
395
|
+
# | Cancel a contractor's self-onboarding | `self_onboarding_invited` or
|
396
|
+
# `self_onboarding_not_invited` | `admin_onboarding_incomplete` |
|
397
|
+
# | Review a contractor's self-onboarded info |
|
398
|
+
# `self_onboarding_started` | `self_onboarding_review` |
|
399
|
+
# | Finish a contractor's onboarding | `admin_onboarding_incomplete` or
|
400
|
+
# `self_onboarding_review` | `onboarding_completed` |
|
401
|
+
#
|
402
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
403
|
+
# @param request_options [Gusto::RequestOptions]
|
404
|
+
# @return [Gusto::Contractor::ContractorOnboardingInfo]
|
405
|
+
# @example
|
406
|
+
# api = Gusto::Client.new(
|
407
|
+
# base_url: "https://api.example.com",
|
408
|
+
# environment: Gusto::Environment::DEMO,
|
409
|
+
# token: "YOUR_AUTH_TOKEN"
|
410
|
+
# )
|
411
|
+
# api.contractors.update_onboarding_status(contractor_uuid: "contractor_uuid")
|
412
|
+
def update_onboarding_status(contractor_uuid:, request_options: nil)
|
413
|
+
response = @request_client.conn.put do | req |
|
414
|
+
unless request_options&.timeout_in_seconds.nil?
|
415
|
+
req.options.timeout = request_options.timeout_in_seconds
|
416
|
+
end
|
417
|
+
unless request_options&.token.nil?
|
418
|
+
req.headers["Authorization"] = request_options.token
|
419
|
+
end
|
420
|
+
unless request_options&.gusto_api_version.nil?
|
421
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
422
|
+
end
|
423
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
424
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
425
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
426
|
+
end
|
427
|
+
req.body = { **(request_options&.additional_body_parameters || {}), "onboarding_status": "onboarding_completed" }.compact
|
428
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/onboarding_status"
|
429
|
+
end
|
430
|
+
Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
|
431
|
+
end
|
432
|
+
# The address of a contractor is used to determine certain tax information about
|
433
|
+
# them. Addresses are geocoded on create and update to ensure validity.
|
434
|
+
# scope: `contractors:read`
|
435
|
+
#
|
436
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
437
|
+
# @param request_options [Gusto::RequestOptions]
|
438
|
+
# @return [Gusto::ContractorAddressInfo]
|
439
|
+
# @example
|
440
|
+
# api = Gusto::Client.new(
|
441
|
+
# base_url: "https://api.example.com",
|
442
|
+
# environment: Gusto::Environment::DEMO,
|
443
|
+
# token: "YOUR_AUTH_TOKEN"
|
444
|
+
# )
|
445
|
+
# api.contractors.get_address(contractor_uuid: "contractor_uuid")
|
446
|
+
def get_address(contractor_uuid:, request_options: nil)
|
447
|
+
response = @request_client.conn.get do | req |
|
448
|
+
unless request_options&.timeout_in_seconds.nil?
|
449
|
+
req.options.timeout = request_options.timeout_in_seconds
|
450
|
+
end
|
451
|
+
unless request_options&.token.nil?
|
452
|
+
req.headers["Authorization"] = request_options.token
|
453
|
+
end
|
454
|
+
unless request_options&.gusto_api_version.nil?
|
455
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
456
|
+
end
|
457
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
458
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
459
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
460
|
+
end
|
461
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
462
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
463
|
+
end
|
464
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/address"
|
465
|
+
end
|
466
|
+
Gusto::ContractorAddressInfo.from_json(json_object: response.body)
|
467
|
+
end
|
468
|
+
# The address of a contractor is used to determine certain tax information about
|
469
|
+
# them. Addresses are geocoded on create and update to ensure validity.
|
470
|
+
# scope: `contractors:write`
|
471
|
+
#
|
472
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
473
|
+
# @param version [String] The current version of the object. See the [versioning
|
474
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
|
475
|
+
# on how to use this field.
|
476
|
+
# @param street1 [String]
|
477
|
+
# @param street2 [String]
|
478
|
+
# @param city [String]
|
479
|
+
# @param state [String]
|
480
|
+
# @param zip [String]
|
481
|
+
# @param request_options [Gusto::RequestOptions]
|
482
|
+
# @return [Gusto::ContractorAddressInfo]
|
483
|
+
# @example
|
484
|
+
# api = Gusto::Client.new(
|
485
|
+
# base_url: "https://api.example.com",
|
486
|
+
# environment: Gusto::Environment::DEMO,
|
487
|
+
# token: "YOUR_AUTH_TOKEN"
|
488
|
+
# )
|
489
|
+
# api.contractors.update_address(
|
490
|
+
# contractor_uuid: "contractor_uuid",
|
491
|
+
# street1: "300 3rd Street",
|
492
|
+
# city: "San Francisco",
|
493
|
+
# state: "CA",
|
494
|
+
# zip: "94107"
|
495
|
+
# )
|
496
|
+
def update_address(contractor_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, request_options: nil)
|
497
|
+
response = @request_client.conn.put do | req |
|
498
|
+
unless request_options&.timeout_in_seconds.nil?
|
499
|
+
req.options.timeout = request_options.timeout_in_seconds
|
500
|
+
end
|
501
|
+
unless request_options&.token.nil?
|
502
|
+
req.headers["Authorization"] = request_options.token
|
503
|
+
end
|
504
|
+
unless request_options&.gusto_api_version.nil?
|
505
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
506
|
+
end
|
507
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
508
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
509
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
510
|
+
end
|
511
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, street_1: street1, street_2: street2, city: city, state: state, zip: zip }.compact
|
512
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/address"
|
513
|
+
end
|
514
|
+
Gusto::ContractorAddressInfo.from_json(json_object: response.body)
|
515
|
+
end
|
516
|
+
end
|
517
|
+
class AsyncContractorsClient
|
518
|
+
# @return [Gusto::AsyncRequestClient]
|
519
|
+
attr_reader :request_client
|
520
|
+
# @return [Gusto::Contractors::PaymentMethodClient]
|
521
|
+
attr_reader :payment_method
|
522
|
+
# @return [Gusto::Contractors::FormsClient]
|
523
|
+
attr_reader :forms
|
524
|
+
# @return [Gusto::Contractors::DocumentsClient]
|
525
|
+
attr_reader :documents
|
526
|
+
# @return [Gusto::Contractors::PaymentsClient]
|
527
|
+
attr_reader :payments
|
528
|
+
# @return [Gusto::Contractors::PaymentGroupsClient]
|
529
|
+
attr_reader :payment_groups
|
530
|
+
|
531
|
+
|
532
|
+
# @param request_client [Gusto::RequestClient]
|
533
|
+
# @return [Gusto::AsyncContractorsClient]
|
534
|
+
def initialize(request_client:)
|
535
|
+
@request_client = request_client
|
536
|
+
@payment_method = Gusto::Contractors::AsyncPaymentMethodClient.new(request_client: request_client)
|
537
|
+
@forms = Gusto::Contractors::AsyncFormsClient.new(request_client: request_client)
|
538
|
+
@documents = Gusto::Contractors::AsyncDocumentsClient.new(request_client: request_client)
|
539
|
+
@payments = Gusto::Contractors::AsyncPaymentsClient.new(request_client: request_client)
|
540
|
+
@payment_groups = Gusto::Contractors::AsyncPaymentGroupsClient.new(request_client: request_client)
|
541
|
+
end
|
542
|
+
# Get all contractors, active and inactive, individual and business, for a
|
543
|
+
# company.
|
544
|
+
# scope: `contractors:read`
|
545
|
+
#
|
546
|
+
# @param company_id [String] The UUID of the company
|
547
|
+
# @param page [Float] The page that is requested. When unspecified, will load all objects unless
|
548
|
+
# endpoint forces pagination.
|
549
|
+
# @param per [Float] Number of objects per page. For majority of endpoints will default to 25
|
550
|
+
# @param search_term [String] A string to search for in the object's names
|
551
|
+
# @param request_options [Gusto::RequestOptions]
|
552
|
+
# @return [Array<Gusto::Contractors::Contractor>]
|
553
|
+
# @example
|
554
|
+
# api = Gusto::Client.new(
|
555
|
+
# base_url: "https://api.example.com",
|
556
|
+
# environment: Gusto::Environment::DEMO,
|
557
|
+
# token: "YOUR_AUTH_TOKEN"
|
558
|
+
# )
|
559
|
+
# api.contractors.list(company_id: "company_id")
|
560
|
+
def list(company_id:, page: nil, per: nil, search_term: nil, request_options: nil)
|
561
|
+
Async do
|
562
|
+
response = @request_client.conn.get do | req |
|
563
|
+
unless request_options&.timeout_in_seconds.nil?
|
564
|
+
req.options.timeout = request_options.timeout_in_seconds
|
565
|
+
end
|
566
|
+
unless request_options&.token.nil?
|
567
|
+
req.headers["Authorization"] = request_options.token
|
568
|
+
end
|
569
|
+
unless request_options&.gusto_api_version.nil?
|
570
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
571
|
+
end
|
572
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
573
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per, "search_term": search_term }.compact
|
574
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
575
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
576
|
+
end
|
577
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractors"
|
578
|
+
end
|
579
|
+
parsed_json = JSON.parse(response.body)
|
580
|
+
parsed_json&.map do | item |
|
581
|
+
item = item.to_json
|
582
|
+
Gusto::Contractors::Contractor.from_json(json_object: item)
|
583
|
+
end
|
584
|
+
end
|
585
|
+
end
|
586
|
+
# Create an individual or business contractor.
|
587
|
+
# scope: `contractors:manage`
|
588
|
+
#
|
589
|
+
# @param company_id [String] The UUID of the company
|
590
|
+
# @param request [Hash] Request of type Gusto::ContractorBody, as a Hash
|
591
|
+
# * :type (Gusto::ContractorBodyType)
|
592
|
+
# * :wage_type (Gusto::ContractorBodyWageType)
|
593
|
+
# * :start_date (String)
|
594
|
+
# * :hourly_rate (String)
|
595
|
+
# * :self_onboarding (Boolean)
|
596
|
+
# * :email (String)
|
597
|
+
# * :first_name (String)
|
598
|
+
# * :last_name (String)
|
599
|
+
# * :middle_initial (String)
|
600
|
+
# * :file_new_hire_report (Boolean)
|
601
|
+
# * :work_state (String)
|
602
|
+
# * :ssn (String)
|
603
|
+
# * :business_name (String)
|
604
|
+
# * :ein (String)
|
605
|
+
# * :is_active (Boolean)
|
606
|
+
# @param request_options [Gusto::RequestOptions]
|
607
|
+
# @return [Gusto::Contractors::Contractor]
|
608
|
+
# @example
|
609
|
+
# api = Gusto::Client.new(
|
610
|
+
# base_url: "https://api.example.com",
|
611
|
+
# environment: Gusto::Environment::DEMO,
|
612
|
+
# token: "YOUR_AUTH_TOKEN"
|
613
|
+
# )
|
614
|
+
# api.contractors.create(company_id: "company_id", request: { type: INDIVIDUAL, wage_type: FIXED, start_date: "2020-04-01", self_onboarding: true, email: "johnson@johnson.com", first_name: "Johnson", last_name: "Johnson", file_new_hire_report: true, work_state: "CA" })
|
615
|
+
def create(company_id:, request:, request_options: nil)
|
616
|
+
Async do
|
617
|
+
response = @request_client.conn.post do | req |
|
618
|
+
unless request_options&.timeout_in_seconds.nil?
|
619
|
+
req.options.timeout = request_options.timeout_in_seconds
|
620
|
+
end
|
621
|
+
unless request_options&.token.nil?
|
622
|
+
req.headers["Authorization"] = request_options.token
|
623
|
+
end
|
624
|
+
unless request_options&.gusto_api_version.nil?
|
625
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
626
|
+
end
|
627
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
628
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
629
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
630
|
+
end
|
631
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
632
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractors"
|
633
|
+
end
|
634
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
635
|
+
end
|
636
|
+
end
|
637
|
+
# Get a contractor.
|
638
|
+
# scope: `contractors:read`
|
639
|
+
#
|
640
|
+
# @param contractor_id [String] The UUID of the contractor
|
641
|
+
# @param request_options [Gusto::RequestOptions]
|
642
|
+
# @return [Gusto::Contractors::Contractor]
|
643
|
+
# @example
|
644
|
+
# api = Gusto::Client.new(
|
645
|
+
# base_url: "https://api.example.com",
|
646
|
+
# environment: Gusto::Environment::DEMO,
|
647
|
+
# token: "YOUR_AUTH_TOKEN"
|
648
|
+
# )
|
649
|
+
# api.contractors.get(contractor_id: "contractor_id")
|
650
|
+
def get(contractor_id:, request_options: nil)
|
651
|
+
Async do
|
652
|
+
response = @request_client.conn.get do | req |
|
653
|
+
unless request_options&.timeout_in_seconds.nil?
|
654
|
+
req.options.timeout = request_options.timeout_in_seconds
|
655
|
+
end
|
656
|
+
unless request_options&.token.nil?
|
657
|
+
req.headers["Authorization"] = request_options.token
|
658
|
+
end
|
659
|
+
unless request_options&.gusto_api_version.nil?
|
660
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
661
|
+
end
|
662
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
663
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
664
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
665
|
+
end
|
666
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
667
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
668
|
+
end
|
669
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
670
|
+
end
|
671
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
672
|
+
end
|
673
|
+
end
|
674
|
+
# Update a contractor.
|
675
|
+
# scope: `contractors:write`
|
676
|
+
# > 🚧 Warning
|
677
|
+
# >
|
678
|
+
# > Watch out when changing a contractor's type (when the contractor is finished
|
679
|
+
# onboarding). Specifically, changing contractor type can be dangerous since Gusto
|
680
|
+
# won’t recognize and file two separate 1099s if they simply change from business
|
681
|
+
# to individual
|
682
|
+
#
|
683
|
+
# @param contractor_id [String] The UUID of the contractor
|
684
|
+
# @param version [String] The current version of the object. See the [versioning
|
685
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
|
686
|
+
# on how to use this field.
|
687
|
+
# @param type [Gusto::ContractorBodyType] The contractor type.
|
688
|
+
# @param wage_type [Gusto::ContractorBodyWageType] The contractor’s wage type.
|
689
|
+
# @param start_date [String] The day when the contractor will start working for the company.
|
690
|
+
# @param hourly_rate [String] The contractor’s hourly rate. This attribute is required if the wage_type is
|
691
|
+
# `Hourly`.
|
692
|
+
# @param self_onboarding [Boolean] Whether the contractor or the payroll admin will complete onboarding in Gusto.
|
693
|
+
# Self-onboarding is recommended so that contractors receive Gusto accounts.
|
694
|
+
# If self_onboarding is true, then email is required.
|
695
|
+
# @param email [String] The contractor’s email address.
|
696
|
+
# @param first_name [String] The contractor’s first name.
|
697
|
+
# This attribute is required for `Individual` contractors and will be ignored for
|
698
|
+
# `Business` contractors.
|
699
|
+
# @param last_name [String] The contractor’s last name.
|
700
|
+
# This attribute is required for `Individual` contractors and will be ignored for
|
701
|
+
# `Business` contractors.
|
702
|
+
# @param middle_initial [String] The contractor’s middle initial.
|
703
|
+
# This attribute is optional for `Individual` contractors and will be ignored for
|
704
|
+
# `Business` contractors.
|
705
|
+
# @param file_new_hire_report [Boolean] The boolean flag indicating whether Gusto will file a new hire report for the
|
706
|
+
# contractor.
|
707
|
+
# This attribute is optional for `Individual` contractors and will be ignored for
|
708
|
+
# `Business` contractors.
|
709
|
+
# @param work_state [String] State where the contractor will be conducting the majority of their work for the
|
710
|
+
# company.
|
711
|
+
# This value is used when generating the new hire report.
|
712
|
+
# This attribute is required for `Individual` contractors if
|
713
|
+
# `file_new_hire_report` is true and will be ignored for `Business` contractors.
|
714
|
+
# @param ssn [String] This attribute is optional for `Individual` contractors and will be ignored for
|
715
|
+
# `Business` contractors.
|
716
|
+
# Social security number is needed to file the annual 1099 tax form.
|
717
|
+
# @param business_name [String] The name of the contractor business. This attribute is required for `Business`
|
718
|
+
# contractors and will be ignored for `Individual` contractors.
|
719
|
+
# @param ein [String] The employer identification number of the contractor business.
|
720
|
+
# This attribute is optional for `Business` contractors and will be ignored for
|
721
|
+
# `Individual` contractors.
|
722
|
+
# @param is_active [Boolean] The status of the contractor. If the contractor's start date is in the future,
|
723
|
+
# updating this field to true means we are setting the start date to today.
|
724
|
+
# @param request_options [Gusto::RequestOptions]
|
725
|
+
# @return [Gusto::Contractors::Contractor]
|
726
|
+
# @example
|
727
|
+
# api = Gusto::Client.new(
|
728
|
+
# base_url: "https://api.example.com",
|
729
|
+
# environment: Gusto::Environment::DEMO,
|
730
|
+
# token: "YOUR_AUTH_TOKEN"
|
731
|
+
# )
|
732
|
+
# api.contractors.update(contractor_id: "contractor_id")
|
733
|
+
def update(contractor_id:, version:, type: nil, wage_type: nil, start_date: nil, hourly_rate: nil, self_onboarding: nil, email: nil, first_name: nil, last_name: nil, middle_initial: nil, file_new_hire_report: nil, work_state: nil, ssn: nil, business_name: nil, ein: nil, is_active: nil, request_options: nil)
|
734
|
+
Async do
|
735
|
+
response = @request_client.conn.put do | req |
|
736
|
+
unless request_options&.timeout_in_seconds.nil?
|
737
|
+
req.options.timeout = request_options.timeout_in_seconds
|
738
|
+
end
|
739
|
+
unless request_options&.token.nil?
|
740
|
+
req.headers["Authorization"] = request_options.token
|
741
|
+
end
|
742
|
+
unless request_options&.gusto_api_version.nil?
|
743
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
744
|
+
end
|
745
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
746
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
747
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
748
|
+
end
|
749
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type, wage_type: wage_type, start_date: start_date, hourly_rate: hourly_rate, self_onboarding: self_onboarding, email: email, first_name: first_name, last_name: last_name, middle_initial: middle_initial, file_new_hire_report: file_new_hire_report, work_state: work_state, ssn: ssn, business_name: business_name, ein: ein, is_active: is_active }.compact
|
750
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
751
|
+
end
|
752
|
+
Gusto::Contractors::Contractor.from_json(json_object: response.body)
|
753
|
+
end
|
754
|
+
end
|
755
|
+
# A contractor can only be deleted when there are no contractor payments.
|
756
|
+
# scope: `contractors:manage`
|
757
|
+
#
|
758
|
+
# @param contractor_id [String] The UUID of the contractor
|
759
|
+
# @param request_options [Gusto::RequestOptions]
|
760
|
+
# @return [Void]
|
761
|
+
# @example
|
762
|
+
# api = Gusto::Client.new(
|
763
|
+
# base_url: "https://api.example.com",
|
764
|
+
# environment: Gusto::Environment::DEMO,
|
765
|
+
# token: "YOUR_AUTH_TOKEN"
|
766
|
+
# )
|
767
|
+
# api.contractors.delete(contractor_id: "contractor_id")
|
768
|
+
def delete(contractor_id:, request_options: nil)
|
769
|
+
Async do
|
770
|
+
response = @request_client.conn.delete do | req |
|
771
|
+
unless request_options&.timeout_in_seconds.nil?
|
772
|
+
req.options.timeout = request_options.timeout_in_seconds
|
773
|
+
end
|
774
|
+
unless request_options&.token.nil?
|
775
|
+
req.headers["Authorization"] = request_options.token
|
776
|
+
end
|
777
|
+
unless request_options&.gusto_api_version.nil?
|
778
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
779
|
+
end
|
780
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
781
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
782
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
783
|
+
end
|
784
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
785
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
786
|
+
end
|
787
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
|
788
|
+
end
|
789
|
+
end
|
790
|
+
end
|
791
|
+
# Retrieves a contractor's onboarding status. The data returned helps inform the
|
792
|
+
# required onboarding steps and respective completion status.
|
793
|
+
# scope: `contractors:read`
|
794
|
+
# ## onboarding_status
|
795
|
+
# ### Admin-facilitated onboarding
|
796
|
+
# | onboarding_status |
|
797
|
+
# Description |
|
798
|
+
# | :---------------------------- |
|
799
|
+
# ------------------------------------------------------------------------: |
|
800
|
+
# | `admin_onboarding_incomplete` | Admin needs to enter basic
|
801
|
+
# information about the contractor. |
|
802
|
+
# | `admin_onboarding_review` | All information has been completed and admin
|
803
|
+
# needs to confirm onboarding. |
|
804
|
+
# | `onboarding_completed` | Contractor has been
|
805
|
+
# fully onboarded and verified. |
|
806
|
+
# ### Contractor self-onboarding
|
807
|
+
# | onboarding_status | Description
|
808
|
+
# |
|
809
|
+
# | ----------------------------- |
|
810
|
+
# --------------------------------------------------------------------------------
|
811
|
+
# |
|
812
|
+
# | `admin_onboarding_incomplete` | Admin needs to enter basic information about
|
813
|
+
# the contractor.
|
814
|
+
# |
|
815
|
+
# | `self_onboarding_not_invited` | Admin has the intention to invite the
|
816
|
+
# contractor to self-onboard (e.g., marking a checkbox), but the system has not
|
817
|
+
# yet sent the invitation. |
|
818
|
+
# | `self_onboarding_invited` | Contractor has been sent an invitation to
|
819
|
+
# self-onboard.
|
820
|
+
# |
|
821
|
+
# | `self_onboarding_started` | Contractor has started the self-onboarding
|
822
|
+
# process.
|
823
|
+
# |
|
824
|
+
# | `self_onboarding_review` | Admin needs to review contractors's entered
|
825
|
+
# information and confirm onboarding.
|
826
|
+
# |
|
827
|
+
# | `onboarding_completed` | Contractor has been fully onboarded and
|
828
|
+
# verified.
|
829
|
+
# |
|
830
|
+
# ## onboarding_steps
|
831
|
+
# | onboarding_steps |
|
832
|
+
# Requirement(s) to be completed |
|
833
|
+
# | :--------------------- |
|
834
|
+
# -------------------------------------------------------------------------------:
|
835
|
+
# |
|
836
|
+
# | `basic_details` | Add individual contractor's first name, last name,
|
837
|
+
# social security number or Business name and EIN depending on the contractor type
|
838
|
+
# |
|
839
|
+
# | `add_address` |
|
840
|
+
# Add contractor address. |
|
841
|
+
# | `compensation_details` |
|
842
|
+
# Add contractor compensation. |
|
843
|
+
# | `payment_details` |
|
844
|
+
# Set up contractor's direct deposit or set to check. |
|
845
|
+
# | `sign_documents` |
|
846
|
+
# Contractor forms (e.g., W9) are generated & signed. |
|
847
|
+
# | `file_new_hire_report` |
|
848
|
+
# Contractor new hire report is generated. |
|
849
|
+
#
|
850
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
851
|
+
# @param request_options [Gusto::RequestOptions]
|
852
|
+
# @return [Gusto::Contractor::ContractorOnboardingInfo]
|
853
|
+
# @example
|
854
|
+
# api = Gusto::Client.new(
|
855
|
+
# base_url: "https://api.example.com",
|
856
|
+
# environment: Gusto::Environment::DEMO,
|
857
|
+
# token: "YOUR_AUTH_TOKEN"
|
858
|
+
# )
|
859
|
+
# api.contractors.get_onboarding_status(contractor_uuid: "contractor_uuid")
|
860
|
+
def get_onboarding_status(contractor_uuid:, request_options: nil)
|
861
|
+
Async do
|
862
|
+
response = @request_client.conn.get do | req |
|
863
|
+
unless request_options&.timeout_in_seconds.nil?
|
864
|
+
req.options.timeout = request_options.timeout_in_seconds
|
865
|
+
end
|
866
|
+
unless request_options&.token.nil?
|
867
|
+
req.headers["Authorization"] = request_options.token
|
868
|
+
end
|
869
|
+
unless request_options&.gusto_api_version.nil?
|
870
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
871
|
+
end
|
872
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
873
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
874
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
875
|
+
end
|
876
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
877
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
878
|
+
end
|
879
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/onboarding_status"
|
880
|
+
end
|
881
|
+
Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
|
882
|
+
end
|
883
|
+
end
|
884
|
+
# Updates a contractor's onboarding status.
|
885
|
+
# scope: `contractors:write`
|
886
|
+
# Below is a list of valid onboarding status changes depending on the intended
|
887
|
+
# action to be performed on behalf of the contractor.
|
888
|
+
# | Action | current
|
889
|
+
# onboarding_status | new onboarding_status |
|
890
|
+
# | :---------------------------------------- |
|
891
|
+
# :------------------------------------------------------------: |
|
892
|
+
# ----------------------------: |
|
893
|
+
# | Mark a contractor as self-onboarding |
|
894
|
+
# `admin_onboarding_incomplete` | `self_onboarding_not_invited` |
|
895
|
+
# | Invite a contractor to self-onboard | `admin_onboarding_incomplete` or
|
896
|
+
# `self_onboarding_not_invited` | `self_onboarding_invited` |
|
897
|
+
# | Cancel a contractor's self-onboarding | `self_onboarding_invited` or
|
898
|
+
# `self_onboarding_not_invited` | `admin_onboarding_incomplete` |
|
899
|
+
# | Review a contractor's self-onboarded info |
|
900
|
+
# `self_onboarding_started` | `self_onboarding_review` |
|
901
|
+
# | Finish a contractor's onboarding | `admin_onboarding_incomplete` or
|
902
|
+
# `self_onboarding_review` | `onboarding_completed` |
|
903
|
+
#
|
904
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
905
|
+
# @param request_options [Gusto::RequestOptions]
|
906
|
+
# @return [Gusto::Contractor::ContractorOnboardingInfo]
|
907
|
+
# @example
|
908
|
+
# api = Gusto::Client.new(
|
909
|
+
# base_url: "https://api.example.com",
|
910
|
+
# environment: Gusto::Environment::DEMO,
|
911
|
+
# token: "YOUR_AUTH_TOKEN"
|
912
|
+
# )
|
913
|
+
# api.contractors.update_onboarding_status(contractor_uuid: "contractor_uuid")
|
914
|
+
def update_onboarding_status(contractor_uuid:, request_options: nil)
|
915
|
+
Async do
|
916
|
+
response = @request_client.conn.put do | req |
|
917
|
+
unless request_options&.timeout_in_seconds.nil?
|
918
|
+
req.options.timeout = request_options.timeout_in_seconds
|
919
|
+
end
|
920
|
+
unless request_options&.token.nil?
|
921
|
+
req.headers["Authorization"] = request_options.token
|
922
|
+
end
|
923
|
+
unless request_options&.gusto_api_version.nil?
|
924
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
925
|
+
end
|
926
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
927
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
928
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
929
|
+
end
|
930
|
+
req.body = { **(request_options&.additional_body_parameters || {}), "onboarding_status": "onboarding_completed" }.compact
|
931
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/onboarding_status"
|
932
|
+
end
|
933
|
+
Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
|
934
|
+
end
|
935
|
+
end
|
936
|
+
# The address of a contractor is used to determine certain tax information about
|
937
|
+
# them. Addresses are geocoded on create and update to ensure validity.
|
938
|
+
# scope: `contractors:read`
|
939
|
+
#
|
940
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
941
|
+
# @param request_options [Gusto::RequestOptions]
|
942
|
+
# @return [Gusto::ContractorAddressInfo]
|
943
|
+
# @example
|
944
|
+
# api = Gusto::Client.new(
|
945
|
+
# base_url: "https://api.example.com",
|
946
|
+
# environment: Gusto::Environment::DEMO,
|
947
|
+
# token: "YOUR_AUTH_TOKEN"
|
948
|
+
# )
|
949
|
+
# api.contractors.get_address(contractor_uuid: "contractor_uuid")
|
950
|
+
def get_address(contractor_uuid:, request_options: nil)
|
951
|
+
Async do
|
952
|
+
response = @request_client.conn.get do | req |
|
953
|
+
unless request_options&.timeout_in_seconds.nil?
|
954
|
+
req.options.timeout = request_options.timeout_in_seconds
|
955
|
+
end
|
956
|
+
unless request_options&.token.nil?
|
957
|
+
req.headers["Authorization"] = request_options.token
|
958
|
+
end
|
959
|
+
unless request_options&.gusto_api_version.nil?
|
960
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
961
|
+
end
|
962
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
963
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
964
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
965
|
+
end
|
966
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
967
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
968
|
+
end
|
969
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/address"
|
970
|
+
end
|
971
|
+
Gusto::ContractorAddressInfo.from_json(json_object: response.body)
|
972
|
+
end
|
973
|
+
end
|
974
|
+
# The address of a contractor is used to determine certain tax information about
|
975
|
+
# them. Addresses are geocoded on create and update to ensure validity.
|
976
|
+
# scope: `contractors:write`
|
977
|
+
#
|
978
|
+
# @param contractor_uuid [String] The UUID of the contractor
|
979
|
+
# @param version [String] The current version of the object. See the [versioning
|
980
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
|
981
|
+
# on how to use this field.
|
982
|
+
# @param street1 [String]
|
983
|
+
# @param street2 [String]
|
984
|
+
# @param city [String]
|
985
|
+
# @param state [String]
|
986
|
+
# @param zip [String]
|
987
|
+
# @param request_options [Gusto::RequestOptions]
|
988
|
+
# @return [Gusto::ContractorAddressInfo]
|
989
|
+
# @example
|
990
|
+
# api = Gusto::Client.new(
|
991
|
+
# base_url: "https://api.example.com",
|
992
|
+
# environment: Gusto::Environment::DEMO,
|
993
|
+
# token: "YOUR_AUTH_TOKEN"
|
994
|
+
# )
|
995
|
+
# api.contractors.update_address(
|
996
|
+
# contractor_uuid: "contractor_uuid",
|
997
|
+
# street1: "300 3rd Street",
|
998
|
+
# city: "San Francisco",
|
999
|
+
# state: "CA",
|
1000
|
+
# zip: "94107"
|
1001
|
+
# )
|
1002
|
+
def update_address(contractor_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, request_options: nil)
|
1003
|
+
Async do
|
1004
|
+
response = @request_client.conn.put do | req |
|
1005
|
+
unless request_options&.timeout_in_seconds.nil?
|
1006
|
+
req.options.timeout = request_options.timeout_in_seconds
|
1007
|
+
end
|
1008
|
+
unless request_options&.token.nil?
|
1009
|
+
req.headers["Authorization"] = request_options.token
|
1010
|
+
end
|
1011
|
+
unless request_options&.gusto_api_version.nil?
|
1012
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
1013
|
+
end
|
1014
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
1015
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
1016
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
1017
|
+
end
|
1018
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, street_1: street1, street_2: street2, city: city, state: state, zip: zip }.compact
|
1019
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/address"
|
1020
|
+
end
|
1021
|
+
Gusto::ContractorAddressInfo.from_json(json_object: response.body)
|
1022
|
+
end
|
1023
|
+
end
|
1024
|
+
end
|
1025
|
+
end
|