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,61 @@
1
+ # frozen_string_literal: true
2
+ require "json"
3
+ require_relative "employee_benefit_base_object_contribution_value_tiers"
4
+
5
+ module Gusto
6
+ # For the `amount` and `percentage` contribution types, the value of the
7
+ # corresponding amount or percentage.
8
+ # For the `tiered` contribution type, an array of tiers.
9
+ class EmployeeBenefitBaseObjectContributionValue
10
+
11
+
12
+ # Deserialize a JSON object to an instance of
13
+ # EmployeeBenefitBaseObjectContributionValue
14
+ #
15
+ # @param json_object [String]
16
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValue]
17
+ def self.from_json(json_object:)
18
+ struct = JSON.parse(json_object, object_class: OpenStruct)
19
+ begin
20
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
21
+ unless struct.nil?
22
+ return struct
23
+ else
24
+ return nil
25
+ end
26
+ rescue StandardError
27
+ # noop
28
+ end
29
+ begin
30
+ Gusto::EmployeeBenefitBaseObjectContributionValueTiers.validate_raw(obj: struct)
31
+ unless struct.nil?
32
+ return Gusto::EmployeeBenefitBaseObjectContributionValueTiers.from_json(json_object: struct)
33
+ else
34
+ return nil
35
+ end
36
+ rescue StandardError
37
+ # noop
38
+ end
39
+ return struct
40
+ end
41
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
42
+ # hash and check each fields type against the current object's property
43
+ # definitions.
44
+ #
45
+ # @param obj [Object]
46
+ # @return [Void]
47
+ def self.validate_raw(obj:)
48
+ begin
49
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
50
+ rescue StandardError
51
+ # noop
52
+ end
53
+ begin
54
+ return Gusto::EmployeeBenefitBaseObjectContributionValueTiers.validate_raw(obj: obj)
55
+ rescue StandardError
56
+ # noop
57
+ end
58
+ raise("Passed value matched no type within the union, validation failed.")
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_benefit_base_object_contribution_value_tiers_tiers_item"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ class EmployeeBenefitBaseObjectContributionValueTiers
8
+ # @return [Array<Gusto::EmployeeBenefitBaseObjectContributionValueTiersTiersItem>]
9
+ attr_reader :tiers
10
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
11
+ attr_reader :additional_properties
12
+ # @return [Object]
13
+ attr_reader :_field_set
14
+ protected :_field_set
15
+
16
+ OMIT = Object.new
17
+
18
+ # @param tiers [Array<Gusto::EmployeeBenefitBaseObjectContributionValueTiersTiersItem>]
19
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValueTiers]
21
+ def initialize(tiers: OMIT, additional_properties: nil)
22
+ @tiers = tiers if tiers != OMIT
23
+ @additional_properties = additional_properties
24
+ @_field_set = { "tiers": tiers }.reject do | _k, v |
25
+ v == OMIT
26
+ end
27
+ end
28
+ # Deserialize a JSON object to an instance of
29
+ # EmployeeBenefitBaseObjectContributionValueTiers
30
+ #
31
+ # @param json_object [String]
32
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValueTiers]
33
+ def self.from_json(json_object:)
34
+ struct = JSON.parse(json_object, object_class: OpenStruct)
35
+ parsed_json = JSON.parse(json_object)
36
+ tiers = parsed_json["tiers"]&.map do | item |
37
+ item = item.to_json
38
+ Gusto::EmployeeBenefitBaseObjectContributionValueTiersTiersItem.from_json(json_object: item)
39
+ end
40
+ new(tiers: tiers, additional_properties: struct)
41
+ end
42
+ # Serialize an instance of EmployeeBenefitBaseObjectContributionValueTiers to a
43
+ # JSON object
44
+ #
45
+ # @return [String]
46
+ def to_json
47
+ @_field_set&.to_json
48
+ end
49
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
50
+ # hash and check each fields type against the current object's property
51
+ # definitions.
52
+ #
53
+ # @param obj [Object]
54
+ # @return [Void]
55
+ def self.validate_raw(obj:)
56
+ obj.tiers&.is_a?(Array) != false || raise("Passed value for field obj.tiers is not the expected type, validation failed.")
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ # A single tier of a tiered matching scheme.
7
+ class EmployeeBenefitBaseObjectContributionValueTiersTiersItem
8
+ # @return [String] The percentage of employee deduction within this tier the company contribution
9
+ # will match.
10
+ attr_reader :rate
11
+ # @return [String] The percentage threshold at which this tier ends (inclusive).
12
+ # For example, a value of "5" means the company contribution will match employee
13
+ # deductions from the previous tier's threshold up to and including 5% of payroll.
14
+ # If this is the first tier, a value of "5" means the company contribution will
15
+ # match employee deductions from 0% up to and including 5% of payroll.
16
+ attr_reader :threshold
17
+ # @return [String] The step up difference between this tier's threshold and the previous tier's
18
+ # threshold. In the first tier, this is equivalent to threshold.
19
+ attr_reader :threshold_delta
20
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
21
+ attr_reader :additional_properties
22
+ # @return [Object]
23
+ attr_reader :_field_set
24
+ protected :_field_set
25
+
26
+ OMIT = Object.new
27
+
28
+ # @param rate [String] The percentage of employee deduction within this tier the company contribution
29
+ # will match.
30
+ # @param threshold [String] The percentage threshold at which this tier ends (inclusive).
31
+ # For example, a value of "5" means the company contribution will match employee
32
+ # deductions from the previous tier's threshold up to and including 5% of payroll.
33
+ # If this is the first tier, a value of "5" means the company contribution will
34
+ # match employee deductions from 0% up to and including 5% of payroll.
35
+ # @param threshold_delta [String] The step up difference between this tier's threshold and the previous tier's
36
+ # threshold. In the first tier, this is equivalent to threshold.
37
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
38
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValueTiersTiersItem]
39
+ def initialize(rate: OMIT, threshold: OMIT, threshold_delta: OMIT, additional_properties: nil)
40
+ @rate = rate if rate != OMIT
41
+ @threshold = threshold if threshold != OMIT
42
+ @threshold_delta = threshold_delta if threshold_delta != OMIT
43
+ @additional_properties = additional_properties
44
+ @_field_set = { "rate": rate, "threshold": threshold, "threshold_delta": threshold_delta }.reject do | _k, v |
45
+ v == OMIT
46
+ end
47
+ end
48
+ # Deserialize a JSON object to an instance of
49
+ # EmployeeBenefitBaseObjectContributionValueTiersTiersItem
50
+ #
51
+ # @param json_object [String]
52
+ # @return [Gusto::EmployeeBenefitBaseObjectContributionValueTiersTiersItem]
53
+ def self.from_json(json_object:)
54
+ struct = JSON.parse(json_object, object_class: OpenStruct)
55
+ parsed_json = JSON.parse(json_object)
56
+ rate = parsed_json["rate"]
57
+ threshold = parsed_json["threshold"]
58
+ threshold_delta = parsed_json["threshold_delta"]
59
+ new(
60
+ rate: rate,
61
+ threshold: threshold,
62
+ threshold_delta: threshold_delta,
63
+ additional_properties: struct
64
+ )
65
+ end
66
+ # Serialize an instance of
67
+ # EmployeeBenefitBaseObjectContributionValueTiersTiersItem to a JSON object
68
+ #
69
+ # @return [String]
70
+ def to_json
71
+ @_field_set&.to_json
72
+ end
73
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
74
+ # hash and check each fields type against the current object's property
75
+ # definitions.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Void]
79
+ def self.validate_raw(obj:)
80
+ obj.rate&.is_a?(String) != false || raise("Passed value for field obj.rate is not the expected type, validation failed.")
81
+ obj.threshold&.is_a?(String) != false || raise("Passed value for field obj.threshold is not the expected type, validation failed.")
82
+ obj.threshold_delta&.is_a?(String) != false || raise("Passed value for field obj.threshold_delta is not the expected type, validation failed.")
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ # Whether the employee deduction reduces taxable income or not. Only valid for
5
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
6
+ # and coverage salary multiplier are ignored.
7
+ class EmployeeBenefitBaseObjectDeductionReducesTaxableIncome
8
+
9
+ UNSET = "unset"
10
+ REDUCES_TAXABLE_INCOME = "reduces_taxable_income"
11
+ DOES_NOT_REDUCE_TAXABLE_INCOME = "does_not_reduce_taxable_income"
12
+
13
+ end
14
+ 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 for a company benefit.
9
+ class EmployeeBenefitForCompanyBenefit
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::EmployeeBenefitForCompanyBenefit]
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 EmployeeBenefitForCompanyBenefit
133
+ #
134
+ # @param json_object [String]
135
+ # @return [Gusto::EmployeeBenefitForCompanyBenefit]
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 EmployeeBenefitForCompanyBenefit 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,137 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ class EmployeeWorkAddress
7
+ # @return [String] The unique identifier of this work address.
8
+ attr_reader :uuid
9
+ # @return [String] The date the employee began working at this location.
10
+ attr_reader :effective_date
11
+ # @return [Boolean] Signifies if this address is the active work address for the current date
12
+ attr_reader :active
13
+ # @return [String] UUID reference to the company location for this work address.
14
+ attr_reader :location_uuid
15
+ # @return [String] UUID reference to the employee for this work address.
16
+ attr_reader :employee_uuid
17
+ # @return [String] The current version of the object. See the [versioning
18
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
19
+ # on how to use this field.
20
+ attr_reader :version
21
+ # @return [String]
22
+ attr_reader :street1
23
+ # @return [String]
24
+ attr_reader :street2
25
+ # @return [String]
26
+ attr_reader :city
27
+ # @return [String]
28
+ attr_reader :state
29
+ # @return [String]
30
+ attr_reader :zip
31
+ # @return [String]
32
+ attr_reader :country
33
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
34
+ attr_reader :additional_properties
35
+ # @return [Object]
36
+ attr_reader :_field_set
37
+ protected :_field_set
38
+
39
+ OMIT = Object.new
40
+
41
+ # @param uuid [String] The unique identifier of this work address.
42
+ # @param effective_date [String] The date the employee began working at this location.
43
+ # @param active [Boolean] Signifies if this address is the active work address for the current date
44
+ # @param location_uuid [String] UUID reference to the company location for this work address.
45
+ # @param employee_uuid [String] UUID reference to the employee for this work address.
46
+ # @param version [String] The current version of the object. See the [versioning
47
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
48
+ # on how to use this field.
49
+ # @param street1 [String]
50
+ # @param street2 [String]
51
+ # @param city [String]
52
+ # @param state [String]
53
+ # @param zip [String]
54
+ # @param country [String]
55
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
56
+ # @return [Gusto::EmployeeWorkAddress]
57
+ def initialize(uuid:, effective_date: OMIT, active: OMIT, location_uuid: OMIT, employee_uuid: OMIT, version: OMIT, street1: OMIT, street2: OMIT, city: OMIT, state: OMIT, zip: OMIT, country: OMIT, additional_properties: nil)
58
+ @uuid = uuid
59
+ @effective_date = effective_date if effective_date != OMIT
60
+ @active = active if active != OMIT
61
+ @location_uuid = location_uuid if location_uuid != OMIT
62
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
63
+ @version = version if version != 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
+ @additional_properties = additional_properties
71
+ @_field_set = { "uuid": uuid, "effective_date": effective_date, "active": active, "location_uuid": location_uuid, "employee_uuid": employee_uuid, "version": version, "street_1": street1, "street_2": street2, "city": city, "state": state, "zip": zip, "country": country }.reject do | _k, v |
72
+ v == OMIT
73
+ end
74
+ end
75
+ # Deserialize a JSON object to an instance of EmployeeWorkAddress
76
+ #
77
+ # @param json_object [String]
78
+ # @return [Gusto::EmployeeWorkAddress]
79
+ def self.from_json(json_object:)
80
+ struct = JSON.parse(json_object, object_class: OpenStruct)
81
+ parsed_json = JSON.parse(json_object)
82
+ uuid = parsed_json["uuid"]
83
+ effective_date = parsed_json["effective_date"]
84
+ active = parsed_json["active"]
85
+ location_uuid = parsed_json["location_uuid"]
86
+ employee_uuid = parsed_json["employee_uuid"]
87
+ version = parsed_json["version"]
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
+ new(
95
+ uuid: uuid,
96
+ effective_date: effective_date,
97
+ active: active,
98
+ location_uuid: location_uuid,
99
+ employee_uuid: employee_uuid,
100
+ version: version,
101
+ street1: street1,
102
+ street2: street2,
103
+ city: city,
104
+ state: state,
105
+ zip: zip,
106
+ country: country,
107
+ additional_properties: struct
108
+ )
109
+ end
110
+ # Serialize an instance of EmployeeWorkAddress to a JSON object
111
+ #
112
+ # @return [String]
113
+ def to_json
114
+ @_field_set&.to_json
115
+ end
116
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
117
+ # hash and check each fields type against the current object's property
118
+ # definitions.
119
+ #
120
+ # @param obj [Object]
121
+ # @return [Void]
122
+ def self.validate_raw(obj:)
123
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
124
+ obj.effective_date&.is_a?(String) != false || raise("Passed value for field obj.effective_date is not the expected type, validation failed.")
125
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
126
+ obj.location_uuid&.is_a?(String) != false || raise("Passed value for field obj.location_uuid is not the expected type, validation failed.")
127
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
128
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version 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
+ end
136
+ end
137
+ end