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.
Files changed (515) hide show
  1. checksums.yaml +7 -0
  2. data/lib/base_gusto.rb +175 -0
  3. data/lib/core/file_utilities.rb +27 -0
  4. data/lib/environment.rb +9 -0
  5. data/lib/fern_gusto/ach_transactions/client.rb +119 -0
  6. data/lib/fern_gusto/admins/types/admin.rb +82 -0
  7. data/lib/fern_gusto/companies/attachments/client.rb +335 -0
  8. data/lib/fern_gusto/companies/attachments/types/attachments_create_request_category.rb +15 -0
  9. data/lib/fern_gusto/companies/attachments/types/attachments_get_download_url_response.rb +56 -0
  10. data/lib/fern_gusto/companies/bank_accounts/client.rb +435 -0
  11. data/lib/fern_gusto/companies/bank_accounts/types/bank_accounts_create_request_account_type.rb +15 -0
  12. data/lib/fern_gusto/companies/benefits/client.rb +862 -0
  13. data/lib/fern_gusto/companies/client.rb +1104 -0
  14. data/lib/fern_gusto/companies/departments/client.rb +587 -0
  15. data/lib/fern_gusto/companies/departments/types/departments_add_people_request_contractors_item.rb +59 -0
  16. data/lib/fern_gusto/companies/departments/types/departments_add_people_request_employees_item.rb +59 -0
  17. data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_contractors_item.rb +59 -0
  18. data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_employees_item.rb +59 -0
  19. data/lib/fern_gusto/companies/employees/client.rb +376 -0
  20. data/lib/fern_gusto/companies/external_payrolls/client.rb +605 -0
  21. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item.rb +98 -0
  22. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_benefits_item.rb +79 -0
  23. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item.rb +87 -0
  24. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item_earning_type.rb +15 -0
  25. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_taxes_item.rb +69 -0
  26. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_tax_liabilities_request_liability_selections_item.rb +80 -0
  27. data/lib/fern_gusto/companies/federal_tax_details/client.rb +212 -0
  28. data/lib/fern_gusto/companies/federal_tax_details/types/federal_tax_details_update_request_tax_payer_type.rb +25 -0
  29. data/lib/fern_gusto/companies/forms/client.rb +345 -0
  30. data/lib/fern_gusto/companies/industry_selection/client.rb +207 -0
  31. data/lib/fern_gusto/companies/locations/client.rb +417 -0
  32. data/lib/fern_gusto/companies/pay_schedules/client.rb +377 -0
  33. data/lib/fern_gusto/companies/payment_configs/client.rb +198 -0
  34. data/lib/fern_gusto/companies/payment_configs/types/payment_configs_update_request_payment_speed.rb +19 -0
  35. data/lib/fern_gusto/companies/signatories/client.rb +513 -0
  36. data/lib/fern_gusto/companies/signatories/types/signatories_create_request_home_address.rb +89 -0
  37. data/lib/fern_gusto/companies/signatories/types/signatories_update_request_home_address.rb +88 -0
  38. data/lib/fern_gusto/companies/tax_requirements/client.rb +367 -0
  39. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_list_response_item.rb +75 -0
  40. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item.rb +88 -0
  41. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item_requirements_item.rb +70 -0
  42. data/lib/fern_gusto/companies/types/companies_accept_terms_response.rb +56 -0
  43. data/lib/fern_gusto/companies/types/companies_create_request_company.rb +83 -0
  44. data/lib/fern_gusto/companies/types/companies_create_request_user.rb +81 -0
  45. data/lib/fern_gusto/companies/types/companies_create_response.rb +82 -0
  46. data/lib/fern_gusto/companies/types/companies_get_custom_fields_response.rb +59 -0
  47. data/lib/fern_gusto/companies/types/companies_migrate_to_embedded_payroll_response.rb +68 -0
  48. data/lib/fern_gusto/companies/types/companies_retrieve_terms_response.rb +56 -0
  49. data/lib/fern_gusto/companies/types/company.rb +223 -0
  50. data/lib/fern_gusto/companies/types/company_company_status.rb +21 -0
  51. data/lib/fern_gusto/companies/types/company_compensations.rb +85 -0
  52. data/lib/fern_gusto/companies/types/company_compensations_fixed_item.rb +55 -0
  53. data/lib/fern_gusto/companies/types/company_compensations_hourly_item.rb +65 -0
  54. data/lib/fern_gusto/companies/types/company_compensations_paid_time_off_item.rb +55 -0
  55. data/lib/fern_gusto/companies/types/company_entity_type.rb +23 -0
  56. data/lib/fern_gusto/companies/types/company_funding_type.rb +15 -0
  57. data/lib/fern_gusto/companies/types/company_onboarding_status.rb +77 -0
  58. data/lib/fern_gusto/companies/types/company_onboarding_status_onboarding_steps_item.rb +97 -0
  59. data/lib/fern_gusto/companies/types/company_pay_schedule_type.rb +15 -0
  60. data/lib/fern_gusto/companies/types/company_primary_payroll_admin.rb +80 -0
  61. data/lib/fern_gusto/companies/types/company_primary_signatory.rb +100 -0
  62. data/lib/fern_gusto/companies/types/company_primary_signatory_home_address.rb +93 -0
  63. data/lib/fern_gusto/companies/types/company_tier.rb +20 -0
  64. data/lib/fern_gusto/company_attachment/types/company_attachment.rb +81 -0
  65. data/lib/fern_gusto/company_attachment/types/company_attachment_category.rb +13 -0
  66. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account.rb +157 -0
  67. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_account_type.rb +13 -0
  68. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_plaid_status.rb +14 -0
  69. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_status.rb +19 -0
  70. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_type.rb +17 -0
  71. data/lib/fern_gusto/company_benefits/types/benefit_summary.rb +104 -0
  72. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees.rb +113 -0
  73. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits.rb +107 -0
  74. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits_pay_period.rb +67 -0
  75. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements.rb +156 -0
  76. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up.rb +86 -0
  77. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up_default_value.rb +67 -0
  78. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum.rb +88 -0
  79. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum_default_value.rb +68 -0
  80. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution.rb +86 -0
  81. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution_default_value.rb +67 -0
  82. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount.rb +87 -0
  83. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount_default_value.rb +67 -0
  84. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier.rb +88 -0
  85. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier_default_value.rb +67 -0
  86. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage.rb +88 -0
  87. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage_default_value.rb +67 -0
  88. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction.rb +88 -0
  89. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction_default_value.rb +67 -0
  90. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option.rb +86 -0
  91. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option_default_value.rb +67 -0
  92. data/lib/fern_gusto/contractor/types/contractor_onboarding_info.rb +78 -0
  93. data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_status.rb +14 -0
  94. data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_steps_item.rb +88 -0
  95. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group.rb +145 -0
  96. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_payment_method.rb +15 -0
  97. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_status.rb +16 -0
  98. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_wage_type.rb +13 -0
  99. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group.rb +127 -0
  100. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal.rb +116 -0
  101. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_status.rb +16 -0
  102. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_totals.rb +74 -0
  103. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_status.rb +16 -0
  104. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_totals.rb +74 -0
  105. data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account.rb +94 -0
  106. data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account_account_type.rb +13 -0
  107. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method.rb +96 -0
  108. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_split_by.rb +15 -0
  109. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_type.rb +14 -0
  110. data/lib/fern_gusto/contractor_payments/types/contractor_payment.rb +146 -0
  111. data/lib/fern_gusto/contractor_payments/types/contractor_payment_payment_method.rb +15 -0
  112. data/lib/fern_gusto/contractor_payments/types/contractor_payment_status.rb +13 -0
  113. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary.rb +81 -0
  114. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates.rb +81 -0
  115. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_contractor_payments_item.rb +93 -0
  116. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_total.rb +67 -0
  117. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_contractor_payments_item.rb +86 -0
  118. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_total.rb +67 -0
  119. data/lib/fern_gusto/contractor_payments/types/contractor_payment_wage_type.rb +13 -0
  120. data/lib/fern_gusto/contractors/client.rb +1025 -0
  121. data/lib/fern_gusto/contractors/documents/client.rb +269 -0
  122. data/lib/fern_gusto/contractors/documents/types/documents_sign_request_fields_item.rb +67 -0
  123. data/lib/fern_gusto/contractors/forms/client.rb +343 -0
  124. data/lib/fern_gusto/contractors/payment_groups/client.rb +569 -0
  125. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item.rb +102 -0
  126. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item_payment_method.rb +15 -0
  127. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item.rb +102 -0
  128. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item_payment_method.rb +15 -0
  129. data/lib/fern_gusto/contractors/payment_method/client.rb +369 -0
  130. data/lib/fern_gusto/contractors/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
  131. data/lib/fern_gusto/contractors/payment_method/types/payment_method_update_request_type.rb +17 -0
  132. data/lib/fern_gusto/contractors/payments/client.rb +558 -0
  133. data/lib/fern_gusto/contractors/payments/types/payments_create_request_payment_method.rb +15 -0
  134. data/lib/fern_gusto/contractors/payments/types/payments_list_response.rb +62 -0
  135. data/lib/fern_gusto/contractors/types/contractor.rb +227 -0
  136. data/lib/fern_gusto/contractors/types/contractor_address.rb +94 -0
  137. data/lib/fern_gusto/contractors/types/contractor_onboarding_status.rb +18 -0
  138. data/lib/fern_gusto/contractors/types/contractor_type.rb +13 -0
  139. data/lib/fern_gusto/contractors/types/contractor_wage_type.rb +13 -0
  140. data/lib/fern_gusto/custom_fields/types/company_custom_field.rb +88 -0
  141. data/lib/fern_gusto/custom_fields/types/custom_field_type.rb +16 -0
  142. data/lib/fern_gusto/custom_fields/types/employee_custom_field.rb +104 -0
  143. data/lib/fern_gusto/documents/types/document.rb +167 -0
  144. data/lib/fern_gusto/documents/types/document_fields_item.rb +114 -0
  145. data/lib/fern_gusto/documents/types/document_pages_item.rb +65 -0
  146. data/lib/fern_gusto/documents/types/document_recipient_type.rb +15 -0
  147. data/lib/fern_gusto/documents/types/document_signed.rb +137 -0
  148. data/lib/fern_gusto/documents/types/document_signed_recipient_type.rb +15 -0
  149. data/lib/fern_gusto/earning_types/types/earning_type.rb +66 -0
  150. data/lib/fern_gusto/employee_employments/types/unprocessed_termination_pay_period.rb +101 -0
  151. data/lib/fern_gusto/employee_payment_method/types/employee_bank_account.rb +94 -0
  152. data/lib/fern_gusto/employee_payment_method/types/employee_bank_account_account_type.rb +13 -0
  153. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_info.rb +96 -0
  154. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_split_by.rb +15 -0
  155. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_type.rb +14 -0
  156. data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax.rb +144 -0
  157. data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax_w4data_type.rb +13 -0
  158. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax.rb +90 -0
  159. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_answer.rb +74 -0
  160. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format.rb +69 -0
  161. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format_options_item.rb +67 -0
  162. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_question.rb +96 -0
  163. data/lib/fern_gusto/employees/adresses/client.rb +885 -0
  164. data/lib/fern_gusto/employees/benefits/client.rb +656 -0
  165. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution.rb +93 -0
  166. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_type.rb +23 -0
  167. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value.rb +67 -0
  168. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value_item.rb +80 -0
  169. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_deduction_reduces_taxable_income.rb +18 -0
  170. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution.rb +93 -0
  171. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_type.rb +23 -0
  172. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value.rb +67 -0
  173. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value_item.rb +80 -0
  174. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_deduction_reduces_taxable_income.rb +18 -0
  175. data/lib/fern_gusto/employees/client.rb +822 -0
  176. data/lib/fern_gusto/employees/employments/client.rb +799 -0
  177. data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item.rb +95 -0
  178. data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item_employment_status.rb +20 -0
  179. data/lib/fern_gusto/employees/forms/client.rb +433 -0
  180. data/lib/fern_gusto/employees/forms/types/forms_generate_w2response.rb +132 -0
  181. data/lib/fern_gusto/employees/garnishments/client.rb +558 -0
  182. data/lib/fern_gusto/employees/garnishments/types/garnishments_create_request_garnishment_type.rb +20 -0
  183. data/lib/fern_gusto/employees/jobs_and_compensations/client.rb +938 -0
  184. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_minimum_wages_item.rb +62 -0
  185. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_payment_unit.rb +19 -0
  186. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_minimum_wages_item.rb +62 -0
  187. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_payment_unit.rb +19 -0
  188. data/lib/fern_gusto/employees/payment_method/client.rb +484 -0
  189. data/lib/fern_gusto/employees/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
  190. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_bank_account_request_account_type.rb +14 -0
  191. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_split_by.rb +17 -0
  192. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_splits_item.rb +83 -0
  193. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_type.rb +16 -0
  194. data/lib/fern_gusto/employees/tax_setup/client.rb +422 -0
  195. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item.rb +73 -0
  196. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item.rb +73 -0
  197. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item_answers_item.rb +77 -0
  198. data/lib/fern_gusto/employees/types/employee.rb +281 -0
  199. data/lib/fern_gusto/employees/types/employee_current_employment_status.rb +20 -0
  200. data/lib/fern_gusto/employees/types/employee_onboarding_info.rb +77 -0
  201. data/lib/fern_gusto/employees/types/employee_onboarding_status.rb +19 -0
  202. data/lib/fern_gusto/employees/types/employee_onboarding_status_onboarding_steps_item.rb +88 -0
  203. data/lib/fern_gusto/employees/types/employee_payment_method.rb +13 -0
  204. data/lib/fern_gusto/employees/types/employees_get_custom_fields_response.rb +59 -0
  205. data/lib/fern_gusto/employees/types/employees_get_request_include.rb +12 -0
  206. data/lib/fern_gusto/events/client.rb +144 -0
  207. data/lib/fern_gusto/events/types/events_list_request_sort_order.rb +12 -0
  208. data/lib/fern_gusto/external_payrolls/types/external_payroll.rb +158 -0
  209. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_benefits_item.rb +73 -0
  210. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_earnings_item.rb +87 -0
  211. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_taxes_item.rb +85 -0
  212. data/lib/fern_gusto/external_payrolls/types/external_payroll_basic.rb +101 -0
  213. data/lib/fern_gusto/external_payrolls/types/external_payroll_basic_status.rb +16 -0
  214. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item.rb +93 -0
  215. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_benefits_item.rb +74 -0
  216. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_earnings_item.rb +81 -0
  217. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_taxes_item.rb +67 -0
  218. data/lib/fern_gusto/external_payrolls/types/external_payroll_metadata.rb +56 -0
  219. data/lib/fern_gusto/external_payrolls/types/external_payroll_status.rb +16 -0
  220. data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions.rb +72 -0
  221. data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions_tax_suggestions.rb +68 -0
  222. data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections.rb +86 -0
  223. data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections_possible_liabilities.rb +75 -0
  224. data/lib/fern_gusto/federal_tax_details/types/federal_tax_details.rb +140 -0
  225. data/lib/fern_gusto/flows/client.rb +113 -0
  226. data/lib/fern_gusto/flows/types/flow.rb +66 -0
  227. data/lib/fern_gusto/flows/types/flows_create_request_entity_type.rb +14 -0
  228. data/lib/fern_gusto/forms/types/form.rb +123 -0
  229. data/lib/fern_gusto/forms/types/form1099.rb +126 -0
  230. data/lib/fern_gusto/generated_documents/client.rb +106 -0
  231. data/lib/fern_gusto/holiday_pay_policies/client.rb +599 -0
  232. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_add_employees_request_employees_item.rb +57 -0
  233. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays.rb +198 -0
  234. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_christmas_day.rb +57 -0
  235. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_columbus_day.rb +57 -0
  236. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_independence_day.rb +57 -0
  237. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_juneteenth.rb +57 -0
  238. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_labor_day.rb +57 -0
  239. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_memorial_day.rb +57 -0
  240. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_mlk_day.rb +57 -0
  241. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_new_years_day.rb +57 -0
  242. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_presidents_day.rb +57 -0
  243. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_thanksgiving.rb +57 -0
  244. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_veterans_day.rb +57 -0
  245. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_remove_employees_request_employees_item.rb +57 -0
  246. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays.rb +198 -0
  247. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_christmas_day.rb +57 -0
  248. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_columbus_day.rb +57 -0
  249. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_independence_day.rb +57 -0
  250. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_juneteenth.rb +57 -0
  251. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_labor_day.rb +57 -0
  252. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_memorial_day.rb +57 -0
  253. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_mlk_day.rb +57 -0
  254. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_new_years_day.rb +57 -0
  255. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_presidents_day.rb +57 -0
  256. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_thanksgiving.rb +57 -0
  257. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_veterans_day.rb +57 -0
  258. data/lib/fern_gusto/industry/types/industry.rb +87 -0
  259. data/lib/fern_gusto/invoices/client.rb +132 -0
  260. data/lib/fern_gusto/jobs_and_compensations/types/compensation.rb +120 -0
  261. data/lib/fern_gusto/jobs_and_compensations/types/compensation_payment_unit.rb +17 -0
  262. data/lib/fern_gusto/jobs_and_compensations/types/job.rb +161 -0
  263. data/lib/fern_gusto/locations/types/company_address.rb +103 -0
  264. data/lib/fern_gusto/locations/types/location.rb +171 -0
  265. data/lib/fern_gusto/notifications/client.rb +120 -0
  266. data/lib/fern_gusto/pay_schedules/types/pay_schedule.rb +151 -0
  267. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment.rb +103 -0
  268. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_department.rb +65 -0
  269. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee.rb +65 -0
  270. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee_change.rb +105 -0
  271. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_pay_period.rb +80 -0
  272. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview.rb +71 -0
  273. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview_type.rb +15 -0
  274. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_transition_pay_period.rb +68 -0
  275. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_type.rb +15 -0
  276. data/lib/fern_gusto/pay_schedules/types/pay_schedule_frequency.rb +17 -0
  277. data/lib/fern_gusto/payment_configs/types/payment_configs.rb +79 -0
  278. data/lib/fern_gusto/payroll/client.rb +1644 -0
  279. data/lib/fern_gusto/payroll/earning_types/client.rb +350 -0
  280. data/lib/fern_gusto/payroll/earning_types/types/earning_types_get_response.rb +74 -0
  281. data/lib/fern_gusto/payroll/external_payrolls/client.rb +199 -0
  282. data/lib/fern_gusto/payroll/pay_schedules/client.rb +584 -0
  283. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_create_request_frequency.rb +17 -0
  284. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_request_frequency.rb +16 -0
  285. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response.rb +72 -0
  286. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response_pay_periods_item.rb +83 -0
  287. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_update_request_frequency.rb +17 -0
  288. data/lib/fern_gusto/payroll/types/payroll_create_request_off_cycle_reason.rb +15 -0
  289. data/lib/fern_gusto/payroll/types/payroll_create_request_withholding_pay_period.rb +18 -0
  290. data/lib/fern_gusto/payroll/types/payroll_get_request_include_item.rb +14 -0
  291. data/lib/fern_gusto/payroll/types/payroll_list_request_include_item.rb +13 -0
  292. data/lib/fern_gusto/payroll/types/payroll_list_request_payroll_types_item.rb +13 -0
  293. data/lib/fern_gusto/payroll/types/payroll_list_request_processing_statuses_item.rb +12 -0
  294. data/lib/fern_gusto/payroll/types/payroll_list_request_sort_order.rb +12 -0
  295. data/lib/fern_gusto/payroll/types/payroll_skip_payroll_request_payroll_type.rb +15 -0
  296. data/lib/fern_gusto/payroll/types/payroll_submit_request_submission_blockers_item.rb +67 -0
  297. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item.rb +133 -0
  298. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_fixed_compensations_item.rb +79 -0
  299. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_hourly_compensations_item.rb +79 -0
  300. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_paid_time_off_item.rb +85 -0
  301. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_payment_method.rb +13 -0
  302. data/lib/fern_gusto/payrolls/types/employee_pay_stub.rb +94 -0
  303. data/lib/fern_gusto/payrolls/types/paid_time_off.rb +123 -0
  304. data/lib/fern_gusto/payrolls/types/paid_time_off_name.rb +14 -0
  305. data/lib/fern_gusto/payrolls/types/pay_period.rb +86 -0
  306. data/lib/fern_gusto/payrolls/types/pay_period_payroll.rb +107 -0
  307. data/lib/fern_gusto/payrolls/types/pay_period_payroll_payroll_type.rb +13 -0
  308. data/lib/fern_gusto/payrolls/types/payroll.rb +285 -0
  309. data/lib/fern_gusto/payrolls/types/payroll_minimal.rb +250 -0
  310. data/lib/fern_gusto/payrolls/types/payroll_prepared.rb +250 -0
  311. data/lib/fern_gusto/recovery_cases/client.rb +198 -0
  312. data/lib/fern_gusto/reports/client.rb +306 -0
  313. data/lib/fern_gusto/reports/types/reports_create_request_columns_item.rb +91 -0
  314. data/lib/fern_gusto/reports/types/reports_create_request_employment_status.rb +18 -0
  315. data/lib/fern_gusto/reports/types/reports_create_request_employment_type.rb +16 -0
  316. data/lib/fern_gusto/reports/types/reports_create_request_file_type.rb +13 -0
  317. data/lib/fern_gusto/reports/types/reports_create_request_groupings_item.rb +14 -0
  318. data/lib/fern_gusto/reports/types/reports_create_request_payment_method.rb +13 -0
  319. data/lib/fern_gusto/signatories/types/signatory.rb +175 -0
  320. data/lib/fern_gusto/signatories/types/signatory_home_address.rb +93 -0
  321. data/lib/fern_gusto/signatories/types/signatory_identity_verification_status.rb +28 -0
  322. data/lib/fern_gusto/terminations/types/termination.rb +109 -0
  323. data/lib/fern_gusto/time_off_policies/client.rb +863 -0
  324. data/lib/fern_gusto/time_off_policies/types/time_off_policies_add_employees_request_employees_item.rb +67 -0
  325. data/lib/fern_gusto/time_off_policies/types/time_off_policies_create_request_accrual_method.rb +19 -0
  326. data/lib/fern_gusto/time_off_policies/types/time_off_policies_remove_employees_request_employees_item.rb +57 -0
  327. data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_balance_request_employees_item.rb +67 -0
  328. data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_request_accrual_method.rb +19 -0
  329. data/lib/fern_gusto/time_off_requests/types/time_off_request.rb +141 -0
  330. data/lib/fern_gusto/time_off_requests/types/time_off_request_approver.rb +66 -0
  331. data/lib/fern_gusto/time_off_requests/types/time_off_request_employee.rb +66 -0
  332. data/lib/fern_gusto/time_off_requests/types/time_off_request_initiator.rb +66 -0
  333. data/lib/fern_gusto/time_off_requests/types/time_off_request_request_type.rb +13 -0
  334. data/lib/fern_gusto/time_off_requests/types/time_off_request_status.rb +14 -0
  335. data/lib/fern_gusto/token/client.rb +270 -0
  336. data/lib/fern_gusto/token/types/token_get_info_response.rb +85 -0
  337. data/lib/fern_gusto/token/types/token_get_info_response_resource.rb +64 -0
  338. data/lib/fern_gusto/token/types/token_get_info_response_resource_owner.rb +65 -0
  339. data/lib/fern_gusto/token/types/token_get_info_response_resource_owner_type.rb +13 -0
  340. data/lib/fern_gusto/token/types/token_get_system_access_token_response.rb +77 -0
  341. data/lib/fern_gusto/types/accruing_time_off_hour.rb +64 -0
  342. data/lib/fern_gusto/types/ach_transaction.rb +162 -0
  343. data/lib/fern_gusto/types/ach_transaction_payment_direction.rb +11 -0
  344. data/lib/fern_gusto/types/ach_transaction_payment_event_type.rb +11 -0
  345. data/lib/fern_gusto/types/ach_transaction_payment_status.rb +13 -0
  346. data/lib/fern_gusto/types/ach_transaction_recipient_type.rb +11 -0
  347. data/lib/fern_gusto/types/address.rb +111 -0
  348. data/lib/fern_gusto/types/authentication.rb +96 -0
  349. data/lib/fern_gusto/types/child_support_data.rb +58 -0
  350. data/lib/fern_gusto/types/child_support_data_agencies_item.rb +104 -0
  351. data/lib/fern_gusto/types/child_support_data_agencies_item_fips_codes_item.rb +67 -0
  352. data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item.rb +70 -0
  353. data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item_key.rb +14 -0
  354. data/lib/fern_gusto/types/company_benefit.rb +135 -0
  355. data/lib/fern_gusto/types/company_benefit_with_employee_benefits.rb +148 -0
  356. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item.rb +115 -0
  357. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution.rb +91 -0
  358. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value.rb +61 -0
  359. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers.rb +60 -0
  360. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers_tiers_item.rb +86 -0
  361. data/lib/fern_gusto/types/contractor_address_info.rb +118 -0
  362. data/lib/fern_gusto/types/contractor_body.rb +200 -0
  363. data/lib/fern_gusto/types/contractor_body_type.rb +11 -0
  364. data/lib/fern_gusto/types/contractor_body_wage_type.rb +11 -0
  365. data/lib/fern_gusto/types/contractor_payment_receipt.rb +161 -0
  366. data/lib/fern_gusto/types/contractor_payment_receipt_contractor_payments_item.rb +120 -0
  367. data/lib/fern_gusto/types/contractor_payment_receipt_licensee.rb +92 -0
  368. data/lib/fern_gusto/types/contractor_payment_receipt_totals.rb +54 -0
  369. data/lib/fern_gusto/types/create_report.rb +77 -0
  370. data/lib/fern_gusto/types/department.rb +103 -0
  371. data/lib/fern_gusto/types/department_contractors_item.rb +53 -0
  372. data/lib/fern_gusto/types/department_employees_item.rb +53 -0
  373. data/lib/fern_gusto/types/document_pdf.rb +63 -0
  374. data/lib/fern_gusto/types/employee_address.rb +139 -0
  375. data/lib/fern_gusto/types/employee_benefit.rb +220 -0
  376. data/lib/fern_gusto/types/employee_benefit_base_object.rb +199 -0
  377. data/lib/fern_gusto/types/employee_benefit_base_object_contribution.rb +89 -0
  378. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value.rb +61 -0
  379. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers.rb +59 -0
  380. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers_tiers_item.rb +85 -0
  381. data/lib/fern_gusto/types/employee_benefit_base_object_deduction_reduces_taxable_income.rb +14 -0
  382. data/lib/fern_gusto/types/employee_benefit_for_company_benefit.rb +220 -0
  383. data/lib/fern_gusto/types/employee_work_address.rb +137 -0
  384. data/lib/fern_gusto/types/entity_error_object.rb +102 -0
  385. data/lib/fern_gusto/types/entity_error_object_errors_item.rb +89 -0
  386. data/lib/fern_gusto/types/event.rb +99 -0
  387. data/lib/fern_gusto/types/flsa_status_type.rb +23 -0
  388. data/lib/fern_gusto/types/form_pdf.rb +63 -0
  389. data/lib/fern_gusto/types/garnishment.rb +172 -0
  390. data/lib/fern_gusto/types/garnishment_child_support.rb +113 -0
  391. data/lib/fern_gusto/types/garnishment_child_support_payment_period.rb +14 -0
  392. data/lib/fern_gusto/types/garnishment_garnishment_type.rb +16 -0
  393. data/lib/fern_gusto/types/generated_document.rb +70 -0
  394. data/lib/fern_gusto/types/gross_up_pay.rb +53 -0
  395. data/lib/fern_gusto/types/historical_employee_body.rb +156 -0
  396. data/lib/fern_gusto/types/historical_employee_body_employee_state_taxes.rb +80 -0
  397. data/lib/fern_gusto/types/historical_employee_body_home_address.rb +84 -0
  398. data/lib/fern_gusto/types/historical_employee_body_job.rb +53 -0
  399. data/lib/fern_gusto/types/historical_employee_body_termination.rb +53 -0
  400. data/lib/fern_gusto/types/historical_employee_body_work_address.rb +53 -0
  401. data/lib/fern_gusto/types/holiday_pay_policy.rb +88 -0
  402. data/lib/fern_gusto/types/holiday_pay_policy_employees_item.rb +53 -0
  403. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item.rb +179 -0
  404. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_columbus_day.rb +72 -0
  405. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_independence_day.rb +72 -0
  406. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_juneteenth.rb +72 -0
  407. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_labor_day.rb +72 -0
  408. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_memorial_day.rb +72 -0
  409. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_mlk_day.rb +72 -0
  410. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_new_years_day.rb +72 -0
  411. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_presidents_day.rb +72 -0
  412. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_thanksgiving.rb +72 -0
  413. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_veterans_day.rb +72 -0
  414. data/lib/fern_gusto/types/invoice_data.rb +58 -0
  415. data/lib/fern_gusto/types/invoice_data_active_companies_item.rb +91 -0
  416. data/lib/fern_gusto/types/minimum_wage.rb +96 -0
  417. data/lib/fern_gusto/types/notification.rb +125 -0
  418. data/lib/fern_gusto/types/notification_resources_item.rb +85 -0
  419. data/lib/fern_gusto/types/off_cycle_reason_type.rb +19 -0
  420. data/lib/fern_gusto/types/paid_holidays.rb +61 -0
  421. data/lib/fern_gusto/types/paid_holidays_schema.rb +77 -0
  422. data/lib/fern_gusto/types/pay_schedule_assignment_body.rb +111 -0
  423. data/lib/fern_gusto/types/pay_schedule_assignment_body_departments_item.rb +65 -0
  424. data/lib/fern_gusto/types/pay_schedule_assignment_body_employees_item.rb +64 -0
  425. data/lib/fern_gusto/types/pay_schedule_assignment_body_type.rb +13 -0
  426. data/lib/fern_gusto/types/payment_method_bank_account.rb +87 -0
  427. data/lib/fern_gusto/types/payroll_blocker.rb +63 -0
  428. data/lib/fern_gusto/types/payroll_blockers_error.rb +60 -0
  429. data/lib/fern_gusto/types/payroll_blockers_error_errors_item.rb +83 -0
  430. data/lib/fern_gusto/types/payroll_blockers_error_errors_item_metadata.rb +54 -0
  431. data/lib/fern_gusto/types/payroll_check.rb +84 -0
  432. data/lib/fern_gusto/types/payroll_company_taxes_type.rb +6 -0
  433. data/lib/fern_gusto/types/payroll_company_taxes_type_item.rb +70 -0
  434. data/lib/fern_gusto/types/payroll_credit_blockers_type.rb +6 -0
  435. data/lib/fern_gusto/types/payroll_credit_blockers_type_item.rb +89 -0
  436. data/lib/fern_gusto/types/payroll_credit_blockers_type_item_status.rb +13 -0
  437. data/lib/fern_gusto/types/payroll_credit_blockers_type_item_unblock_options_item.rb +72 -0
  438. data/lib/fern_gusto/types/payroll_employee_compensations_type.rb +6 -0
  439. data/lib/fern_gusto/types/payroll_employee_compensations_type_item.rb +216 -0
  440. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_benefits_item.rb +79 -0
  441. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_deductions_item.rb +65 -0
  442. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_fixed_compensations_item.rb +74 -0
  443. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_hourly_compensations_item.rb +92 -0
  444. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_paid_time_off_item.rb +76 -0
  445. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_payment_method.rb +11 -0
  446. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_taxes_item.rb +70 -0
  447. data/lib/fern_gusto/types/payroll_fixed_compensation_types_type.rb +6 -0
  448. data/lib/fern_gusto/types/payroll_fixed_compensation_types_type_item.rb +54 -0
  449. data/lib/fern_gusto/types/payroll_pay_period_type.rb +70 -0
  450. data/lib/fern_gusto/types/payroll_payment_speed_changed_type.rb +86 -0
  451. data/lib/fern_gusto/types/payroll_payroll_status_meta_type.rb +92 -0
  452. data/lib/fern_gusto/types/payroll_processing_request.rb +68 -0
  453. data/lib/fern_gusto/types/payroll_processing_request_status.rb +14 -0
  454. data/lib/fern_gusto/types/payroll_receipt.rb +177 -0
  455. data/lib/fern_gusto/types/payroll_receipt_employee_compensations_item.rb +116 -0
  456. data/lib/fern_gusto/types/payroll_receipt_licensee.rb +92 -0
  457. data/lib/fern_gusto/types/payroll_receipt_taxes_item.rb +63 -0
  458. data/lib/fern_gusto/types/payroll_receipt_totals.rb +85 -0
  459. data/lib/fern_gusto/types/payroll_reversal.rb +91 -0
  460. data/lib/fern_gusto/types/payroll_submission_blockers_type.rb +6 -0
  461. data/lib/fern_gusto/types/payroll_submission_blockers_type_item.rb +89 -0
  462. data/lib/fern_gusto/types/payroll_submission_blockers_type_item_status.rb +11 -0
  463. data/lib/fern_gusto/types/payroll_submission_blockers_type_item_unblock_options_item.rb +72 -0
  464. data/lib/fern_gusto/types/payroll_totals_type.rb +199 -0
  465. data/lib/fern_gusto/types/payroll_withholding_pay_period_type.rb +17 -0
  466. data/lib/fern_gusto/types/recovery_case.rb +131 -0
  467. data/lib/fern_gusto/types/recovery_case_status.rb +14 -0
  468. data/lib/fern_gusto/types/rehire.rb +116 -0
  469. data/lib/fern_gusto/types/rehire_body.rb +91 -0
  470. data/lib/fern_gusto/types/rehire_body_employment_status.rb +16 -0
  471. data/lib/fern_gusto/types/rehire_employment_status.rb +16 -0
  472. data/lib/fern_gusto/types/report.rb +72 -0
  473. data/lib/fern_gusto/types/report_template.rb +77 -0
  474. data/lib/fern_gusto/types/supported_benefit.rb +122 -0
  475. data/lib/fern_gusto/types/tax_requirement.rb +111 -0
  476. data/lib/fern_gusto/types/tax_requirement_applicable_if_item.rb +69 -0
  477. data/lib/fern_gusto/types/tax_requirement_applicable_if_item_value.rb +72 -0
  478. data/lib/fern_gusto/types/tax_requirement_effective_from.rb +5 -0
  479. data/lib/fern_gusto/types/tax_requirement_metadata.rb +182 -0
  480. data/lib/fern_gusto/types/tax_requirement_metadata_options_item.rb +70 -0
  481. data/lib/fern_gusto/types/tax_requirement_metadata_rate_type.rb +13 -0
  482. data/lib/fern_gusto/types/tax_requirement_metadata_type.rb +31 -0
  483. data/lib/fern_gusto/types/tax_requirement_metadata_validation.rb +81 -0
  484. data/lib/fern_gusto/types/tax_requirement_metadata_validation_type.rb +11 -0
  485. data/lib/fern_gusto/types/tax_requirement_set.rb +90 -0
  486. data/lib/fern_gusto/types/tax_requirements_state.rb +75 -0
  487. data/lib/fern_gusto/types/time_off_activity.rb +107 -0
  488. data/lib/fern_gusto/types/time_off_activity_time_off_type.rb +11 -0
  489. data/lib/fern_gusto/types/time_off_policy.rb +183 -0
  490. data/lib/fern_gusto/types/time_off_policy_employees_item.rb +53 -0
  491. data/lib/fern_gusto/types/time_off_policy_policy_type.rb +11 -0
  492. data/lib/fern_gusto/types/unprocessable_entity_error_body.rb +59 -0
  493. data/lib/fern_gusto/types/unprocessable_entity_error_body_errors.rb +57 -0
  494. data/lib/fern_gusto/types/unprocessable_entity_error_body_errors_base_item.rb +72 -0
  495. data/lib/fern_gusto/types/unprocessable_entity_error_body_item.rb +65 -0
  496. data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item.rb +69 -0
  497. data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item_answers_item.rb +72 -0
  498. data/lib/fern_gusto/types/unprocessable_entity_error_object.rb +63 -0
  499. data/lib/fern_gusto/types/versionable.rb +57 -0
  500. data/lib/fern_gusto/types/versionable_required.rb +55 -0
  501. data/lib/fern_gusto/types/wire_in_request.rb +170 -0
  502. data/lib/fern_gusto/types/wire_in_request_status.rb +14 -0
  503. data/lib/fern_gusto/webhooks/client.rb +627 -0
  504. data/lib/fern_gusto/webhooks/types/webhook_subscription.rb +82 -0
  505. data/lib/fern_gusto/webhooks/types/webhook_subscription_status.rb +14 -0
  506. data/lib/fern_gusto/webhooks/types/webhook_subscription_subscription_types_item.rb +25 -0
  507. data/lib/fern_gusto/webhooks/types/webhooks_create_request_subscription_types_item.rb +25 -0
  508. data/lib/fern_gusto/webhooks/types/webhooks_update_request_subscription_types_item.rb +25 -0
  509. data/lib/fern_gusto/wire_in_requests/client.rb +273 -0
  510. data/lib/fern_gusto.rb +310 -0
  511. data/lib/gemconfig.rb +13 -0
  512. data/lib/gusto_legacy.rb +19 -0
  513. data/lib/requests.rb +206 -0
  514. data/lib/types_export.rb +461 -0
  515. metadata +671 -0
@@ -0,0 +1,139 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ class EmployeeAddress
7
+ # @return [String] The UUID of the employee address
8
+ attr_reader :uuid
9
+ # @return [String] The UUID of the employee
10
+ attr_reader :employee_uuid
11
+ # @return [String] The date the employee started living at the address.
12
+ attr_reader :effective_date
13
+ # @return [Boolean] Determines if home taxes should be withheld and paid for employee.
14
+ attr_reader :courtesy_withholding
15
+ # @return [String]
16
+ attr_reader :street1
17
+ # @return [String]
18
+ attr_reader :street2
19
+ # @return [String]
20
+ attr_reader :city
21
+ # @return [String]
22
+ attr_reader :state
23
+ # @return [String]
24
+ attr_reader :zip
25
+ # @return [String]
26
+ attr_reader :country
27
+ # @return [Boolean] The status of the location. Inactive locations have been deleted, but may still
28
+ # have historical data associated with them.
29
+ attr_reader :active
30
+ # @return [String] The current version of the object. See the [versioning
31
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
32
+ # on how to use this field.
33
+ attr_reader :version
34
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
35
+ attr_reader :additional_properties
36
+ # @return [Object]
37
+ attr_reader :_field_set
38
+ protected :_field_set
39
+
40
+ OMIT = Object.new
41
+
42
+ # @param uuid [String] The UUID of the employee address
43
+ # @param employee_uuid [String] The UUID of the employee
44
+ # @param effective_date [String] The date the employee started living at the address.
45
+ # @param courtesy_withholding [Boolean] Determines if home taxes should be withheld and paid for employee.
46
+ # @param street1 [String]
47
+ # @param street2 [String]
48
+ # @param city [String]
49
+ # @param state [String]
50
+ # @param zip [String]
51
+ # @param country [String]
52
+ # @param active [Boolean] The status of the location. Inactive locations have been deleted, but may still
53
+ # have historical data associated with them.
54
+ # @param version [String] The current version of the object. See the [versioning
55
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
56
+ # on how to use this field.
57
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
58
+ # @return [Gusto::EmployeeAddress]
59
+ def initialize(uuid: OMIT, employee_uuid: OMIT, effective_date: OMIT, courtesy_withholding: OMIT, street1: OMIT, street2: OMIT, city: OMIT, state: OMIT, zip: OMIT, country: OMIT, active: OMIT, version: OMIT, additional_properties: nil)
60
+ @uuid = uuid if uuid != OMIT
61
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
62
+ @effective_date = effective_date if effective_date != OMIT
63
+ @courtesy_withholding = courtesy_withholding if courtesy_withholding != OMIT
64
+ @street1 = street1 if street1 != OMIT
65
+ @street2 = street2 if street2 != OMIT
66
+ @city = city if city != OMIT
67
+ @state = state if state != OMIT
68
+ @zip = zip if zip != OMIT
69
+ @country = country if country != OMIT
70
+ @active = active if active != OMIT
71
+ @version = version if version != OMIT
72
+ @additional_properties = additional_properties
73
+ @_field_set = { "uuid": uuid, "employee_uuid": employee_uuid, "effective_date": effective_date, "courtesy_withholding": courtesy_withholding, "street_1": street1, "street_2": street2, "city": city, "state": state, "zip": zip, "country": country, "active": active, "version": version }.reject do | _k, v |
74
+ v == OMIT
75
+ end
76
+ end
77
+ # Deserialize a JSON object to an instance of EmployeeAddress
78
+ #
79
+ # @param json_object [String]
80
+ # @return [Gusto::EmployeeAddress]
81
+ def self.from_json(json_object:)
82
+ struct = JSON.parse(json_object, object_class: OpenStruct)
83
+ parsed_json = JSON.parse(json_object)
84
+ uuid = parsed_json["uuid"]
85
+ employee_uuid = parsed_json["employee_uuid"]
86
+ effective_date = parsed_json["effective_date"]
87
+ courtesy_withholding = parsed_json["courtesy_withholding"]
88
+ street1 = parsed_json["street_1"]
89
+ street2 = parsed_json["street_2"]
90
+ city = parsed_json["city"]
91
+ state = parsed_json["state"]
92
+ zip = parsed_json["zip"]
93
+ country = parsed_json["country"]
94
+ active = parsed_json["active"]
95
+ version = parsed_json["version"]
96
+ new(
97
+ uuid: uuid,
98
+ employee_uuid: employee_uuid,
99
+ effective_date: effective_date,
100
+ courtesy_withholding: courtesy_withholding,
101
+ street1: street1,
102
+ street2: street2,
103
+ city: city,
104
+ state: state,
105
+ zip: zip,
106
+ country: country,
107
+ active: active,
108
+ version: version,
109
+ additional_properties: struct
110
+ )
111
+ end
112
+ # Serialize an instance of EmployeeAddress to a JSON object
113
+ #
114
+ # @return [String]
115
+ def to_json
116
+ @_field_set&.to_json
117
+ end
118
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
119
+ # hash and check each fields type against the current object's property
120
+ # definitions.
121
+ #
122
+ # @param obj [Object]
123
+ # @return [Void]
124
+ def self.validate_raw(obj:)
125
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
126
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
127
+ obj.effective_date&.is_a?(String) != false || raise("Passed value for field obj.effective_date is not the expected type, validation failed.")
128
+ obj.courtesy_withholding&.is_a?(Boolean) != false || raise("Passed value for field obj.courtesy_withholding is not the expected type, validation failed.")
129
+ obj.street1&.is_a?(String) != false || raise("Passed value for field obj.street1 is not the expected type, validation failed.")
130
+ obj.street2&.is_a?(String) != false || raise("Passed value for field obj.street2 is not the expected type, validation failed.")
131
+ obj.city&.is_a?(String) != false || raise("Passed value for field obj.city is not the expected type, validation failed.")
132
+ obj.state&.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
133
+ obj.zip&.is_a?(String) != false || raise("Passed value for field obj.zip is not the expected type, validation failed.")
134
+ obj.country&.is_a?(String) != false || raise("Passed value for field obj.country is not the expected type, validation failed.")
135
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
136
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,220 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_benefit_base_object_contribution"
3
+ require_relative "employee_benefit_base_object_deduction_reduces_taxable_income"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Gusto
8
+ # The representation of an employee benefit.
9
+ class EmployeeBenefit
10
+ # @return [String] The UUID of the employee to which the benefit belongs.
11
+ attr_reader :employee_uuid
12
+ # @return [String] The UUID of the company benefit.
13
+ attr_reader :company_benefit_uuid
14
+ # @return [String] The UUID of the employee benefit.
15
+ attr_reader :uuid
16
+ # @return [String] The current version of the object. See the [versioning
17
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
18
+ # on how to use this field.
19
+ attr_reader :version
20
+ # @return [Boolean] Whether the employee benefit is active.
21
+ attr_reader :active
22
+ # @return [String] The amount to be deducted, per pay period, from the employee's pay.
23
+ attr_reader :employee_deduction
24
+ # @return [Boolean] Whether the employee deduction amount should be treated as a percentage to be
25
+ # deducted from each payroll.
26
+ attr_reader :deduct_as_percentage
27
+ # @return [String] The maximum employee deduction amount per year. A null value signifies no limit.
28
+ attr_reader :employee_deduction_annual_maximum
29
+ # @return [Gusto::EmployeeBenefitBaseObjectContribution] An object representing the type and value of the company contribution.
30
+ attr_reader :contribution
31
+ # @return [Boolean] Whether the company contribution is elective (aka matching). For "tiered"
32
+ # contribution types, this is always true.
33
+ attr_reader :elective
34
+ # @return [String] The maximum company contribution amount per year. A null value signifies no
35
+ # limit.
36
+ attr_reader :company_contribution_annual_maximum
37
+ # @return [String] Some benefits require additional information to determine their limit. For
38
+ # example, for an HSA benefit, the limit option should be either "Family" or
39
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
40
+ # either "Joint Filing or Single" or "Married and Filing Separately".
41
+ attr_reader :limit_option
42
+ # @return [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
43
+ # 401k benefits use this value for employees over 50.
44
+ attr_reader :catch_up
45
+ # @return [String] Identifier for a 401(k) loan assigned by the 401(k) provider
46
+ attr_reader :retirement_loan_identifier
47
+ # @return [String] The amount that the employee is insured for. Note: company contribution cannot
48
+ # be present if coverage amount is set.
49
+ attr_reader :coverage_amount
50
+ # @return [Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
51
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
52
+ # and coverage salary multiplier are ignored.
53
+ attr_reader :deduction_reduces_taxable_income
54
+ # @return [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
55
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
56
+ attr_reader :coverage_salary_multiplier
57
+ # @return [String] The amount to be paid, per pay period, by the company. This field will not
58
+ # appear for tiered contribution types.
59
+ attr_reader :company_contribution
60
+ # @return [Boolean] Whether the company_contribution value should be treated as a percentage to be
61
+ # added to each payroll. This field will not appear for tiered contribution types.
62
+ attr_reader :contribute_as_percentage
63
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
64
+ attr_reader :additional_properties
65
+ # @return [Object]
66
+ attr_reader :_field_set
67
+ protected :_field_set
68
+
69
+ OMIT = Object.new
70
+
71
+ # @param employee_uuid [String] The UUID of the employee to which the benefit belongs.
72
+ # @param company_benefit_uuid [String] The UUID of the company benefit.
73
+ # @param uuid [String] The UUID of the employee benefit.
74
+ # @param version [String] The current version of the object. See the [versioning
75
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
76
+ # on how to use this field.
77
+ # @param active [Boolean] Whether the employee benefit is active.
78
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
79
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
80
+ # deducted from each payroll.
81
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
82
+ # @param contribution [Gusto::EmployeeBenefitBaseObjectContribution] An object representing the type and value of the company contribution.
83
+ # @param elective [Boolean] Whether the company contribution is elective (aka matching). For "tiered"
84
+ # contribution types, this is always true.
85
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
86
+ # limit.
87
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
88
+ # example, for an HSA benefit, the limit option should be either "Family" or
89
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
90
+ # either "Joint Filing or Single" or "Married and Filing Separately".
91
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
92
+ # 401k benefits use this value for employees over 50.
93
+ # @param retirement_loan_identifier [String] Identifier for a 401(k) loan assigned by the 401(k) provider
94
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
95
+ # be present if coverage amount is set.
96
+ # @param deduction_reduces_taxable_income [Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
97
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
98
+ # and coverage salary multiplier are ignored.
99
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
100
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
101
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company. This field will not
102
+ # appear for tiered contribution types.
103
+ # @param contribute_as_percentage [Boolean] Whether the company_contribution value should be treated as a percentage to be
104
+ # added to each payroll. This field will not appear for tiered contribution types.
105
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
106
+ # @return [Gusto::EmployeeBenefit]
107
+ def initialize(employee_uuid: OMIT, company_benefit_uuid: OMIT, uuid: OMIT, version: OMIT, active: OMIT, employee_deduction: OMIT, deduct_as_percentage: OMIT, employee_deduction_annual_maximum: OMIT, contribution: OMIT, elective: OMIT, company_contribution_annual_maximum: OMIT, limit_option: OMIT, catch_up: OMIT, retirement_loan_identifier: OMIT, coverage_amount: OMIT, deduction_reduces_taxable_income: OMIT, coverage_salary_multiplier: OMIT, company_contribution: OMIT, contribute_as_percentage: OMIT, additional_properties: nil)
108
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
109
+ @company_benefit_uuid = company_benefit_uuid if company_benefit_uuid != OMIT
110
+ @uuid = uuid if uuid != OMIT
111
+ @version = version if version != OMIT
112
+ @active = active if active != OMIT
113
+ @employee_deduction = employee_deduction if employee_deduction != OMIT
114
+ @deduct_as_percentage = deduct_as_percentage if deduct_as_percentage != OMIT
115
+ @employee_deduction_annual_maximum = employee_deduction_annual_maximum if employee_deduction_annual_maximum != OMIT
116
+ @contribution = contribution if contribution != OMIT
117
+ @elective = elective if elective != OMIT
118
+ @company_contribution_annual_maximum = company_contribution_annual_maximum if company_contribution_annual_maximum != OMIT
119
+ @limit_option = limit_option if limit_option != OMIT
120
+ @catch_up = catch_up if catch_up != OMIT
121
+ @retirement_loan_identifier = retirement_loan_identifier if retirement_loan_identifier != OMIT
122
+ @coverage_amount = coverage_amount if coverage_amount != OMIT
123
+ @deduction_reduces_taxable_income = deduction_reduces_taxable_income if deduction_reduces_taxable_income != OMIT
124
+ @coverage_salary_multiplier = coverage_salary_multiplier if coverage_salary_multiplier != OMIT
125
+ @company_contribution = company_contribution if company_contribution != OMIT
126
+ @contribute_as_percentage = contribute_as_percentage if contribute_as_percentage != OMIT
127
+ @additional_properties = additional_properties
128
+ @_field_set = { "employee_uuid": employee_uuid, "company_benefit_uuid": company_benefit_uuid, "uuid": uuid, "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, "retirement_loan_identifier": retirement_loan_identifier, "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 }.reject do | _k, v |
129
+ v == OMIT
130
+ end
131
+ end
132
+ # Deserialize a JSON object to an instance of EmployeeBenefit
133
+ #
134
+ # @param json_object [String]
135
+ # @return [Gusto::EmployeeBenefit]
136
+ def self.from_json(json_object:)
137
+ struct = JSON.parse(json_object, object_class: OpenStruct)
138
+ parsed_json = JSON.parse(json_object)
139
+ employee_uuid = parsed_json["employee_uuid"]
140
+ company_benefit_uuid = parsed_json["company_benefit_uuid"]
141
+ uuid = parsed_json["uuid"]
142
+ version = parsed_json["version"]
143
+ active = parsed_json["active"]
144
+ employee_deduction = parsed_json["employee_deduction"]
145
+ deduct_as_percentage = parsed_json["deduct_as_percentage"]
146
+ employee_deduction_annual_maximum = parsed_json["employee_deduction_annual_maximum"]
147
+ unless parsed_json["contribution"].nil?
148
+ contribution = parsed_json["contribution"].to_json
149
+ contribution = Gusto::EmployeeBenefitBaseObjectContribution.from_json(json_object: contribution)
150
+ else
151
+ contribution = nil
152
+ end
153
+ elective = parsed_json["elective"]
154
+ company_contribution_annual_maximum = parsed_json["company_contribution_annual_maximum"]
155
+ limit_option = parsed_json["limit_option"]
156
+ catch_up = parsed_json["catch_up"]
157
+ retirement_loan_identifier = parsed_json["retirement_loan_identifier"]
158
+ coverage_amount = parsed_json["coverage_amount"]
159
+ deduction_reduces_taxable_income = parsed_json["deduction_reduces_taxable_income"]
160
+ coverage_salary_multiplier = parsed_json["coverage_salary_multiplier"]
161
+ company_contribution = parsed_json["company_contribution"]
162
+ contribute_as_percentage = parsed_json["contribute_as_percentage"]
163
+ new(
164
+ employee_uuid: employee_uuid,
165
+ company_benefit_uuid: company_benefit_uuid,
166
+ uuid: uuid,
167
+ version: version,
168
+ active: active,
169
+ employee_deduction: employee_deduction,
170
+ deduct_as_percentage: deduct_as_percentage,
171
+ employee_deduction_annual_maximum: employee_deduction_annual_maximum,
172
+ contribution: contribution,
173
+ elective: elective,
174
+ company_contribution_annual_maximum: company_contribution_annual_maximum,
175
+ limit_option: limit_option,
176
+ catch_up: catch_up,
177
+ retirement_loan_identifier: retirement_loan_identifier,
178
+ coverage_amount: coverage_amount,
179
+ deduction_reduces_taxable_income: deduction_reduces_taxable_income,
180
+ coverage_salary_multiplier: coverage_salary_multiplier,
181
+ company_contribution: company_contribution,
182
+ contribute_as_percentage: contribute_as_percentage,
183
+ additional_properties: struct
184
+ )
185
+ end
186
+ # Serialize an instance of EmployeeBenefit to a JSON object
187
+ #
188
+ # @return [String]
189
+ def to_json
190
+ @_field_set&.to_json
191
+ end
192
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
193
+ # hash and check each fields type against the current object's property
194
+ # definitions.
195
+ #
196
+ # @param obj [Object]
197
+ # @return [Void]
198
+ def self.validate_raw(obj:)
199
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
200
+ obj.company_benefit_uuid&.is_a?(String) != false || raise("Passed value for field obj.company_benefit_uuid is not the expected type, validation failed.")
201
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
202
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
203
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
204
+ obj.employee_deduction&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction is not the expected type, validation failed.")
205
+ obj.deduct_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.deduct_as_percentage is not the expected type, validation failed.")
206
+ obj.employee_deduction_annual_maximum&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction_annual_maximum is not the expected type, validation failed.")
207
+ obj.contribution.nil? || Gusto::EmployeeBenefitBaseObjectContribution.validate_raw(obj: obj.contribution)
208
+ obj.elective&.is_a?(Boolean) != false || raise("Passed value for field obj.elective is not the expected type, validation failed.")
209
+ obj.company_contribution_annual_maximum&.is_a?(String) != false || raise("Passed value for field obj.company_contribution_annual_maximum is not the expected type, validation failed.")
210
+ obj.limit_option&.is_a?(String) != false || raise("Passed value for field obj.limit_option is not the expected type, validation failed.")
211
+ obj.catch_up&.is_a?(Boolean) != false || raise("Passed value for field obj.catch_up is not the expected type, validation failed.")
212
+ obj.retirement_loan_identifier&.is_a?(String) != false || raise("Passed value for field obj.retirement_loan_identifier is not the expected type, validation failed.")
213
+ obj.coverage_amount&.is_a?(String) != false || raise("Passed value for field obj.coverage_amount is not the expected type, validation failed.")
214
+ obj.deduction_reduces_taxable_income&.is_a?(Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome) != false || raise("Passed value for field obj.deduction_reduces_taxable_income is not the expected type, validation failed.")
215
+ obj.coverage_salary_multiplier&.is_a?(String) != false || raise("Passed value for field obj.coverage_salary_multiplier is not the expected type, validation failed.")
216
+ obj.company_contribution&.is_a?(String) != false || raise("Passed value for field obj.company_contribution is not the expected type, validation failed.")
217
+ obj.contribute_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.contribute_as_percentage is not the expected type, validation failed.")
218
+ end
219
+ end
220
+ end
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_benefit_base_object_contribution"
3
+ require_relative "employee_benefit_base_object_deduction_reduces_taxable_income"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Gusto
8
+
9
+ class EmployeeBenefitBaseObject
10
+ # @return [String] The current version of the object. See the [versioning
11
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
12
+ # on how to use this field.
13
+ attr_reader :version
14
+ # @return [Boolean] Whether the employee benefit is active.
15
+ attr_reader :active
16
+ # @return [String] The amount to be deducted, per pay period, from the employee's pay.
17
+ attr_reader :employee_deduction
18
+ # @return [Boolean] Whether the employee deduction amount should be treated as a percentage to be
19
+ # deducted from each payroll.
20
+ attr_reader :deduct_as_percentage
21
+ # @return [String] The maximum employee deduction amount per year. A null value signifies no limit.
22
+ attr_reader :employee_deduction_annual_maximum
23
+ # @return [Gusto::EmployeeBenefitBaseObjectContribution] An object representing the type and value of the company contribution.
24
+ attr_reader :contribution
25
+ # @return [Boolean] Whether the company contribution is elective (aka matching). For "tiered"
26
+ # contribution types, this is always true.
27
+ attr_reader :elective
28
+ # @return [String] The maximum company contribution amount per year. A null value signifies no
29
+ # limit.
30
+ attr_reader :company_contribution_annual_maximum
31
+ # @return [String] Some benefits require additional information to determine their limit. For
32
+ # example, for an HSA benefit, the limit option should be either "Family" or
33
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
34
+ # either "Joint Filing or Single" or "Married and Filing Separately".
35
+ attr_reader :limit_option
36
+ # @return [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
37
+ # 401k benefits use this value for employees over 50.
38
+ attr_reader :catch_up
39
+ # @return [String] Identifier for a 401(k) loan assigned by the 401(k) provider
40
+ attr_reader :retirement_loan_identifier
41
+ # @return [String] The amount that the employee is insured for. Note: company contribution cannot
42
+ # be present if coverage amount is set.
43
+ attr_reader :coverage_amount
44
+ # @return [Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
45
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
46
+ # and coverage salary multiplier are ignored.
47
+ attr_reader :deduction_reduces_taxable_income
48
+ # @return [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
49
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
50
+ attr_reader :coverage_salary_multiplier
51
+ # @return [String] The amount to be paid, per pay period, by the company. This field will not
52
+ # appear for tiered contribution types.
53
+ attr_reader :company_contribution
54
+ # @return [Boolean] Whether the company_contribution value should be treated as a percentage to be
55
+ # added to each payroll. This field will not appear for tiered contribution types.
56
+ attr_reader :contribute_as_percentage
57
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
58
+ attr_reader :additional_properties
59
+ # @return [Object]
60
+ attr_reader :_field_set
61
+ protected :_field_set
62
+
63
+ OMIT = Object.new
64
+
65
+ # @param version [String] The current version of the object. See the [versioning
66
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
67
+ # on how to use this field.
68
+ # @param active [Boolean] Whether the employee benefit is active.
69
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
70
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
71
+ # deducted from each payroll.
72
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
73
+ # @param contribution [Gusto::EmployeeBenefitBaseObjectContribution] An object representing the type and value of the company contribution.
74
+ # @param elective [Boolean] Whether the company contribution is elective (aka matching). For "tiered"
75
+ # contribution types, this is always true.
76
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
77
+ # limit.
78
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
79
+ # example, for an HSA benefit, the limit option should be either "Family" or
80
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
81
+ # either "Joint Filing or Single" or "Married and Filing Separately".
82
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
83
+ # 401k benefits use this value for employees over 50.
84
+ # @param retirement_loan_identifier [String] Identifier for a 401(k) loan assigned by the 401(k) provider
85
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
86
+ # be present if coverage amount is set.
87
+ # @param deduction_reduces_taxable_income [Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
88
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
89
+ # and coverage salary multiplier are ignored.
90
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
91
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
92
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company. This field will not
93
+ # appear for tiered contribution types.
94
+ # @param contribute_as_percentage [Boolean] Whether the company_contribution value should be treated as a percentage to be
95
+ # added to each payroll. This field will not appear for tiered contribution types.
96
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
97
+ # @return [Gusto::EmployeeBenefitBaseObject]
98
+ def initialize(version: OMIT, active: OMIT, employee_deduction: OMIT, deduct_as_percentage: OMIT, employee_deduction_annual_maximum: OMIT, contribution: OMIT, elective: OMIT, company_contribution_annual_maximum: OMIT, limit_option: OMIT, catch_up: OMIT, retirement_loan_identifier: OMIT, coverage_amount: OMIT, deduction_reduces_taxable_income: OMIT, coverage_salary_multiplier: OMIT, company_contribution: OMIT, contribute_as_percentage: OMIT, additional_properties: nil)
99
+ @version = version if version != OMIT
100
+ @active = active if active != OMIT
101
+ @employee_deduction = employee_deduction if employee_deduction != OMIT
102
+ @deduct_as_percentage = deduct_as_percentage if deduct_as_percentage != OMIT
103
+ @employee_deduction_annual_maximum = employee_deduction_annual_maximum if employee_deduction_annual_maximum != OMIT
104
+ @contribution = contribution if contribution != OMIT
105
+ @elective = elective if elective != OMIT
106
+ @company_contribution_annual_maximum = company_contribution_annual_maximum if company_contribution_annual_maximum != OMIT
107
+ @limit_option = limit_option if limit_option != OMIT
108
+ @catch_up = catch_up if catch_up != OMIT
109
+ @retirement_loan_identifier = retirement_loan_identifier if retirement_loan_identifier != OMIT
110
+ @coverage_amount = coverage_amount if coverage_amount != OMIT
111
+ @deduction_reduces_taxable_income = deduction_reduces_taxable_income if deduction_reduces_taxable_income != OMIT
112
+ @coverage_salary_multiplier = coverage_salary_multiplier if coverage_salary_multiplier != OMIT
113
+ @company_contribution = company_contribution if company_contribution != OMIT
114
+ @contribute_as_percentage = contribute_as_percentage if contribute_as_percentage != OMIT
115
+ @additional_properties = additional_properties
116
+ @_field_set = { "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, "retirement_loan_identifier": retirement_loan_identifier, "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 }.reject do | _k, v |
117
+ v == OMIT
118
+ end
119
+ end
120
+ # Deserialize a JSON object to an instance of EmployeeBenefitBaseObject
121
+ #
122
+ # @param json_object [String]
123
+ # @return [Gusto::EmployeeBenefitBaseObject]
124
+ def self.from_json(json_object:)
125
+ struct = JSON.parse(json_object, object_class: OpenStruct)
126
+ parsed_json = JSON.parse(json_object)
127
+ version = parsed_json["version"]
128
+ active = parsed_json["active"]
129
+ employee_deduction = parsed_json["employee_deduction"]
130
+ deduct_as_percentage = parsed_json["deduct_as_percentage"]
131
+ employee_deduction_annual_maximum = parsed_json["employee_deduction_annual_maximum"]
132
+ unless parsed_json["contribution"].nil?
133
+ contribution = parsed_json["contribution"].to_json
134
+ contribution = Gusto::EmployeeBenefitBaseObjectContribution.from_json(json_object: contribution)
135
+ else
136
+ contribution = nil
137
+ end
138
+ elective = parsed_json["elective"]
139
+ company_contribution_annual_maximum = parsed_json["company_contribution_annual_maximum"]
140
+ limit_option = parsed_json["limit_option"]
141
+ catch_up = parsed_json["catch_up"]
142
+ retirement_loan_identifier = parsed_json["retirement_loan_identifier"]
143
+ coverage_amount = parsed_json["coverage_amount"]
144
+ deduction_reduces_taxable_income = parsed_json["deduction_reduces_taxable_income"]
145
+ coverage_salary_multiplier = parsed_json["coverage_salary_multiplier"]
146
+ company_contribution = parsed_json["company_contribution"]
147
+ contribute_as_percentage = parsed_json["contribute_as_percentage"]
148
+ new(
149
+ version: version,
150
+ active: active,
151
+ employee_deduction: employee_deduction,
152
+ deduct_as_percentage: deduct_as_percentage,
153
+ employee_deduction_annual_maximum: employee_deduction_annual_maximum,
154
+ contribution: contribution,
155
+ elective: elective,
156
+ company_contribution_annual_maximum: company_contribution_annual_maximum,
157
+ limit_option: limit_option,
158
+ catch_up: catch_up,
159
+ retirement_loan_identifier: retirement_loan_identifier,
160
+ coverage_amount: coverage_amount,
161
+ deduction_reduces_taxable_income: deduction_reduces_taxable_income,
162
+ coverage_salary_multiplier: coverage_salary_multiplier,
163
+ company_contribution: company_contribution,
164
+ contribute_as_percentage: contribute_as_percentage,
165
+ additional_properties: struct
166
+ )
167
+ end
168
+ # Serialize an instance of EmployeeBenefitBaseObject to a JSON object
169
+ #
170
+ # @return [String]
171
+ def to_json
172
+ @_field_set&.to_json
173
+ end
174
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
175
+ # hash and check each fields type against the current object's property
176
+ # definitions.
177
+ #
178
+ # @param obj [Object]
179
+ # @return [Void]
180
+ def self.validate_raw(obj:)
181
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
182
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
183
+ obj.employee_deduction&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction is not the expected type, validation failed.")
184
+ obj.deduct_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.deduct_as_percentage is not the expected type, validation failed.")
185
+ obj.employee_deduction_annual_maximum&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction_annual_maximum is not the expected type, validation failed.")
186
+ obj.contribution.nil? || Gusto::EmployeeBenefitBaseObjectContribution.validate_raw(obj: obj.contribution)
187
+ obj.elective&.is_a?(Boolean) != false || raise("Passed value for field obj.elective is not the expected type, validation failed.")
188
+ obj.company_contribution_annual_maximum&.is_a?(String) != false || raise("Passed value for field obj.company_contribution_annual_maximum is not the expected type, validation failed.")
189
+ obj.limit_option&.is_a?(String) != false || raise("Passed value for field obj.limit_option is not the expected type, validation failed.")
190
+ obj.catch_up&.is_a?(Boolean) != false || raise("Passed value for field obj.catch_up is not the expected type, validation failed.")
191
+ obj.retirement_loan_identifier&.is_a?(String) != false || raise("Passed value for field obj.retirement_loan_identifier is not the expected type, validation failed.")
192
+ obj.coverage_amount&.is_a?(String) != false || raise("Passed value for field obj.coverage_amount is not the expected type, validation failed.")
193
+ obj.deduction_reduces_taxable_income&.is_a?(Gusto::EmployeeBenefitBaseObjectDeductionReducesTaxableIncome) != false || raise("Passed value for field obj.deduction_reduces_taxable_income is not the expected type, validation failed.")
194
+ obj.coverage_salary_multiplier&.is_a?(String) != false || raise("Passed value for field obj.coverage_salary_multiplier is not the expected type, validation failed.")
195
+ obj.company_contribution&.is_a?(String) != false || raise("Passed value for field obj.company_contribution is not the expected type, validation failed.")
196
+ obj.contribute_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.contribute_as_percentage is not the expected type, validation failed.")
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_benefit_base_object_contribution_value"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ # An object representing the type and value of the company contribution.
8
+ class EmployeeBenefitBaseObjectContribution
9
+ # @return [String] The company contribution scheme.
10
+ # "amount": The company contributes a fixed amount per payroll. If elective is
11
+ # true, the contribution is matching, dollar-for-dollar.
12
+ # "percentage": The company contributes a percentage of the payroll amount per
13
+ # payroll period. If elective is true, the contribution is matching,
14
+ # dollar-for-dollar.
15
+ # "tiered": The company contribution varies according to the size of the employee
16
+ # deduction.
17
+ attr_reader :type
18
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValue] For the `amount` and `percentage` contribution types, the value of the
19
+ # corresponding amount or percentage.
20
+ # For the `tiered` contribution type, an array of tiers.
21
+ attr_reader :value
22
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
23
+ attr_reader :additional_properties
24
+ # @return [Object]
25
+ attr_reader :_field_set
26
+ protected :_field_set
27
+
28
+ OMIT = Object.new
29
+
30
+ # @param type [String] The company contribution scheme.
31
+ # "amount": The company contributes a fixed amount per payroll. If elective is
32
+ # true, the contribution is matching, dollar-for-dollar.
33
+ # "percentage": The company contributes a percentage of the payroll amount per
34
+ # payroll period. If elective is true, the contribution is matching,
35
+ # dollar-for-dollar.
36
+ # "tiered": The company contribution varies according to the size of the employee
37
+ # deduction.
38
+ # @param value [Gusto::EmployeeBenefitBaseObjectContributionValue] For the `amount` and `percentage` contribution types, the value of the
39
+ # corresponding amount or percentage.
40
+ # For the `tiered` contribution type, an array of tiers.
41
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
42
+ # @return [Gusto::EmployeeBenefitBaseObjectContribution]
43
+ def initialize(type: OMIT, value: OMIT, additional_properties: nil)
44
+ @type = type if type != OMIT
45
+ @value = value if value != OMIT
46
+ @additional_properties = additional_properties
47
+ @_field_set = { "type": type, "value": value }.reject do | _k, v |
48
+ v == OMIT
49
+ end
50
+ end
51
+ # Deserialize a JSON object to an instance of
52
+ # EmployeeBenefitBaseObjectContribution
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Gusto::EmployeeBenefitBaseObjectContribution]
56
+ def self.from_json(json_object:)
57
+ struct = JSON.parse(json_object, object_class: OpenStruct)
58
+ parsed_json = JSON.parse(json_object)
59
+ type = parsed_json["type"]
60
+ unless parsed_json["value"].nil?
61
+ value = parsed_json["value"].to_json
62
+ value = Gusto::EmployeeBenefitBaseObjectContributionValue.from_json(json_object: value)
63
+ else
64
+ value = nil
65
+ end
66
+ new(
67
+ type: type,
68
+ value: value,
69
+ additional_properties: struct
70
+ )
71
+ end
72
+ # Serialize an instance of EmployeeBenefitBaseObjectContribution to a JSON object
73
+ #
74
+ # @return [String]
75
+ def to_json
76
+ @_field_set&.to_json
77
+ end
78
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
79
+ # hash and check each fields type against the current object's property
80
+ # definitions.
81
+ #
82
+ # @param obj [Object]
83
+ # @return [Void]
84
+ def self.validate_raw(obj:)
85
+ obj.type&.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
86
+ obj.value.nil? || Gusto::EmployeeBenefitBaseObjectContributionValue.validate_raw(obj: obj.value)
87
+ end
88
+ end
89
+ end