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,70 @@
1
+ # frozen_string_literal: true
2
+ require_relative "child_support_data_agencies_item_required_attributes_item_key"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ class ChildSupportDataAgenciesItemRequiredAttributesItem
8
+ # @return [Gusto::ChildSupportDataAgenciesItemRequiredAttributesItemKey] A required attribute when creating a garnishment for this state agency. The
9
+ # current values are listed as an enum; though unlikely, values could be added if
10
+ # state agency requirements change in the future.
11
+ attr_reader :key
12
+ # @return [String] A human readable name of the attribute, e.g. CSE Case Number
13
+ attr_reader :label
14
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
15
+ attr_reader :additional_properties
16
+ # @return [Object]
17
+ attr_reader :_field_set
18
+ protected :_field_set
19
+
20
+ OMIT = Object.new
21
+
22
+ # @param key [Gusto::ChildSupportDataAgenciesItemRequiredAttributesItemKey] A required attribute when creating a garnishment for this state agency. The
23
+ # current values are listed as an enum; though unlikely, values could be added if
24
+ # state agency requirements change in the future.
25
+ # @param label [String] A human readable name of the attribute, e.g. CSE Case Number
26
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
+ # @return [Gusto::ChildSupportDataAgenciesItemRequiredAttributesItem]
28
+ def initialize(key: OMIT, label: OMIT, additional_properties: nil)
29
+ @key = key if key != OMIT
30
+ @label = label if label != OMIT
31
+ @additional_properties = additional_properties
32
+ @_field_set = { "key": key, "label": label }.reject do | _k, v |
33
+ v == OMIT
34
+ end
35
+ end
36
+ # Deserialize a JSON object to an instance of
37
+ # ChildSupportDataAgenciesItemRequiredAttributesItem
38
+ #
39
+ # @param json_object [String]
40
+ # @return [Gusto::ChildSupportDataAgenciesItemRequiredAttributesItem]
41
+ def self.from_json(json_object:)
42
+ struct = JSON.parse(json_object, object_class: OpenStruct)
43
+ parsed_json = JSON.parse(json_object)
44
+ key = parsed_json["key"]
45
+ label = parsed_json["label"]
46
+ new(
47
+ key: key,
48
+ label: label,
49
+ additional_properties: struct
50
+ )
51
+ end
52
+ # Serialize an instance of ChildSupportDataAgenciesItemRequiredAttributesItem to a
53
+ # JSON object
54
+ #
55
+ # @return [String]
56
+ def to_json
57
+ @_field_set&.to_json
58
+ end
59
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
60
+ # hash and check each fields type against the current object's property
61
+ # definitions.
62
+ #
63
+ # @param obj [Object]
64
+ # @return [Void]
65
+ def self.validate_raw(obj:)
66
+ obj.key&.is_a?(Gusto::ChildSupportDataAgenciesItemRequiredAttributesItemKey) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
67
+ obj.label&.is_a?(String) != false || raise("Passed value for field obj.label is not the expected type, validation failed.")
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ # A required attribute when creating a garnishment for this state agency. The
5
+ # current values are listed as an enum; though unlikely, values could be added if
6
+ # state agency requirements change in the future.
7
+ class ChildSupportDataAgenciesItemRequiredAttributesItemKey
8
+
9
+ CASE_NUMBER = "case_number"
10
+ ORDER_NUMBER = "order_number"
11
+ REMITTANCE_NUMBER = "remittance_number"
12
+
13
+ end
14
+ end
@@ -0,0 +1,135 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ # The representation of a company benefit.
7
+ class CompanyBenefit
8
+ # @return [String] The current version of the object. See the [versioning
9
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
10
+ # on how to use this field.
11
+ attr_reader :version
12
+ # @return [String] The UUID of the company benefit.
13
+ attr_reader :uuid
14
+ # @return [Float] The type of the benefit to which the company benefit belongs.
15
+ attr_reader :benefit_type
16
+ # @return [Boolean] Whether this benefit is active for employee participation. Company benefits may
17
+ # only be deactivated if no employees are actively participating.
18
+ attr_reader :active
19
+ # @return [String] The description of the company benefit.For example, a company may offer multiple
20
+ # benefits with an ID of 1 (for Medical Insurance). The description would show
21
+ # something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”.
22
+ attr_reader :description
23
+ # @return [Boolean] Whether this company benefit can be deleted. Deletable will be set to true if
24
+ # the benefit has not been used in payroll, has no employee benefits associated,
25
+ # and the benefit is not owned by Gusto or a Partner
26
+ attr_reader :deletable
27
+ # @return [Boolean] Whether employee deductions and company contributions can be set as percentages
28
+ # of payroll for an individual employee. This is determined by the type of benefit
29
+ # and is not configurable by the company.
30
+ attr_reader :supports_percentage_amounts
31
+ # @return [Boolean] Whether the employer is subject to pay employer taxes when an employee is on
32
+ # leave. Only applicable to third party sick pay benefits.
33
+ attr_reader :responsible_for_employer_taxes
34
+ # @return [Boolean] Whether the employer is subject to file W-2 forms for an employee on leave. Only
35
+ # applicable to third party sick pay benefits.
36
+ attr_reader :responsible_for_employee_w2
37
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
38
+ attr_reader :additional_properties
39
+ # @return [Object]
40
+ attr_reader :_field_set
41
+ protected :_field_set
42
+
43
+ OMIT = Object.new
44
+
45
+ # @param version [String] The current version of the object. See the [versioning
46
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
47
+ # on how to use this field.
48
+ # @param uuid [String] The UUID of the company benefit.
49
+ # @param benefit_type [Float] The type of the benefit to which the company benefit belongs.
50
+ # @param active [Boolean] Whether this benefit is active for employee participation. Company benefits may
51
+ # only be deactivated if no employees are actively participating.
52
+ # @param description [String] The description of the company benefit.For example, a company may offer multiple
53
+ # benefits with an ID of 1 (for Medical Insurance). The description would show
54
+ # something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”.
55
+ # @param deletable [Boolean] Whether this company benefit can be deleted. Deletable will be set to true if
56
+ # the benefit has not been used in payroll, has no employee benefits associated,
57
+ # and the benefit is not owned by Gusto or a Partner
58
+ # @param supports_percentage_amounts [Boolean] Whether employee deductions and company contributions can be set as percentages
59
+ # of payroll for an individual employee. This is determined by the type of benefit
60
+ # and is not configurable by the company.
61
+ # @param responsible_for_employer_taxes [Boolean] Whether the employer is subject to pay employer taxes when an employee is on
62
+ # leave. Only applicable to third party sick pay benefits.
63
+ # @param responsible_for_employee_w2 [Boolean] Whether the employer is subject to file W-2 forms for an employee on leave. Only
64
+ # applicable to third party sick pay benefits.
65
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
66
+ # @return [Gusto::CompanyBenefit]
67
+ def initialize(version: OMIT, uuid:, benefit_type: OMIT, active: OMIT, description: OMIT, deletable: OMIT, supports_percentage_amounts: OMIT, responsible_for_employer_taxes: OMIT, responsible_for_employee_w2: OMIT, additional_properties: nil)
68
+ @version = version if version != OMIT
69
+ @uuid = uuid
70
+ @benefit_type = benefit_type if benefit_type != OMIT
71
+ @active = active if active != OMIT
72
+ @description = description if description != OMIT
73
+ @deletable = deletable if deletable != OMIT
74
+ @supports_percentage_amounts = supports_percentage_amounts if supports_percentage_amounts != OMIT
75
+ @responsible_for_employer_taxes = responsible_for_employer_taxes if responsible_for_employer_taxes != OMIT
76
+ @responsible_for_employee_w2 = responsible_for_employee_w2 if responsible_for_employee_w2 != OMIT
77
+ @additional_properties = additional_properties
78
+ @_field_set = { "version": version, "uuid": uuid, "benefit_type": benefit_type, "active": active, "description": description, "deletable": deletable, "supports_percentage_amounts": supports_percentage_amounts, "responsible_for_employer_taxes": responsible_for_employer_taxes, "responsible_for_employee_w2": responsible_for_employee_w2 }.reject do | _k, v |
79
+ v == OMIT
80
+ end
81
+ end
82
+ # Deserialize a JSON object to an instance of CompanyBenefit
83
+ #
84
+ # @param json_object [String]
85
+ # @return [Gusto::CompanyBenefit]
86
+ def self.from_json(json_object:)
87
+ struct = JSON.parse(json_object, object_class: OpenStruct)
88
+ parsed_json = JSON.parse(json_object)
89
+ version = parsed_json["version"]
90
+ uuid = parsed_json["uuid"]
91
+ benefit_type = parsed_json["benefit_type"]
92
+ active = parsed_json["active"]
93
+ description = parsed_json["description"]
94
+ deletable = parsed_json["deletable"]
95
+ supports_percentage_amounts = parsed_json["supports_percentage_amounts"]
96
+ responsible_for_employer_taxes = parsed_json["responsible_for_employer_taxes"]
97
+ responsible_for_employee_w2 = parsed_json["responsible_for_employee_w2"]
98
+ new(
99
+ version: version,
100
+ uuid: uuid,
101
+ benefit_type: benefit_type,
102
+ active: active,
103
+ description: description,
104
+ deletable: deletable,
105
+ supports_percentage_amounts: supports_percentage_amounts,
106
+ responsible_for_employer_taxes: responsible_for_employer_taxes,
107
+ responsible_for_employee_w2: responsible_for_employee_w2,
108
+ additional_properties: struct
109
+ )
110
+ end
111
+ # Serialize an instance of CompanyBenefit to a JSON object
112
+ #
113
+ # @return [String]
114
+ def to_json
115
+ @_field_set&.to_json
116
+ end
117
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
118
+ # hash and check each fields type against the current object's property
119
+ # definitions.
120
+ #
121
+ # @param obj [Object]
122
+ # @return [Void]
123
+ def self.validate_raw(obj:)
124
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
125
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
126
+ obj.benefit_type&.is_a?(Float) != false || raise("Passed value for field obj.benefit_type is not the expected type, validation failed.")
127
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
128
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
129
+ obj.deletable&.is_a?(Boolean) != false || raise("Passed value for field obj.deletable is not the expected type, validation failed.")
130
+ obj.supports_percentage_amounts&.is_a?(Boolean) != false || raise("Passed value for field obj.supports_percentage_amounts is not the expected type, validation failed.")
131
+ obj.responsible_for_employer_taxes&.is_a?(Boolean) != false || raise("Passed value for field obj.responsible_for_employer_taxes is not the expected type, validation failed.")
132
+ obj.responsible_for_employee_w2&.is_a?(Boolean) != false || raise("Passed value for field obj.responsible_for_employee_w2 is not the expected type, validation failed.")
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,148 @@
1
+ # frozen_string_literal: true
2
+ require_relative "company_benefit_with_employee_benefits_employee_benefits_item"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ # The representation of a company benefit.
8
+ class CompanyBenefitWithEmployeeBenefits
9
+ # @return [String] The current version of the object. See the [versioning
10
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
11
+ # on how to use this field.
12
+ attr_reader :version
13
+ # @return [String] The UUID of the company benefit.
14
+ attr_reader :uuid
15
+ # @return [Float] The type of the benefit to which the company benefit belongs (same as
16
+ # benefit_id).
17
+ attr_reader :benefit_type
18
+ # @return [Boolean] Whether this benefit is active for employee participation. Company benefits may
19
+ # only be deactivated if no employees are actively participating.
20
+ attr_reader :active
21
+ # @return [String] The description of the company benefit.For example, a company may offer multiple
22
+ # benefits with an ID of 1 (for Medical Insurance). The description would show
23
+ # something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”.
24
+ attr_reader :description
25
+ # @return [Boolean] Whether this company benefit can be deleted. Deletable will be set to true if
26
+ # the benefit has not been used in payroll, has no employee benefits associated,
27
+ # and the benefit is not owned by Gusto or a Partner
28
+ attr_reader :deletable
29
+ # @return [Boolean] Whether employee deductions and company contributions can be set as percentages
30
+ # of payroll for an individual employee. This is determined by the type of benefit
31
+ # and is not configurable by the company.
32
+ attr_reader :supports_percentage_amounts
33
+ # @return [Boolean] Whether the employer is subject to pay employer taxes when an employee is on
34
+ # leave. Only applicable to third party sick pay benefits.
35
+ attr_reader :responsible_for_employer_taxes
36
+ # @return [Boolean] Whether the employer is subject to file W-2 forms for an employee on leave. Only
37
+ # applicable to third party sick pay benefits.
38
+ attr_reader :responsible_for_employee_w2
39
+ # @return [Array<Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem>]
40
+ attr_reader :employee_benefits
41
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
42
+ attr_reader :additional_properties
43
+ # @return [Object]
44
+ attr_reader :_field_set
45
+ protected :_field_set
46
+
47
+ OMIT = Object.new
48
+
49
+ # @param version [String] The current version of the object. See the [versioning
50
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
51
+ # on how to use this field.
52
+ # @param uuid [String] The UUID of the company benefit.
53
+ # @param benefit_type [Float] The type of the benefit to which the company benefit belongs (same as
54
+ # benefit_id).
55
+ # @param active [Boolean] Whether this benefit is active for employee participation. Company benefits may
56
+ # only be deactivated if no employees are actively participating.
57
+ # @param description [String] The description of the company benefit.For example, a company may offer multiple
58
+ # benefits with an ID of 1 (for Medical Insurance). The description would show
59
+ # something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”.
60
+ # @param deletable [Boolean] Whether this company benefit can be deleted. Deletable will be set to true if
61
+ # the benefit has not been used in payroll, has no employee benefits associated,
62
+ # and the benefit is not owned by Gusto or a Partner
63
+ # @param supports_percentage_amounts [Boolean] Whether employee deductions and company contributions can be set as percentages
64
+ # of payroll for an individual employee. This is determined by the type of benefit
65
+ # and is not configurable by the company.
66
+ # @param responsible_for_employer_taxes [Boolean] Whether the employer is subject to pay employer taxes when an employee is on
67
+ # leave. Only applicable to third party sick pay benefits.
68
+ # @param responsible_for_employee_w2 [Boolean] Whether the employer is subject to file W-2 forms for an employee on leave. Only
69
+ # applicable to third party sick pay benefits.
70
+ # @param employee_benefits [Array<Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem>]
71
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
72
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefits]
73
+ def initialize(version: OMIT, uuid:, benefit_type: OMIT, active: OMIT, description: OMIT, deletable: OMIT, supports_percentage_amounts: OMIT, responsible_for_employer_taxes: OMIT, responsible_for_employee_w2: OMIT, employee_benefits: OMIT, additional_properties: nil)
74
+ @version = version if version != OMIT
75
+ @uuid = uuid
76
+ @benefit_type = benefit_type if benefit_type != OMIT
77
+ @active = active if active != OMIT
78
+ @description = description if description != OMIT
79
+ @deletable = deletable if deletable != OMIT
80
+ @supports_percentage_amounts = supports_percentage_amounts if supports_percentage_amounts != OMIT
81
+ @responsible_for_employer_taxes = responsible_for_employer_taxes if responsible_for_employer_taxes != OMIT
82
+ @responsible_for_employee_w2 = responsible_for_employee_w2 if responsible_for_employee_w2 != OMIT
83
+ @employee_benefits = employee_benefits if employee_benefits != OMIT
84
+ @additional_properties = additional_properties
85
+ @_field_set = { "version": version, "uuid": uuid, "benefit_type": benefit_type, "active": active, "description": description, "deletable": deletable, "supports_percentage_amounts": supports_percentage_amounts, "responsible_for_employer_taxes": responsible_for_employer_taxes, "responsible_for_employee_w2": responsible_for_employee_w2, "employee_benefits": employee_benefits }.reject do | _k, v |
86
+ v == OMIT
87
+ end
88
+ end
89
+ # Deserialize a JSON object to an instance of CompanyBenefitWithEmployeeBenefits
90
+ #
91
+ # @param json_object [String]
92
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefits]
93
+ def self.from_json(json_object:)
94
+ struct = JSON.parse(json_object, object_class: OpenStruct)
95
+ parsed_json = JSON.parse(json_object)
96
+ version = parsed_json["version"]
97
+ uuid = parsed_json["uuid"]
98
+ benefit_type = parsed_json["benefit_type"]
99
+ active = parsed_json["active"]
100
+ description = parsed_json["description"]
101
+ deletable = parsed_json["deletable"]
102
+ supports_percentage_amounts = parsed_json["supports_percentage_amounts"]
103
+ responsible_for_employer_taxes = parsed_json["responsible_for_employer_taxes"]
104
+ responsible_for_employee_w2 = parsed_json["responsible_for_employee_w2"]
105
+ employee_benefits = parsed_json["employee_benefits"]&.map do | item |
106
+ item = item.to_json
107
+ Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem.from_json(json_object: item)
108
+ end
109
+ new(
110
+ version: version,
111
+ uuid: uuid,
112
+ benefit_type: benefit_type,
113
+ active: active,
114
+ description: description,
115
+ deletable: deletable,
116
+ supports_percentage_amounts: supports_percentage_amounts,
117
+ responsible_for_employer_taxes: responsible_for_employer_taxes,
118
+ responsible_for_employee_w2: responsible_for_employee_w2,
119
+ employee_benefits: employee_benefits,
120
+ additional_properties: struct
121
+ )
122
+ end
123
+ # Serialize an instance of CompanyBenefitWithEmployeeBenefits to a JSON object
124
+ #
125
+ # @return [String]
126
+ def to_json
127
+ @_field_set&.to_json
128
+ end
129
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
130
+ # hash and check each fields type against the current object's property
131
+ # definitions.
132
+ #
133
+ # @param obj [Object]
134
+ # @return [Void]
135
+ def self.validate_raw(obj:)
136
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
137
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
138
+ obj.benefit_type&.is_a?(Float) != false || raise("Passed value for field obj.benefit_type is not the expected type, validation failed.")
139
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
140
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
141
+ obj.deletable&.is_a?(Boolean) != false || raise("Passed value for field obj.deletable is not the expected type, validation failed.")
142
+ obj.supports_percentage_amounts&.is_a?(Boolean) != false || raise("Passed value for field obj.supports_percentage_amounts is not the expected type, validation failed.")
143
+ obj.responsible_for_employer_taxes&.is_a?(Boolean) != false || raise("Passed value for field obj.responsible_for_employer_taxes is not the expected type, validation failed.")
144
+ obj.responsible_for_employee_w2&.is_a?(Boolean) != false || raise("Passed value for field obj.responsible_for_employee_w2 is not the expected type, validation failed.")
145
+ obj.employee_benefits&.is_a?(Array) != false || raise("Passed value for field obj.employee_benefits is not the expected type, validation failed.")
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+ require_relative "company_benefit_with_employee_benefits_employee_benefits_item_contribution"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ class CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem
8
+ # @return [String] The UUID of the employee to which the benefit belongs.
9
+ attr_reader :employee_uuid
10
+ # @return [String] The UUID of the company benefit.
11
+ attr_reader :company_benefit_uuid
12
+ # @return [Boolean] Whether the employee benefit is active.
13
+ attr_reader :active
14
+ # @return [Boolean] Whether the employee deduction amount should be treated as a percentage to be
15
+ # deducted from each payroll.
16
+ attr_reader :deduct_as_percentage
17
+ # @return [String] The amount to be deducted, per pay period, from the employee's pay.
18
+ attr_reader :employee_deduction
19
+ # @return [String] The value of the company contribution
20
+ attr_reader :company_contribution
21
+ # @return [String]
22
+ attr_reader :uuid
23
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution] An object representing the type and value of the company contribution.
24
+ attr_reader :contribution
25
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
26
+ attr_reader :additional_properties
27
+ # @return [Object]
28
+ attr_reader :_field_set
29
+ protected :_field_set
30
+
31
+ OMIT = Object.new
32
+
33
+ # @param employee_uuid [String] The UUID of the employee to which the benefit belongs.
34
+ # @param company_benefit_uuid [String] The UUID of the company benefit.
35
+ # @param active [Boolean] Whether the employee benefit is active.
36
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
37
+ # deducted from each payroll.
38
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
39
+ # @param company_contribution [String] The value of the company contribution
40
+ # @param uuid [String]
41
+ # @param contribution [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution] An object representing the type and value of the company contribution.
42
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
43
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem]
44
+ def initialize(employee_uuid: OMIT, company_benefit_uuid: OMIT, active: OMIT, deduct_as_percentage: OMIT, employee_deduction: OMIT, company_contribution: OMIT, uuid: OMIT, contribution: OMIT, additional_properties: nil)
45
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
46
+ @company_benefit_uuid = company_benefit_uuid if company_benefit_uuid != OMIT
47
+ @active = active if active != OMIT
48
+ @deduct_as_percentage = deduct_as_percentage if deduct_as_percentage != OMIT
49
+ @employee_deduction = employee_deduction if employee_deduction != OMIT
50
+ @company_contribution = company_contribution if company_contribution != OMIT
51
+ @uuid = uuid if uuid != OMIT
52
+ @contribution = contribution if contribution != OMIT
53
+ @additional_properties = additional_properties
54
+ @_field_set = { "employee_uuid": employee_uuid, "company_benefit_uuid": company_benefit_uuid, "active": active, "deduct_as_percentage": deduct_as_percentage, "employee_deduction": employee_deduction, "company_contribution": company_contribution, "uuid": uuid, "contribution": contribution }.reject do | _k, v |
55
+ v == OMIT
56
+ end
57
+ end
58
+ # Deserialize a JSON object to an instance of
59
+ # CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem
60
+ #
61
+ # @param json_object [String]
62
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem]
63
+ def self.from_json(json_object:)
64
+ struct = JSON.parse(json_object, object_class: OpenStruct)
65
+ parsed_json = JSON.parse(json_object)
66
+ employee_uuid = parsed_json["employee_uuid"]
67
+ company_benefit_uuid = parsed_json["company_benefit_uuid"]
68
+ active = parsed_json["active"]
69
+ deduct_as_percentage = parsed_json["deduct_as_percentage"]
70
+ employee_deduction = parsed_json["employee_deduction"]
71
+ company_contribution = parsed_json["company_contribution"]
72
+ uuid = parsed_json["uuid"]
73
+ unless parsed_json["contribution"].nil?
74
+ contribution = parsed_json["contribution"].to_json
75
+ contribution = Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution.from_json(json_object: contribution)
76
+ else
77
+ contribution = nil
78
+ end
79
+ new(
80
+ employee_uuid: employee_uuid,
81
+ company_benefit_uuid: company_benefit_uuid,
82
+ active: active,
83
+ deduct_as_percentage: deduct_as_percentage,
84
+ employee_deduction: employee_deduction,
85
+ company_contribution: company_contribution,
86
+ uuid: uuid,
87
+ contribution: contribution,
88
+ additional_properties: struct
89
+ )
90
+ end
91
+ # Serialize an instance of CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItem
92
+ # to a JSON object
93
+ #
94
+ # @return [String]
95
+ def to_json
96
+ @_field_set&.to_json
97
+ end
98
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
99
+ # hash and check each fields type against the current object's property
100
+ # definitions.
101
+ #
102
+ # @param obj [Object]
103
+ # @return [Void]
104
+ def self.validate_raw(obj:)
105
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
106
+ obj.company_benefit_uuid&.is_a?(String) != false || raise("Passed value for field obj.company_benefit_uuid is not the expected type, validation failed.")
107
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
108
+ obj.deduct_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.deduct_as_percentage is not the expected type, validation failed.")
109
+ obj.employee_deduction&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction is not the expected type, validation failed.")
110
+ obj.company_contribution&.is_a?(String) != false || raise("Passed value for field obj.company_contribution is not the expected type, validation failed.")
111
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
112
+ obj.contribution.nil? || Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution.validate_raw(obj: obj.contribution)
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+ require_relative "company_benefit_with_employee_benefits_employee_benefits_item_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 CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution
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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue] 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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue] 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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution]
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
+ # CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution]
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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue.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
73
+ # CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContribution to a JSON
74
+ # object
75
+ #
76
+ # @return [String]
77
+ def to_json
78
+ @_field_set&.to_json
79
+ end
80
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
81
+ # hash and check each fields type against the current object's property
82
+ # definitions.
83
+ #
84
+ # @param obj [Object]
85
+ # @return [Void]
86
+ def self.validate_raw(obj:)
87
+ obj.type&.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
88
+ obj.value.nil? || Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue.validate_raw(obj: obj.value)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ require "json"
3
+ require_relative "company_benefit_with_employee_benefits_employee_benefits_item_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 CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue
10
+
11
+
12
+ # Deserialize a JSON object to an instance of
13
+ # CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue
14
+ #
15
+ # @param json_object [String]
16
+ # @return [Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValue]
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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValueTiers.validate_raw(obj: struct)
31
+ unless struct.nil?
32
+ return Gusto::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValueTiers.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::CompanyBenefitWithEmployeeBenefitsEmployeeBenefitsItemContributionValueTiers.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