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,102 @@
1
+ # frozen_string_literal: true
2
+ require_relative "entity_error_object_errors_item"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ class EntityErrorObject
8
+ # @return [String] Specifies where the error occurs. Typically this key identifies the
9
+ # attribute/parameter related to the error.
10
+ attr_reader :error_key
11
+ # @return [String] Specifies the type of error. The category provides error groupings and can be
12
+ # used to build custom error handling in your integration. If category is
13
+ # `nested_errors`, the object will contain a nested `errors` property with entity
14
+ # errors.
15
+ attr_reader :category
16
+ # @return [String] Provides details about the error - generally this message can be surfaced to an
17
+ # end user.
18
+ attr_reader :message
19
+ # @return [Hash{String => Object}] Contains relevant data to identify the resource in question when applicable. For
20
+ # example, to identify an entity `entity_type` and `entity_uuid` will be provided.
21
+ attr_reader :metadata
22
+ # @return [Array<Gusto::EntityErrorObjectErrorsItem>] Will only exist if category is `nested_errors`. It is possible to have multiple
23
+ # levels of nested errors.
24
+ attr_reader :errors
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 error_key [String] Specifies where the error occurs. Typically this key identifies the
34
+ # attribute/parameter related to the error.
35
+ # @param category [String] Specifies the type of error. The category provides error groupings and can be
36
+ # used to build custom error handling in your integration. If category is
37
+ # `nested_errors`, the object will contain a nested `errors` property with entity
38
+ # errors.
39
+ # @param message [String] Provides details about the error - generally this message can be surfaced to an
40
+ # end user.
41
+ # @param metadata [Hash{String => Object}] Contains relevant data to identify the resource in question when applicable. For
42
+ # example, to identify an entity `entity_type` and `entity_uuid` will be provided.
43
+ # @param errors [Array<Gusto::EntityErrorObjectErrorsItem>] Will only exist if category is `nested_errors`. It is possible to have multiple
44
+ # levels of nested errors.
45
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
46
+ # @return [Gusto::EntityErrorObject]
47
+ def initialize(error_key: OMIT, category: OMIT, message: OMIT, metadata: OMIT, errors: OMIT, additional_properties: nil)
48
+ @error_key = error_key if error_key != OMIT
49
+ @category = category if category != OMIT
50
+ @message = message if message != OMIT
51
+ @metadata = metadata if metadata != OMIT
52
+ @errors = errors if errors != OMIT
53
+ @additional_properties = additional_properties
54
+ @_field_set = { "error_key": error_key, "category": category, "message": message, "metadata": metadata, "errors": errors }.reject do | _k, v |
55
+ v == OMIT
56
+ end
57
+ end
58
+ # Deserialize a JSON object to an instance of EntityErrorObject
59
+ #
60
+ # @param json_object [String]
61
+ # @return [Gusto::EntityErrorObject]
62
+ def self.from_json(json_object:)
63
+ struct = JSON.parse(json_object, object_class: OpenStruct)
64
+ parsed_json = JSON.parse(json_object)
65
+ error_key = parsed_json["error_key"]
66
+ category = parsed_json["category"]
67
+ message = parsed_json["message"]
68
+ metadata = parsed_json["metadata"]
69
+ errors = parsed_json["errors"]&.map do | item |
70
+ item = item.to_json
71
+ Gusto::EntityErrorObjectErrorsItem.from_json(json_object: item)
72
+ end
73
+ new(
74
+ error_key: error_key,
75
+ category: category,
76
+ message: message,
77
+ metadata: metadata,
78
+ errors: errors,
79
+ additional_properties: struct
80
+ )
81
+ end
82
+ # Serialize an instance of EntityErrorObject to a JSON object
83
+ #
84
+ # @return [String]
85
+ def to_json
86
+ @_field_set&.to_json
87
+ end
88
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
89
+ # hash and check each fields type against the current object's property
90
+ # definitions.
91
+ #
92
+ # @param obj [Object]
93
+ # @return [Void]
94
+ def self.validate_raw(obj:)
95
+ obj.error_key&.is_a?(String) != false || raise("Passed value for field obj.error_key is not the expected type, validation failed.")
96
+ obj.category&.is_a?(String) != false || raise("Passed value for field obj.category is not the expected type, validation failed.")
97
+ obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
98
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
99
+ obj.errors&.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.")
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ class EntityErrorObjectErrorsItem
7
+ # @return [String] Specifies where the error occurs. Typically this key identifies the
8
+ # attribute/parameter related to the error.
9
+ attr_reader :error_key
10
+ # @return [String] Specifies the type of error. The category provides error groupings and can be
11
+ # used to build custom error handling in your integration. If category is
12
+ # `nested_errors`, the object will contain a nested `errors` property with entity
13
+ # errors.
14
+ attr_reader :category
15
+ # @return [String] Provides details about the error - generally this message can be surfaced to an
16
+ # end user.
17
+ attr_reader :message
18
+ # @return [Hash{String => Object}] Contains relevant data to identify the resource in question when applicable. For
19
+ # example, to identify an entity `entity_type` and `entity_uuid` will be provided.
20
+ attr_reader :metadata
21
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
22
+ attr_reader :additional_properties
23
+ # @return [Object]
24
+ attr_reader :_field_set
25
+ protected :_field_set
26
+
27
+ OMIT = Object.new
28
+
29
+ # @param error_key [String] Specifies where the error occurs. Typically this key identifies the
30
+ # attribute/parameter related to the error.
31
+ # @param category [String] Specifies the type of error. The category provides error groupings and can be
32
+ # used to build custom error handling in your integration. If category is
33
+ # `nested_errors`, the object will contain a nested `errors` property with entity
34
+ # errors.
35
+ # @param message [String] Provides details about the error - generally this message can be surfaced to an
36
+ # end user.
37
+ # @param metadata [Hash{String => Object}] Contains relevant data to identify the resource in question when applicable. For
38
+ # example, to identify an entity `entity_type` and `entity_uuid` will be provided.
39
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
40
+ # @return [Gusto::EntityErrorObjectErrorsItem]
41
+ def initialize(error_key: OMIT, category: OMIT, message: OMIT, metadata: OMIT, additional_properties: nil)
42
+ @error_key = error_key if error_key != OMIT
43
+ @category = category if category != OMIT
44
+ @message = message if message != OMIT
45
+ @metadata = metadata if metadata != OMIT
46
+ @additional_properties = additional_properties
47
+ @_field_set = { "error_key": error_key, "category": category, "message": message, "metadata": metadata }.reject do | _k, v |
48
+ v == OMIT
49
+ end
50
+ end
51
+ # Deserialize a JSON object to an instance of EntityErrorObjectErrorsItem
52
+ #
53
+ # @param json_object [String]
54
+ # @return [Gusto::EntityErrorObjectErrorsItem]
55
+ def self.from_json(json_object:)
56
+ struct = JSON.parse(json_object, object_class: OpenStruct)
57
+ parsed_json = JSON.parse(json_object)
58
+ error_key = parsed_json["error_key"]
59
+ category = parsed_json["category"]
60
+ message = parsed_json["message"]
61
+ metadata = parsed_json["metadata"]
62
+ new(
63
+ error_key: error_key,
64
+ category: category,
65
+ message: message,
66
+ metadata: metadata,
67
+ additional_properties: struct
68
+ )
69
+ end
70
+ # Serialize an instance of EntityErrorObjectErrorsItem to a JSON object
71
+ #
72
+ # @return [String]
73
+ def to_json
74
+ @_field_set&.to_json
75
+ end
76
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
77
+ # hash and check each fields type against the current object's property
78
+ # definitions.
79
+ #
80
+ # @param obj [Object]
81
+ # @return [Void]
82
+ def self.validate_raw(obj:)
83
+ obj.error_key&.is_a?(String) != false || raise("Passed value for field obj.error_key is not the expected type, validation failed.")
84
+ obj.category&.is_a?(String) != false || raise("Passed value for field obj.category is not the expected type, validation failed.")
85
+ obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
86
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ # Representation of an Event
7
+ class Event
8
+ # @return [String] Unique identifier for the event.
9
+ attr_reader :uuid
10
+ # @return [String] Description of the event (e.g., payroll.submitted, or company.form.signed).
11
+ attr_reader :event_type
12
+ # @return [String] Name of the parent resource of the described entity.
13
+ attr_reader :resource_type
14
+ # @return [String] Unique identifier for the parent resource.
15
+ attr_reader :resource_uuid
16
+ # @return [String] Name of the entity that the event corresponds to.
17
+ attr_reader :entity_type
18
+ # @return [String] Unique identifier for the entity.
19
+ attr_reader :entity_uuid
20
+ # @return [Integer] Time at which this event was created. Measured in seconds since the Unix epoch.
21
+ attr_reader :timestamp
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 uuid [String] Unique identifier for the event.
31
+ # @param event_type [String] Description of the event (e.g., payroll.submitted, or company.form.signed).
32
+ # @param resource_type [String] Name of the parent resource of the described entity.
33
+ # @param resource_uuid [String] Unique identifier for the parent resource.
34
+ # @param entity_type [String] Name of the entity that the event corresponds to.
35
+ # @param entity_uuid [String] Unique identifier for the entity.
36
+ # @param timestamp [Integer] Time at which this event was created. Measured in seconds since the Unix epoch.
37
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
38
+ # @return [Gusto::Event]
39
+ def initialize(uuid:, event_type: OMIT, resource_type: OMIT, resource_uuid: OMIT, entity_type: OMIT, entity_uuid: OMIT, timestamp: OMIT, additional_properties: nil)
40
+ @uuid = uuid
41
+ @event_type = event_type if event_type != OMIT
42
+ @resource_type = resource_type if resource_type != OMIT
43
+ @resource_uuid = resource_uuid if resource_uuid != OMIT
44
+ @entity_type = entity_type if entity_type != OMIT
45
+ @entity_uuid = entity_uuid if entity_uuid != OMIT
46
+ @timestamp = timestamp if timestamp != OMIT
47
+ @additional_properties = additional_properties
48
+ @_field_set = { "uuid": uuid, "event_type": event_type, "resource_type": resource_type, "resource_uuid": resource_uuid, "entity_type": entity_type, "entity_uuid": entity_uuid, "timestamp": timestamp }.reject do | _k, v |
49
+ v == OMIT
50
+ end
51
+ end
52
+ # Deserialize a JSON object to an instance of Event
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Gusto::Event]
56
+ def self.from_json(json_object:)
57
+ struct = JSON.parse(json_object, object_class: OpenStruct)
58
+ parsed_json = JSON.parse(json_object)
59
+ uuid = parsed_json["uuid"]
60
+ event_type = parsed_json["event_type"]
61
+ resource_type = parsed_json["resource_type"]
62
+ resource_uuid = parsed_json["resource_uuid"]
63
+ entity_type = parsed_json["entity_type"]
64
+ entity_uuid = parsed_json["entity_uuid"]
65
+ timestamp = parsed_json["timestamp"]
66
+ new(
67
+ uuid: uuid,
68
+ event_type: event_type,
69
+ resource_type: resource_type,
70
+ resource_uuid: resource_uuid,
71
+ entity_type: entity_type,
72
+ entity_uuid: entity_uuid,
73
+ timestamp: timestamp,
74
+ additional_properties: struct
75
+ )
76
+ end
77
+ # Serialize an instance of Event to a JSON object
78
+ #
79
+ # @return [String]
80
+ def to_json
81
+ @_field_set&.to_json
82
+ end
83
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
84
+ # hash and check each fields type against the current object's property
85
+ # definitions.
86
+ #
87
+ # @param obj [Object]
88
+ # @return [Void]
89
+ def self.validate_raw(obj:)
90
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
91
+ obj.event_type&.is_a?(String) != false || raise("Passed value for field obj.event_type is not the expected type, validation failed.")
92
+ obj.resource_type&.is_a?(String) != false || raise("Passed value for field obj.resource_type is not the expected type, validation failed.")
93
+ obj.resource_uuid&.is_a?(String) != false || raise("Passed value for field obj.resource_uuid is not the expected type, validation failed.")
94
+ obj.entity_type&.is_a?(String) != false || raise("Passed value for field obj.entity_type is not the expected type, validation failed.")
95
+ obj.entity_uuid&.is_a?(String) != false || raise("Passed value for field obj.entity_uuid is not the expected type, validation failed.")
96
+ obj.timestamp&.is_a?(Integer) != false || raise("Passed value for field obj.timestamp is not the expected type, validation failed.")
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ # The FLSA status for this compensation. Salaried ('Exempt') employees are paid a
5
+ # fixed salary every pay period. Salaried with overtime ('Salaried Nonexempt')
6
+ # employees are paid a fixed salary every pay period, and receive overtime pay
7
+ # when applicable. Hourly ('Nonexempt') employees are paid for the hours they
8
+ # work, and receive overtime pay when applicable. Commissioned employees
9
+ # ('Commission Only Exempt') earn wages based only on commission. Commissioned
10
+ # with overtime ('Commission Only Nonexempt') earn wages based on commission, and
11
+ # receive overtime pay when applicable. Owners ('Owner') are employees that own at
12
+ # least twenty percent of the company.
13
+ class FlsaStatusType
14
+
15
+ EXEMPT = "Exempt"
16
+ SALARIED_NONEXEMPT = "Salaried Nonexempt"
17
+ NONEXEMPT = "Nonexempt"
18
+ OWNER = "Owner"
19
+ COMMISSION_ONLY_EXEMPT = "Commission Only Exempt"
20
+ COMMISSION_ONLY_NONEXEMPT = "Commission Only Nonexempt"
21
+
22
+ end
23
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ class FormPdf
7
+ # @return [String] the UUID of the form
8
+ attr_reader :uuid
9
+ # @return [String] the URL of the form
10
+ attr_reader :document_url
11
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
12
+ attr_reader :additional_properties
13
+ # @return [Object]
14
+ attr_reader :_field_set
15
+ protected :_field_set
16
+
17
+ OMIT = Object.new
18
+
19
+ # @param uuid [String] the UUID of the form
20
+ # @param document_url [String] the URL of the form
21
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
22
+ # @return [Gusto::FormPdf]
23
+ def initialize(uuid:, document_url: OMIT, additional_properties: nil)
24
+ @uuid = uuid
25
+ @document_url = document_url if document_url != OMIT
26
+ @additional_properties = additional_properties
27
+ @_field_set = { "uuid": uuid, "document_url": document_url }.reject do | _k, v |
28
+ v == OMIT
29
+ end
30
+ end
31
+ # Deserialize a JSON object to an instance of FormPdf
32
+ #
33
+ # @param json_object [String]
34
+ # @return [Gusto::FormPdf]
35
+ def self.from_json(json_object:)
36
+ struct = JSON.parse(json_object, object_class: OpenStruct)
37
+ parsed_json = JSON.parse(json_object)
38
+ uuid = parsed_json["uuid"]
39
+ document_url = parsed_json["document_url"]
40
+ new(
41
+ uuid: uuid,
42
+ document_url: document_url,
43
+ additional_properties: struct
44
+ )
45
+ end
46
+ # Serialize an instance of FormPdf to a JSON object
47
+ #
48
+ # @return [String]
49
+ def to_json
50
+ @_field_set&.to_json
51
+ end
52
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
53
+ # hash and check each fields type against the current object's property
54
+ # definitions.
55
+ #
56
+ # @param obj [Object]
57
+ # @return [Void]
58
+ def self.validate_raw(obj:)
59
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
60
+ obj.document_url&.is_a?(String) != false || raise("Passed value for field obj.document_url is not the expected type, validation failed.")
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,172 @@
1
+ # frozen_string_literal: true
2
+ require_relative "garnishment_garnishment_type"
3
+ require_relative "garnishment_child_support"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Gusto
8
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
9
+ # from an employee’s pay. They can be deducted a specific number of times or on a
10
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
11
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
12
+ # for child support or back taxes. Some companies provide loans to their employees
13
+ # that are repaid via garnishments.
14
+ class Garnishment
15
+ # @return [String] The UUID of the garnishment in Gusto.
16
+ attr_reader :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] The UUID of the employee to which this garnishment belongs.
22
+ attr_reader :employee_uuid
23
+ # @return [Boolean] Whether or not this garnishment is currently active.
24
+ attr_reader :active
25
+ # @return [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
26
+ # Represented as a float, e.g. "8.00".
27
+ attr_reader :amount
28
+ # @return [String] The description of the garnishment.
29
+ attr_reader :description
30
+ # @return [Boolean] Whether the garnishment is court ordered.
31
+ attr_reader :court_ordered
32
+ # @return [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
33
+ attr_reader :times
34
+ # @return [Boolean] Whether the garnishment should recur indefinitely.
35
+ attr_reader :recurring
36
+ # @return [String] The maximum deduction per annum. A null value indicates no maximum. Represented
37
+ # as a float, e.g. "200.00".
38
+ attr_reader :annual_maximum
39
+ # @return [String] The maximum deduction per pay period. A null value indicates no maximum.
40
+ # Represented as a float, e.g. "16.00".
41
+ attr_reader :pay_period_maximum
42
+ # @return [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
43
+ # period.
44
+ attr_reader :deduct_as_percentage
45
+ # @return [Gusto::GarnishmentGarnishmentType] The specific type of garnishment for court ordered garnishments.
46
+ attr_reader :garnishment_type
47
+ # @return [Gusto::GarnishmentChildSupport]
48
+ attr_reader :child_support
49
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
50
+ attr_reader :additional_properties
51
+ # @return [Object]
52
+ attr_reader :_field_set
53
+ protected :_field_set
54
+
55
+ OMIT = Object.new
56
+
57
+ # @param uuid [String] The UUID of the garnishment in Gusto.
58
+ # @param version [String] The current version of the object. See the [versioning
59
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
60
+ # on how to use this field.
61
+ # @param employee_uuid [String] The UUID of the employee to which this garnishment belongs.
62
+ # @param active [Boolean] Whether or not this garnishment is currently active.
63
+ # @param amount [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
64
+ # Represented as a float, e.g. "8.00".
65
+ # @param description [String] The description of the garnishment.
66
+ # @param court_ordered [Boolean] Whether the garnishment is court ordered.
67
+ # @param times [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
68
+ # @param recurring [Boolean] Whether the garnishment should recur indefinitely.
69
+ # @param annual_maximum [String] The maximum deduction per annum. A null value indicates no maximum. Represented
70
+ # as a float, e.g. "200.00".
71
+ # @param pay_period_maximum [String] The maximum deduction per pay period. A null value indicates no maximum.
72
+ # Represented as a float, e.g. "16.00".
73
+ # @param deduct_as_percentage [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
74
+ # period.
75
+ # @param garnishment_type [Gusto::GarnishmentGarnishmentType] The specific type of garnishment for court ordered garnishments.
76
+ # @param child_support [Gusto::GarnishmentChildSupport]
77
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
78
+ # @return [Gusto::Garnishment]
79
+ def initialize(uuid:, version: OMIT, employee_uuid: OMIT, active: OMIT, amount: OMIT, description: OMIT, court_ordered: OMIT, times: OMIT, recurring: OMIT, annual_maximum: OMIT, pay_period_maximum: OMIT, deduct_as_percentage: OMIT, garnishment_type: OMIT, child_support: OMIT, additional_properties: nil)
80
+ @uuid = uuid
81
+ @version = version if version != OMIT
82
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
83
+ @active = active if active != OMIT
84
+ @amount = amount if amount != OMIT
85
+ @description = description if description != OMIT
86
+ @court_ordered = court_ordered if court_ordered != OMIT
87
+ @times = times if times != OMIT
88
+ @recurring = recurring if recurring != OMIT
89
+ @annual_maximum = annual_maximum if annual_maximum != OMIT
90
+ @pay_period_maximum = pay_period_maximum if pay_period_maximum != OMIT
91
+ @deduct_as_percentage = deduct_as_percentage if deduct_as_percentage != OMIT
92
+ @garnishment_type = garnishment_type if garnishment_type != OMIT
93
+ @child_support = child_support if child_support != OMIT
94
+ @additional_properties = additional_properties
95
+ @_field_set = { "uuid": uuid, "version": version, "employee_uuid": employee_uuid, "active": active, "amount": amount, "description": description, "court_ordered": court_ordered, "times": times, "recurring": recurring, "annual_maximum": annual_maximum, "pay_period_maximum": pay_period_maximum, "deduct_as_percentage": deduct_as_percentage, "garnishment_type": garnishment_type, "child_support": child_support }.reject do | _k, v |
96
+ v == OMIT
97
+ end
98
+ end
99
+ # Deserialize a JSON object to an instance of Garnishment
100
+ #
101
+ # @param json_object [String]
102
+ # @return [Gusto::Garnishment]
103
+ def self.from_json(json_object:)
104
+ struct = JSON.parse(json_object, object_class: OpenStruct)
105
+ parsed_json = JSON.parse(json_object)
106
+ uuid = parsed_json["uuid"]
107
+ version = parsed_json["version"]
108
+ employee_uuid = parsed_json["employee_uuid"]
109
+ active = parsed_json["active"]
110
+ amount = parsed_json["amount"]
111
+ description = parsed_json["description"]
112
+ court_ordered = parsed_json["court_ordered"]
113
+ times = parsed_json["times"]
114
+ recurring = parsed_json["recurring"]
115
+ annual_maximum = parsed_json["annual_maximum"]
116
+ pay_period_maximum = parsed_json["pay_period_maximum"]
117
+ deduct_as_percentage = parsed_json["deduct_as_percentage"]
118
+ garnishment_type = parsed_json["garnishment_type"]
119
+ unless parsed_json["child_support"].nil?
120
+ child_support = parsed_json["child_support"].to_json
121
+ child_support = Gusto::GarnishmentChildSupport.from_json(json_object: child_support)
122
+ else
123
+ child_support = nil
124
+ end
125
+ new(
126
+ uuid: uuid,
127
+ version: version,
128
+ employee_uuid: employee_uuid,
129
+ active: active,
130
+ amount: amount,
131
+ description: description,
132
+ court_ordered: court_ordered,
133
+ times: times,
134
+ recurring: recurring,
135
+ annual_maximum: annual_maximum,
136
+ pay_period_maximum: pay_period_maximum,
137
+ deduct_as_percentage: deduct_as_percentage,
138
+ garnishment_type: garnishment_type,
139
+ child_support: child_support,
140
+ additional_properties: struct
141
+ )
142
+ end
143
+ # Serialize an instance of Garnishment to a JSON object
144
+ #
145
+ # @return [String]
146
+ def to_json
147
+ @_field_set&.to_json
148
+ end
149
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
150
+ # hash and check each fields type against the current object's property
151
+ # definitions.
152
+ #
153
+ # @param obj [Object]
154
+ # @return [Void]
155
+ def self.validate_raw(obj:)
156
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
157
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
158
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
159
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
160
+ obj.amount&.is_a?(String) != false || raise("Passed value for field obj.amount is not the expected type, validation failed.")
161
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
162
+ obj.court_ordered&.is_a?(Boolean) != false || raise("Passed value for field obj.court_ordered is not the expected type, validation failed.")
163
+ obj.times&.is_a?(Integer) != false || raise("Passed value for field obj.times is not the expected type, validation failed.")
164
+ obj.recurring&.is_a?(Boolean) != false || raise("Passed value for field obj.recurring is not the expected type, validation failed.")
165
+ obj.annual_maximum&.is_a?(String) != false || raise("Passed value for field obj.annual_maximum is not the expected type, validation failed.")
166
+ obj.pay_period_maximum&.is_a?(String) != false || raise("Passed value for field obj.pay_period_maximum is not the expected type, validation failed.")
167
+ obj.deduct_as_percentage&.is_a?(Boolean) != false || raise("Passed value for field obj.deduct_as_percentage is not the expected type, validation failed.")
168
+ obj.garnishment_type&.is_a?(Gusto::GarnishmentGarnishmentType) != false || raise("Passed value for field obj.garnishment_type is not the expected type, validation failed.")
169
+ obj.child_support.nil? || Gusto::GarnishmentChildSupport.validate_raw(obj: obj.child_support)
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+ require_relative "garnishment_child_support_payment_period"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ # Additional child support order details
8
+ class GarnishmentChildSupport
9
+ # @return [String] The two letter state abbreviation for the state issuing the child support order.
10
+ # Agency data is available in the `GET /v1/garnishments/child_support` API.
11
+ attr_reader :state
12
+ # @return [Gusto::GarnishmentChildSupportPaymentPeriod] How often the agency collects the withholding amount. e.g. $500 monthly ->
13
+ # `Monthly`.
14
+ attr_reader :payment_period
15
+ # @return [String] The FIPS code associated with the state or county agency issuing the child
16
+ # support order. Agency data is available in the `GET
17
+ # /v1/garnishments/child_support` API.
18
+ attr_reader :fips_code
19
+ # @return [String] Child Support Enforcement Case Number associated with this child support
20
+ # obligation - required for most states. Agency specific requirements are
21
+ # available in the `GET /v1/garnishments/child_support` API.
22
+ attr_reader :case_number
23
+ # @return [String] Order Identifier or Order ID associated with this child support obligation -
24
+ # required for some states. Agency specific requirements are available in the `GET
25
+ # /v1/garnishments/child_support` API.
26
+ attr_reader :order_number
27
+ # @return [String] Child Support Enforcement Remittance ID associated with this child support
28
+ # obligation - required for some states. Agency specific requirements are
29
+ # available in the `GET /v1/garnishments/child_support` API.
30
+ attr_reader :remittance_number
31
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
32
+ attr_reader :additional_properties
33
+ # @return [Object]
34
+ attr_reader :_field_set
35
+ protected :_field_set
36
+
37
+ OMIT = Object.new
38
+
39
+ # @param state [String] The two letter state abbreviation for the state issuing the child support order.
40
+ # Agency data is available in the `GET /v1/garnishments/child_support` API.
41
+ # @param payment_period [Gusto::GarnishmentChildSupportPaymentPeriod] How often the agency collects the withholding amount. e.g. $500 monthly ->
42
+ # `Monthly`.
43
+ # @param fips_code [String] The FIPS code associated with the state or county agency issuing the child
44
+ # support order. Agency data is available in the `GET
45
+ # /v1/garnishments/child_support` API.
46
+ # @param case_number [String] Child Support Enforcement Case Number associated with this child support
47
+ # obligation - required for most states. Agency specific requirements are
48
+ # available in the `GET /v1/garnishments/child_support` API.
49
+ # @param order_number [String] Order Identifier or Order ID associated with this child support obligation -
50
+ # required for some states. Agency specific requirements are available in the `GET
51
+ # /v1/garnishments/child_support` API.
52
+ # @param remittance_number [String] Child Support Enforcement Remittance ID associated with this child support
53
+ # obligation - required for some states. Agency specific requirements are
54
+ # available in the `GET /v1/garnishments/child_support` API.
55
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
56
+ # @return [Gusto::GarnishmentChildSupport]
57
+ def initialize(state: OMIT, payment_period: OMIT, fips_code: OMIT, case_number: OMIT, order_number: OMIT, remittance_number: OMIT, additional_properties: nil)
58
+ @state = state if state != OMIT
59
+ @payment_period = payment_period if payment_period != OMIT
60
+ @fips_code = fips_code if fips_code != OMIT
61
+ @case_number = case_number if case_number != OMIT
62
+ @order_number = order_number if order_number != OMIT
63
+ @remittance_number = remittance_number if remittance_number != OMIT
64
+ @additional_properties = additional_properties
65
+ @_field_set = { "state": state, "payment_period": payment_period, "fips_code": fips_code, "case_number": case_number, "order_number": order_number, "remittance_number": remittance_number }.reject do | _k, v |
66
+ v == OMIT
67
+ end
68
+ end
69
+ # Deserialize a JSON object to an instance of GarnishmentChildSupport
70
+ #
71
+ # @param json_object [String]
72
+ # @return [Gusto::GarnishmentChildSupport]
73
+ def self.from_json(json_object:)
74
+ struct = JSON.parse(json_object, object_class: OpenStruct)
75
+ parsed_json = JSON.parse(json_object)
76
+ state = parsed_json["state"]
77
+ payment_period = parsed_json["payment_period"]
78
+ fips_code = parsed_json["fips_code"]
79
+ case_number = parsed_json["case_number"]
80
+ order_number = parsed_json["order_number"]
81
+ remittance_number = parsed_json["remittance_number"]
82
+ new(
83
+ state: state,
84
+ payment_period: payment_period,
85
+ fips_code: fips_code,
86
+ case_number: case_number,
87
+ order_number: order_number,
88
+ remittance_number: remittance_number,
89
+ additional_properties: struct
90
+ )
91
+ end
92
+ # Serialize an instance of GarnishmentChildSupport 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.state&.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
106
+ obj.payment_period&.is_a?(Gusto::GarnishmentChildSupportPaymentPeriod) != false || raise("Passed value for field obj.payment_period is not the expected type, validation failed.")
107
+ obj.fips_code&.is_a?(String) != false || raise("Passed value for field obj.fips_code is not the expected type, validation failed.")
108
+ obj.case_number&.is_a?(String) != false || raise("Passed value for field obj.case_number is not the expected type, validation failed.")
109
+ obj.order_number&.is_a?(String) != false || raise("Passed value for field obj.order_number is not the expected type, validation failed.")
110
+ obj.remittance_number&.is_a?(String) != false || raise("Passed value for field obj.remittance_number is not the expected type, validation failed.")
111
+ end
112
+ end
113
+ end