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,656 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../../requests"
|
3
|
+
require_relative "../../types/employee_benefit"
|
4
|
+
require "json"
|
5
|
+
require_relative "types/benefits_create_request_contribution"
|
6
|
+
require_relative "types/benefits_create_request_deduction_reduces_taxable_income"
|
7
|
+
require_relative "types/benefits_update_request_contribution"
|
8
|
+
require_relative "types/benefits_update_request_deduction_reduces_taxable_income"
|
9
|
+
require "async"
|
10
|
+
require "async"
|
11
|
+
require "async"
|
12
|
+
require "async"
|
13
|
+
require "async"
|
14
|
+
require "async"
|
15
|
+
require_relative "../../../requests"
|
16
|
+
|
17
|
+
module Gusto
|
18
|
+
module Employees
|
19
|
+
class BenefitsClient
|
20
|
+
# @return [Gusto::RequestClient]
|
21
|
+
attr_reader :request_client
|
22
|
+
|
23
|
+
|
24
|
+
# @param request_client [Gusto::RequestClient]
|
25
|
+
# @return [Gusto::Employees::BenefitsClient]
|
26
|
+
def initialize(request_client:)
|
27
|
+
@request_client = request_client
|
28
|
+
end
|
29
|
+
# Employee benefits represent an employee enrolled in a particular company
|
30
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
31
|
+
# Returns an array of all employee benefits for this employee
|
32
|
+
# Benefits containing PHI are only visible to applications with the
|
33
|
+
# `employee_benefits:read:phi` scope.
|
34
|
+
# scope: `employee_benefits:read`
|
35
|
+
#
|
36
|
+
# @param employee_id [String] The UUID of the employee
|
37
|
+
# @param page [Float] The page that is requested. When unspecified, will load all objects unless
|
38
|
+
# endpoint forces pagination.
|
39
|
+
# @param per [Float] Number of objects per page. For majority of endpoints will default to 25
|
40
|
+
# @param request_options [Gusto::RequestOptions]
|
41
|
+
# @return [Array<Gusto::EmployeeBenefit>]
|
42
|
+
# @example
|
43
|
+
# api = Gusto::Client.new(
|
44
|
+
# base_url: "https://api.example.com",
|
45
|
+
# environment: Gusto::Environment::DEMO,
|
46
|
+
# token: "YOUR_AUTH_TOKEN"
|
47
|
+
# )
|
48
|
+
# api.employees.benefits.list(employee_id: "employee_id")
|
49
|
+
def list(employee_id:, page: nil, per: nil, request_options: nil)
|
50
|
+
response = @request_client.conn.get do | req |
|
51
|
+
unless request_options&.timeout_in_seconds.nil?
|
52
|
+
req.options.timeout = request_options.timeout_in_seconds
|
53
|
+
end
|
54
|
+
unless request_options&.token.nil?
|
55
|
+
req.headers["Authorization"] = request_options.token
|
56
|
+
end
|
57
|
+
unless request_options&.gusto_api_version.nil?
|
58
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
59
|
+
end
|
60
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
61
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
|
62
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
63
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
64
|
+
end
|
65
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
|
66
|
+
end
|
67
|
+
parsed_json = JSON.parse(response.body)
|
68
|
+
parsed_json&.map do | item |
|
69
|
+
item = item.to_json
|
70
|
+
Gusto::EmployeeBenefit.from_json(json_object: item)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
# Employee benefits represent an employee enrolled in a particular company
|
74
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
75
|
+
# scope: `employee_benefits:write`
|
76
|
+
#
|
77
|
+
# @param employee_id [String] The UUID of the employee
|
78
|
+
# @param company_benefit_uuid [String] The UUID of the company benefit.
|
79
|
+
# @param active [Boolean] Whether the employee benefit is active.
|
80
|
+
# @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
|
81
|
+
# @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
|
82
|
+
# deducted from each payroll.
|
83
|
+
# @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
|
84
|
+
# @param contribution [Hash] An object representing the company contribution type and value.Request of type Gusto::Employees::Benefits::BenefitsCreateRequestContribution, as a Hash
|
85
|
+
# * :type (Gusto::Employees::Benefits::BenefitsCreateRequestContributionType)
|
86
|
+
# * :value (Hash)
|
87
|
+
# @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
|
88
|
+
# `elective_amount`, and `elective_percentage` contribution types this is ignored
|
89
|
+
# and assumed to be `true`.
|
90
|
+
# @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
|
91
|
+
# limit.
|
92
|
+
# @param limit_option [String] Some benefits require additional information to determine their limit. For
|
93
|
+
# example, for an HSA benefit, the limit option should be either "Family" or
|
94
|
+
# "Individual". For a Dependent Care FSA benefit, the limit option should be
|
95
|
+
# either "Joint Filing or Single" or "Married and Filing Separately".
|
96
|
+
# @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
|
97
|
+
# 401k benefits use this value for employees over 50.
|
98
|
+
# @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
|
99
|
+
# be present if coverage amount is set.
|
100
|
+
# @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
|
101
|
+
# Group Term Life benefits. Note: cannot be set if coverage amount is also set.
|
102
|
+
# @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsCreateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
|
103
|
+
# Group Term Life benefits. Note: when the value is not "unset", coverage amount
|
104
|
+
# and coverage salary multiplier are ignored.
|
105
|
+
# @param company_contribution [String] The amount to be paid, per pay period, by the company.
|
106
|
+
# @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
|
107
|
+
# deducted from each payroll.
|
108
|
+
# @param request_options [Gusto::RequestOptions]
|
109
|
+
# @return [Gusto::EmployeeBenefit]
|
110
|
+
# @example
|
111
|
+
# api = Gusto::Client.new(
|
112
|
+
# base_url: "https://api.example.com",
|
113
|
+
# environment: Gusto::Environment::DEMO,
|
114
|
+
# token: "YOUR_AUTH_TOKEN"
|
115
|
+
# )
|
116
|
+
# api.employees.benefits.create(
|
117
|
+
# employee_id: "employee_id",
|
118
|
+
# company_benefit_uuid: "f68abb42-431e-4392-bc3f-2795627e00f3",
|
119
|
+
# active: true,
|
120
|
+
# employee_deduction: "100.00",
|
121
|
+
# contribution: { type: AMOUNT, value: "100.00" }
|
122
|
+
# )
|
123
|
+
def create(employee_id:, company_benefit_uuid:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, coverage_salary_multiplier: nil, deduction_reduces_taxable_income: nil, company_contribution: nil, contribute_as_percentage: nil, 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_options&.additional_body_parameters || {}), company_benefit_uuid: company_benefit_uuid, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, coverage_salary_multiplier: coverage_salary_multiplier, deduction_reduces_taxable_income: deduction_reduces_taxable_income, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
|
139
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
|
140
|
+
end
|
141
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
142
|
+
end
|
143
|
+
# Employee benefits represent an employee enrolled in a particular company
|
144
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
145
|
+
# Benefits containing PHI are only visible to applications with the
|
146
|
+
# `employee_benefits:read:phi` scope.
|
147
|
+
# scope: `employee_benefits:read`
|
148
|
+
#
|
149
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
150
|
+
# @param request_options [Gusto::RequestOptions]
|
151
|
+
# @return [Gusto::EmployeeBenefit]
|
152
|
+
# @example
|
153
|
+
# api = Gusto::Client.new(
|
154
|
+
# base_url: "https://api.example.com",
|
155
|
+
# environment: Gusto::Environment::DEMO,
|
156
|
+
# token: "YOUR_AUTH_TOKEN"
|
157
|
+
# )
|
158
|
+
# api.employees.benefits.get(employee_benefit_id: "employee_benefit_id")
|
159
|
+
def get(employee_benefit_id:, request_options: nil)
|
160
|
+
response = @request_client.conn.get do | req |
|
161
|
+
unless request_options&.timeout_in_seconds.nil?
|
162
|
+
req.options.timeout = request_options.timeout_in_seconds
|
163
|
+
end
|
164
|
+
unless request_options&.token.nil?
|
165
|
+
req.headers["Authorization"] = request_options.token
|
166
|
+
end
|
167
|
+
unless request_options&.gusto_api_version.nil?
|
168
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
169
|
+
end
|
170
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
171
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
172
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
173
|
+
end
|
174
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
175
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
176
|
+
end
|
177
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
178
|
+
end
|
179
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
180
|
+
end
|
181
|
+
# Employee benefits represent an employee enrolled in a particular company
|
182
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
183
|
+
# scope: `employee_benefits:write`
|
184
|
+
#
|
185
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
186
|
+
# @param version [String] The current version of the object. See the [versioning
|
187
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
|
188
|
+
# information on how to use this field.
|
189
|
+
# @param active [Boolean] Whether the employee benefit is active.
|
190
|
+
# @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
|
191
|
+
# @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
|
192
|
+
# deducted from each payroll.
|
193
|
+
# @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
|
194
|
+
# @param contribution [Hash] An object representing the type and value of the company contribution.Request of type Gusto::Employees::Benefits::BenefitsUpdateRequestContribution, as a Hash
|
195
|
+
# * :type (Gusto::Employees::Benefits::BenefitsUpdateRequestContributionType)
|
196
|
+
# * :value (Hash)
|
197
|
+
# @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
|
198
|
+
# `elective_amount`, and `elective_percentage` contribution types this is ignored
|
199
|
+
# and assumed to be `true`.
|
200
|
+
# @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
|
201
|
+
# limit.
|
202
|
+
# @param limit_option [String] Some benefits require additional information to determine their limit. For
|
203
|
+
# example, for an HSA benefit, the limit option should be either "Family" or
|
204
|
+
# "Individual". For a Dependent Care FSA benefit, the limit option should be
|
205
|
+
# either "Joint Filing or Single" or "Married and Filing Separately".
|
206
|
+
# @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
|
207
|
+
# 401k benefits use this value for employees over 50.
|
208
|
+
# @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
|
209
|
+
# be present if coverage amount is set.
|
210
|
+
# @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsUpdateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
|
211
|
+
# Group Term Life benefits. Note: when the value is not "unset", coverage amount
|
212
|
+
# and coverage salary multiplier are ignored.
|
213
|
+
# @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
|
214
|
+
# Group Term Life benefits. Note: cannot be set if coverage amount is also set.
|
215
|
+
# @param company_contribution [String] The amount to be paid, per pay period, by the company.
|
216
|
+
# @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
|
217
|
+
# deducted from each payroll.
|
218
|
+
# @param request_options [Gusto::RequestOptions]
|
219
|
+
# @return [Gusto::EmployeeBenefit]
|
220
|
+
# @example
|
221
|
+
# api = Gusto::Client.new(
|
222
|
+
# base_url: "https://api.example.com",
|
223
|
+
# environment: Gusto::Environment::DEMO,
|
224
|
+
# token: "YOUR_AUTH_TOKEN"
|
225
|
+
# )
|
226
|
+
# api.employees.benefits.update(
|
227
|
+
# employee_benefit_id: "employee_benefit_id",
|
228
|
+
# version: "09j3d29jqdpj92109j9j2d90dq",
|
229
|
+
# employee_deduction: "250.00"
|
230
|
+
# )
|
231
|
+
def update(employee_benefit_id:, version:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, deduction_reduces_taxable_income: nil, coverage_salary_multiplier: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
|
232
|
+
response = @request_client.conn.put do | req |
|
233
|
+
unless request_options&.timeout_in_seconds.nil?
|
234
|
+
req.options.timeout = request_options.timeout_in_seconds
|
235
|
+
end
|
236
|
+
unless request_options&.token.nil?
|
237
|
+
req.headers["Authorization"] = request_options.token
|
238
|
+
end
|
239
|
+
unless request_options&.gusto_api_version.nil?
|
240
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
241
|
+
end
|
242
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
243
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
244
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
245
|
+
end
|
246
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, deduction_reduces_taxable_income: deduction_reduces_taxable_income, coverage_salary_multiplier: coverage_salary_multiplier, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
|
247
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
248
|
+
end
|
249
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
250
|
+
end
|
251
|
+
# Employee benefits represent an employee enrolled in a particular company
|
252
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
253
|
+
# scope: `employee_benefits:write`
|
254
|
+
#
|
255
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
256
|
+
# @param request_options [Gusto::RequestOptions]
|
257
|
+
# @return [Void]
|
258
|
+
# @example
|
259
|
+
# api = Gusto::Client.new(
|
260
|
+
# base_url: "https://api.example.com",
|
261
|
+
# environment: Gusto::Environment::DEMO,
|
262
|
+
# token: "YOUR_AUTH_TOKEN"
|
263
|
+
# )
|
264
|
+
# api.employees.benefits.delete(employee_benefit_id: "employee_benefit_id")
|
265
|
+
def delete(employee_benefit_id:, request_options: nil)
|
266
|
+
response = @request_client.conn.delete do | req |
|
267
|
+
unless request_options&.timeout_in_seconds.nil?
|
268
|
+
req.options.timeout = request_options.timeout_in_seconds
|
269
|
+
end
|
270
|
+
unless request_options&.token.nil?
|
271
|
+
req.headers["Authorization"] = request_options.token
|
272
|
+
end
|
273
|
+
unless request_options&.gusto_api_version.nil?
|
274
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
275
|
+
end
|
276
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
277
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
278
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
279
|
+
end
|
280
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
281
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
282
|
+
end
|
283
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
284
|
+
end
|
285
|
+
end
|
286
|
+
# Year-to-date benefit amounts from a different company represents the amount of
|
287
|
+
# money added to an employee's plan during a current year, made outside of the
|
288
|
+
# current contribution when they were employed at a different company.
|
289
|
+
# This endpoint only supports passing outside contributions for 401(k) benefits.
|
290
|
+
# scope: `employee_benefits:write`
|
291
|
+
#
|
292
|
+
# @param employee_id [String] The UUID of the employee
|
293
|
+
# @param benefit_type [Float] The benefit type supported by Gusto.
|
294
|
+
# @param tax_year [Float] The tax year for which this amount applies.
|
295
|
+
# @param ytd_employee_deduction_amount [String] The year-to-date employee deduction made outside the current company.
|
296
|
+
# @param ytd_company_contribution_amount [String] The year-to-date company contribution made outside the current company.
|
297
|
+
# @param request_options [Gusto::RequestOptions]
|
298
|
+
# @return [Void]
|
299
|
+
# @example
|
300
|
+
# api = Gusto::Client.new(
|
301
|
+
# base_url: "https://api.example.com",
|
302
|
+
# environment: Gusto::Environment::DEMO,
|
303
|
+
# token: "YOUR_AUTH_TOKEN"
|
304
|
+
# )
|
305
|
+
# api.employees.benefits.add_ytd_benefit_amounts(
|
306
|
+
# employee_id: "employee_id",
|
307
|
+
# tax_year: 1.1,
|
308
|
+
# ytd_employee_deduction_amount: "ytd_employee_deduction_amount",
|
309
|
+
# ytd_company_contribution_amount: "ytd_company_contribution_amount"
|
310
|
+
# )
|
311
|
+
def add_ytd_benefit_amounts(employee_id:, benefit_type: nil, tax_year:, ytd_employee_deduction_amount:, ytd_company_contribution_amount:, request_options: nil)
|
312
|
+
response = @request_client.conn.post do | req |
|
313
|
+
unless request_options&.timeout_in_seconds.nil?
|
314
|
+
req.options.timeout = request_options.timeout_in_seconds
|
315
|
+
end
|
316
|
+
unless request_options&.token.nil?
|
317
|
+
req.headers["Authorization"] = request_options.token
|
318
|
+
end
|
319
|
+
unless request_options&.gusto_api_version.nil?
|
320
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
321
|
+
end
|
322
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
323
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
324
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
325
|
+
end
|
326
|
+
req.body = { **(request_options&.additional_body_parameters || {}), benefit_type: benefit_type, tax_year: tax_year, ytd_employee_deduction_amount: ytd_employee_deduction_amount, ytd_company_contribution_amount: ytd_company_contribution_amount }.compact
|
327
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/ytd_benefit_amounts_from_different_company"
|
328
|
+
end
|
329
|
+
end
|
330
|
+
end
|
331
|
+
class AsyncBenefitsClient
|
332
|
+
# @return [Gusto::AsyncRequestClient]
|
333
|
+
attr_reader :request_client
|
334
|
+
|
335
|
+
|
336
|
+
# @param request_client [Gusto::RequestClient]
|
337
|
+
# @return [Gusto::Employees::AsyncBenefitsClient]
|
338
|
+
def initialize(request_client:)
|
339
|
+
@request_client = request_client
|
340
|
+
end
|
341
|
+
# Employee benefits represent an employee enrolled in a particular company
|
342
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
343
|
+
# Returns an array of all employee benefits for this employee
|
344
|
+
# Benefits containing PHI are only visible to applications with the
|
345
|
+
# `employee_benefits:read:phi` scope.
|
346
|
+
# scope: `employee_benefits:read`
|
347
|
+
#
|
348
|
+
# @param employee_id [String] The UUID of the employee
|
349
|
+
# @param page [Float] The page that is requested. When unspecified, will load all objects unless
|
350
|
+
# endpoint forces pagination.
|
351
|
+
# @param per [Float] Number of objects per page. For majority of endpoints will default to 25
|
352
|
+
# @param request_options [Gusto::RequestOptions]
|
353
|
+
# @return [Array<Gusto::EmployeeBenefit>]
|
354
|
+
# @example
|
355
|
+
# api = Gusto::Client.new(
|
356
|
+
# base_url: "https://api.example.com",
|
357
|
+
# environment: Gusto::Environment::DEMO,
|
358
|
+
# token: "YOUR_AUTH_TOKEN"
|
359
|
+
# )
|
360
|
+
# api.employees.benefits.list(employee_id: "employee_id")
|
361
|
+
def list(employee_id:, page: nil, per: nil, request_options: nil)
|
362
|
+
Async do
|
363
|
+
response = @request_client.conn.get do | req |
|
364
|
+
unless request_options&.timeout_in_seconds.nil?
|
365
|
+
req.options.timeout = request_options.timeout_in_seconds
|
366
|
+
end
|
367
|
+
unless request_options&.token.nil?
|
368
|
+
req.headers["Authorization"] = request_options.token
|
369
|
+
end
|
370
|
+
unless request_options&.gusto_api_version.nil?
|
371
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
372
|
+
end
|
373
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
374
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
|
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/employees/#{employee_id}/employee_benefits"
|
379
|
+
end
|
380
|
+
parsed_json = JSON.parse(response.body)
|
381
|
+
parsed_json&.map do | item |
|
382
|
+
item = item.to_json
|
383
|
+
Gusto::EmployeeBenefit.from_json(json_object: item)
|
384
|
+
end
|
385
|
+
end
|
386
|
+
end
|
387
|
+
# Employee benefits represent an employee enrolled in a particular company
|
388
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
389
|
+
# scope: `employee_benefits:write`
|
390
|
+
#
|
391
|
+
# @param employee_id [String] The UUID of the employee
|
392
|
+
# @param company_benefit_uuid [String] The UUID of the company benefit.
|
393
|
+
# @param active [Boolean] Whether the employee benefit is active.
|
394
|
+
# @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
|
395
|
+
# @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
|
396
|
+
# deducted from each payroll.
|
397
|
+
# @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
|
398
|
+
# @param contribution [Hash] An object representing the company contribution type and value.Request of type Gusto::Employees::Benefits::BenefitsCreateRequestContribution, as a Hash
|
399
|
+
# * :type (Gusto::Employees::Benefits::BenefitsCreateRequestContributionType)
|
400
|
+
# * :value (Hash)
|
401
|
+
# @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
|
402
|
+
# `elective_amount`, and `elective_percentage` contribution types this is ignored
|
403
|
+
# and assumed to be `true`.
|
404
|
+
# @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
|
405
|
+
# limit.
|
406
|
+
# @param limit_option [String] Some benefits require additional information to determine their limit. For
|
407
|
+
# example, for an HSA benefit, the limit option should be either "Family" or
|
408
|
+
# "Individual". For a Dependent Care FSA benefit, the limit option should be
|
409
|
+
# either "Joint Filing or Single" or "Married and Filing Separately".
|
410
|
+
# @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
|
411
|
+
# 401k benefits use this value for employees over 50.
|
412
|
+
# @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
|
413
|
+
# be present if coverage amount is set.
|
414
|
+
# @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
|
415
|
+
# Group Term Life benefits. Note: cannot be set if coverage amount is also set.
|
416
|
+
# @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsCreateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
|
417
|
+
# Group Term Life benefits. Note: when the value is not "unset", coverage amount
|
418
|
+
# and coverage salary multiplier are ignored.
|
419
|
+
# @param company_contribution [String] The amount to be paid, per pay period, by the company.
|
420
|
+
# @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
|
421
|
+
# deducted from each payroll.
|
422
|
+
# @param request_options [Gusto::RequestOptions]
|
423
|
+
# @return [Gusto::EmployeeBenefit]
|
424
|
+
# @example
|
425
|
+
# api = Gusto::Client.new(
|
426
|
+
# base_url: "https://api.example.com",
|
427
|
+
# environment: Gusto::Environment::DEMO,
|
428
|
+
# token: "YOUR_AUTH_TOKEN"
|
429
|
+
# )
|
430
|
+
# api.employees.benefits.create(
|
431
|
+
# employee_id: "employee_id",
|
432
|
+
# company_benefit_uuid: "f68abb42-431e-4392-bc3f-2795627e00f3",
|
433
|
+
# active: true,
|
434
|
+
# employee_deduction: "100.00",
|
435
|
+
# contribution: { type: AMOUNT, value: "100.00" }
|
436
|
+
# )
|
437
|
+
def create(employee_id:, company_benefit_uuid:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, coverage_salary_multiplier: nil, deduction_reduces_taxable_income: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
|
438
|
+
Async do
|
439
|
+
response = @request_client.conn.post do | req |
|
440
|
+
unless request_options&.timeout_in_seconds.nil?
|
441
|
+
req.options.timeout = request_options.timeout_in_seconds
|
442
|
+
end
|
443
|
+
unless request_options&.token.nil?
|
444
|
+
req.headers["Authorization"] = request_options.token
|
445
|
+
end
|
446
|
+
unless request_options&.gusto_api_version.nil?
|
447
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
448
|
+
end
|
449
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
450
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
451
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
452
|
+
end
|
453
|
+
req.body = { **(request_options&.additional_body_parameters || {}), company_benefit_uuid: company_benefit_uuid, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, coverage_salary_multiplier: coverage_salary_multiplier, deduction_reduces_taxable_income: deduction_reduces_taxable_income, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
|
454
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
|
455
|
+
end
|
456
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
457
|
+
end
|
458
|
+
end
|
459
|
+
# Employee benefits represent an employee enrolled in a particular company
|
460
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
461
|
+
# Benefits containing PHI are only visible to applications with the
|
462
|
+
# `employee_benefits:read:phi` scope.
|
463
|
+
# scope: `employee_benefits:read`
|
464
|
+
#
|
465
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
466
|
+
# @param request_options [Gusto::RequestOptions]
|
467
|
+
# @return [Gusto::EmployeeBenefit]
|
468
|
+
# @example
|
469
|
+
# api = Gusto::Client.new(
|
470
|
+
# base_url: "https://api.example.com",
|
471
|
+
# environment: Gusto::Environment::DEMO,
|
472
|
+
# token: "YOUR_AUTH_TOKEN"
|
473
|
+
# )
|
474
|
+
# api.employees.benefits.get(employee_benefit_id: "employee_benefit_id")
|
475
|
+
def get(employee_benefit_id:, request_options: nil)
|
476
|
+
Async do
|
477
|
+
response = @request_client.conn.get do | req |
|
478
|
+
unless request_options&.timeout_in_seconds.nil?
|
479
|
+
req.options.timeout = request_options.timeout_in_seconds
|
480
|
+
end
|
481
|
+
unless request_options&.token.nil?
|
482
|
+
req.headers["Authorization"] = request_options.token
|
483
|
+
end
|
484
|
+
unless request_options&.gusto_api_version.nil?
|
485
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
486
|
+
end
|
487
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
488
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
489
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
490
|
+
end
|
491
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
492
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
493
|
+
end
|
494
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
495
|
+
end
|
496
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
497
|
+
end
|
498
|
+
end
|
499
|
+
# Employee benefits represent an employee enrolled in a particular company
|
500
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
501
|
+
# scope: `employee_benefits:write`
|
502
|
+
#
|
503
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
504
|
+
# @param version [String] The current version of the object. See the [versioning
|
505
|
+
# guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
|
506
|
+
# information on how to use this field.
|
507
|
+
# @param active [Boolean] Whether the employee benefit is active.
|
508
|
+
# @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
|
509
|
+
# @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
|
510
|
+
# deducted from each payroll.
|
511
|
+
# @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
|
512
|
+
# @param contribution [Hash] An object representing the type and value of the company contribution.Request of type Gusto::Employees::Benefits::BenefitsUpdateRequestContribution, as a Hash
|
513
|
+
# * :type (Gusto::Employees::Benefits::BenefitsUpdateRequestContributionType)
|
514
|
+
# * :value (Hash)
|
515
|
+
# @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
|
516
|
+
# `elective_amount`, and `elective_percentage` contribution types this is ignored
|
517
|
+
# and assumed to be `true`.
|
518
|
+
# @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
|
519
|
+
# limit.
|
520
|
+
# @param limit_option [String] Some benefits require additional information to determine their limit. For
|
521
|
+
# example, for an HSA benefit, the limit option should be either "Family" or
|
522
|
+
# "Individual". For a Dependent Care FSA benefit, the limit option should be
|
523
|
+
# either "Joint Filing or Single" or "Married and Filing Separately".
|
524
|
+
# @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
|
525
|
+
# 401k benefits use this value for employees over 50.
|
526
|
+
# @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
|
527
|
+
# be present if coverage amount is set.
|
528
|
+
# @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsUpdateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
|
529
|
+
# Group Term Life benefits. Note: when the value is not "unset", coverage amount
|
530
|
+
# and coverage salary multiplier are ignored.
|
531
|
+
# @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
|
532
|
+
# Group Term Life benefits. Note: cannot be set if coverage amount is also set.
|
533
|
+
# @param company_contribution [String] The amount to be paid, per pay period, by the company.
|
534
|
+
# @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
|
535
|
+
# deducted from each payroll.
|
536
|
+
# @param request_options [Gusto::RequestOptions]
|
537
|
+
# @return [Gusto::EmployeeBenefit]
|
538
|
+
# @example
|
539
|
+
# api = Gusto::Client.new(
|
540
|
+
# base_url: "https://api.example.com",
|
541
|
+
# environment: Gusto::Environment::DEMO,
|
542
|
+
# token: "YOUR_AUTH_TOKEN"
|
543
|
+
# )
|
544
|
+
# api.employees.benefits.update(
|
545
|
+
# employee_benefit_id: "employee_benefit_id",
|
546
|
+
# version: "09j3d29jqdpj92109j9j2d90dq",
|
547
|
+
# employee_deduction: "250.00"
|
548
|
+
# )
|
549
|
+
def update(employee_benefit_id:, version:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, deduction_reduces_taxable_income: nil, coverage_salary_multiplier: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
|
550
|
+
Async do
|
551
|
+
response = @request_client.conn.put do | req |
|
552
|
+
unless request_options&.timeout_in_seconds.nil?
|
553
|
+
req.options.timeout = request_options.timeout_in_seconds
|
554
|
+
end
|
555
|
+
unless request_options&.token.nil?
|
556
|
+
req.headers["Authorization"] = request_options.token
|
557
|
+
end
|
558
|
+
unless request_options&.gusto_api_version.nil?
|
559
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
560
|
+
end
|
561
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
562
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
563
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
564
|
+
end
|
565
|
+
req.body = { **(request_options&.additional_body_parameters || {}), version: version, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, deduction_reduces_taxable_income: deduction_reduces_taxable_income, coverage_salary_multiplier: coverage_salary_multiplier, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
|
566
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
567
|
+
end
|
568
|
+
Gusto::EmployeeBenefit.from_json(json_object: response.body)
|
569
|
+
end
|
570
|
+
end
|
571
|
+
# Employee benefits represent an employee enrolled in a particular company
|
572
|
+
# benefit. It includes information specific to that employee’s enrollment.
|
573
|
+
# scope: `employee_benefits:write`
|
574
|
+
#
|
575
|
+
# @param employee_benefit_id [String] The UUID of the employee benefit.
|
576
|
+
# @param request_options [Gusto::RequestOptions]
|
577
|
+
# @return [Void]
|
578
|
+
# @example
|
579
|
+
# api = Gusto::Client.new(
|
580
|
+
# base_url: "https://api.example.com",
|
581
|
+
# environment: Gusto::Environment::DEMO,
|
582
|
+
# token: "YOUR_AUTH_TOKEN"
|
583
|
+
# )
|
584
|
+
# api.employees.benefits.delete(employee_benefit_id: "employee_benefit_id")
|
585
|
+
def delete(employee_benefit_id:, request_options: nil)
|
586
|
+
Async do
|
587
|
+
response = @request_client.conn.delete do | req |
|
588
|
+
unless request_options&.timeout_in_seconds.nil?
|
589
|
+
req.options.timeout = request_options.timeout_in_seconds
|
590
|
+
end
|
591
|
+
unless request_options&.token.nil?
|
592
|
+
req.headers["Authorization"] = request_options.token
|
593
|
+
end
|
594
|
+
unless request_options&.gusto_api_version.nil?
|
595
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
596
|
+
end
|
597
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
598
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
599
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
600
|
+
end
|
601
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
602
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
603
|
+
end
|
604
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
|
605
|
+
end
|
606
|
+
end
|
607
|
+
end
|
608
|
+
# Year-to-date benefit amounts from a different company represents the amount of
|
609
|
+
# money added to an employee's plan during a current year, made outside of the
|
610
|
+
# current contribution when they were employed at a different company.
|
611
|
+
# This endpoint only supports passing outside contributions for 401(k) benefits.
|
612
|
+
# scope: `employee_benefits:write`
|
613
|
+
#
|
614
|
+
# @param employee_id [String] The UUID of the employee
|
615
|
+
# @param benefit_type [Float] The benefit type supported by Gusto.
|
616
|
+
# @param tax_year [Float] The tax year for which this amount applies.
|
617
|
+
# @param ytd_employee_deduction_amount [String] The year-to-date employee deduction made outside the current company.
|
618
|
+
# @param ytd_company_contribution_amount [String] The year-to-date company contribution made outside the current company.
|
619
|
+
# @param request_options [Gusto::RequestOptions]
|
620
|
+
# @return [Void]
|
621
|
+
# @example
|
622
|
+
# api = Gusto::Client.new(
|
623
|
+
# base_url: "https://api.example.com",
|
624
|
+
# environment: Gusto::Environment::DEMO,
|
625
|
+
# token: "YOUR_AUTH_TOKEN"
|
626
|
+
# )
|
627
|
+
# api.employees.benefits.add_ytd_benefit_amounts(
|
628
|
+
# employee_id: "employee_id",
|
629
|
+
# tax_year: 1.1,
|
630
|
+
# ytd_employee_deduction_amount: "ytd_employee_deduction_amount",
|
631
|
+
# ytd_company_contribution_amount: "ytd_company_contribution_amount"
|
632
|
+
# )
|
633
|
+
def add_ytd_benefit_amounts(employee_id:, benefit_type: nil, tax_year:, ytd_employee_deduction_amount:, ytd_company_contribution_amount:, request_options: nil)
|
634
|
+
Async do
|
635
|
+
response = @request_client.conn.post do | req |
|
636
|
+
unless request_options&.timeout_in_seconds.nil?
|
637
|
+
req.options.timeout = request_options.timeout_in_seconds
|
638
|
+
end
|
639
|
+
unless request_options&.token.nil?
|
640
|
+
req.headers["Authorization"] = request_options.token
|
641
|
+
end
|
642
|
+
unless request_options&.gusto_api_version.nil?
|
643
|
+
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
|
644
|
+
end
|
645
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
646
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
647
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
648
|
+
end
|
649
|
+
req.body = { **(request_options&.additional_body_parameters || {}), benefit_type: benefit_type, tax_year: tax_year, ytd_employee_deduction_amount: ytd_employee_deduction_amount, ytd_company_contribution_amount: ytd_company_contribution_amount }.compact
|
650
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/ytd_benefit_amounts_from_different_company"
|
651
|
+
end
|
652
|
+
end
|
653
|
+
end
|
654
|
+
end
|
655
|
+
end
|
656
|
+
end
|