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,120 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "../types/notification"
4
+ require "async"
5
+ require_relative "../../requests"
6
+
7
+ module Gusto
8
+ class NotificationsClient
9
+ # @return [Gusto::RequestClient]
10
+ attr_reader :request_client
11
+
12
+
13
+ # @param request_client [Gusto::RequestClient]
14
+ # @return [Gusto::NotificationsClient]
15
+ def initialize(request_client:)
16
+ @request_client = request_client
17
+ end
18
+ # Upon receiving a notification webhook event, use this endpoint to fetch the
19
+ # notification's details. The notification details include basic suggested content
20
+ # that can help you build notifications in your platform.
21
+ # Note: partners are responsible for the delivery and any custom state management
22
+ # of notifications in their application. Refer to our [partner notification
23
+ # guide](https://docs.gusto.com/embedded-payroll/docs/partner-notifications) for
24
+ # more details.
25
+ # If the notification UUID is not found, the response will be 404 Not Found. If
26
+ # the notification's supporting data is no longer valid, the response will be 422
27
+ # Unprocessable Entity.
28
+ # scope: `notifications:read`
29
+ #
30
+ # @param notification_uuid [String] The notification entity_uuid
31
+ # @param request_options [Gusto::RequestOptions]
32
+ # @return [Gusto::Notification]
33
+ # @example
34
+ # api = Gusto::Client.new(
35
+ # base_url: "https://api.example.com",
36
+ # environment: Gusto::Environment::DEMO,
37
+ # token: "YOUR_AUTH_TOKEN"
38
+ # )
39
+ # api.notifications.get(notification_uuid: "notification_uuid")
40
+ def get(notification_uuid:, request_options: nil)
41
+ response = @request_client.conn.get do | req |
42
+ unless request_options&.timeout_in_seconds.nil?
43
+ req.options.timeout = request_options.timeout_in_seconds
44
+ end
45
+ unless request_options&.token.nil?
46
+ req.headers["Authorization"] = request_options.token
47
+ end
48
+ unless request_options&.gusto_api_version.nil?
49
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
50
+ end
51
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
52
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
53
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
54
+ end
55
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
56
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
57
+ end
58
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/notifications/#{notification_uuid}"
59
+ end
60
+ Gusto::Notification.from_json(json_object: response.body)
61
+ end
62
+ end
63
+ class AsyncNotificationsClient
64
+ # @return [Gusto::AsyncRequestClient]
65
+ attr_reader :request_client
66
+
67
+
68
+ # @param request_client [Gusto::RequestClient]
69
+ # @return [Gusto::AsyncNotificationsClient]
70
+ def initialize(request_client:)
71
+ @request_client = request_client
72
+ end
73
+ # Upon receiving a notification webhook event, use this endpoint to fetch the
74
+ # notification's details. The notification details include basic suggested content
75
+ # that can help you build notifications in your platform.
76
+ # Note: partners are responsible for the delivery and any custom state management
77
+ # of notifications in their application. Refer to our [partner notification
78
+ # guide](https://docs.gusto.com/embedded-payroll/docs/partner-notifications) for
79
+ # more details.
80
+ # If the notification UUID is not found, the response will be 404 Not Found. If
81
+ # the notification's supporting data is no longer valid, the response will be 422
82
+ # Unprocessable Entity.
83
+ # scope: `notifications:read`
84
+ #
85
+ # @param notification_uuid [String] The notification entity_uuid
86
+ # @param request_options [Gusto::RequestOptions]
87
+ # @return [Gusto::Notification]
88
+ # @example
89
+ # api = Gusto::Client.new(
90
+ # base_url: "https://api.example.com",
91
+ # environment: Gusto::Environment::DEMO,
92
+ # token: "YOUR_AUTH_TOKEN"
93
+ # )
94
+ # api.notifications.get(notification_uuid: "notification_uuid")
95
+ def get(notification_uuid:, request_options: nil)
96
+ Async do
97
+ response = @request_client.conn.get do | req |
98
+ unless request_options&.timeout_in_seconds.nil?
99
+ req.options.timeout = request_options.timeout_in_seconds
100
+ end
101
+ unless request_options&.token.nil?
102
+ req.headers["Authorization"] = request_options.token
103
+ end
104
+ unless request_options&.gusto_api_version.nil?
105
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
106
+ end
107
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
108
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
109
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
110
+ end
111
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
112
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
113
+ end
114
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/notifications/#{notification_uuid}"
115
+ end
116
+ Gusto::Notification.from_json(json_object: response.body)
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+ require_relative "pay_schedule_frequency"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module PaySchedules
8
+ # The representation of a pay schedule.
9
+ class PaySchedule
10
+ # @return [String] The unique identifier of the pay schedule in Gusto.
11
+ attr_reader :uuid
12
+ # @return [Gusto::PaySchedules::PayScheduleFrequency] The frequency that employees on this pay schedule are paid with Gusto.
13
+ attr_reader :frequency
14
+ # @return [String] The first date that employees on this pay schedule are paid with Gusto.
15
+ attr_reader :anchor_pay_date
16
+ # @return [String] The last date of the first pay period. This can be the same date as the anchor
17
+ # pay date.
18
+ attr_reader :anchor_end_of_pay_period
19
+ # @return [Integer] An integer between 1 and 31 indicating the first day of the month that employees
20
+ # are paid. This field is only relevant for pay schedules with the “Twice per
21
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
22
+ # frequencies.
23
+ attr_reader :day1
24
+ # @return [Integer] An integer between 1 and 31 indicating the second day of the month that
25
+ # employees are paid. This field is the second pay date for pay schedules with the
26
+ # "Twice per month" frequency. For semi-monthly pay schedules, this field should
27
+ # be set to 31. For months shorter than 31 days, we will set the second pay date
28
+ # to the last day of the month. It will be null for pay schedules with other
29
+ # frequencies.
30
+ attr_reader :day2
31
+ # @return [String] This field will be hourly when the pay schedule is for hourly employees,
32
+ # salaried when the pay schedule is for salaried employees, the department name if
33
+ # pay schedule is by department, and null when the pay schedule is for all
34
+ # employees.
35
+ attr_reader :name
36
+ # @return [String] A custom name for a pay schedule, defaults to the pay frequency description.
37
+ attr_reader :custom_name
38
+ # @return [Boolean] With Autopilot® enabled, payroll will run automatically one day before your
39
+ # payroll deadlines.
40
+ attr_reader :auto_pilot
41
+ # @return [Boolean] Whether this pay schedule is associated with any employees. A pay schedule is
42
+ # inactive when it's unassigned.
43
+ attr_reader :active
44
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
45
+ attr_reader :additional_properties
46
+ # @return [Object]
47
+ attr_reader :_field_set
48
+ protected :_field_set
49
+
50
+ OMIT = Object.new
51
+
52
+ # @param uuid [String] The unique identifier of the pay schedule in Gusto.
53
+ # @param frequency [Gusto::PaySchedules::PayScheduleFrequency] The frequency that employees on this pay schedule are paid with Gusto.
54
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
55
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
56
+ # pay date.
57
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
58
+ # are paid. This field is only relevant for pay schedules with the “Twice per
59
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
60
+ # frequencies.
61
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
62
+ # employees are paid. This field is the second pay date for pay schedules with the
63
+ # "Twice per month" frequency. For semi-monthly pay schedules, this field should
64
+ # be set to 31. For months shorter than 31 days, we will set the second pay date
65
+ # to the last day of the month. It will be null for pay schedules with other
66
+ # frequencies.
67
+ # @param name [String] This field will be hourly when the pay schedule is for hourly employees,
68
+ # salaried when the pay schedule is for salaried employees, the department name if
69
+ # pay schedule is by department, and null when the pay schedule is for all
70
+ # employees.
71
+ # @param custom_name [String] A custom name for a pay schedule, defaults to the pay frequency description.
72
+ # @param auto_pilot [Boolean] With Autopilot® enabled, payroll will run automatically one day before your
73
+ # payroll deadlines.
74
+ # @param active [Boolean] Whether this pay schedule is associated with any employees. A pay schedule is
75
+ # inactive when it's unassigned.
76
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
77
+ # @return [Gusto::PaySchedules::PaySchedule]
78
+ def initialize(uuid:, frequency: OMIT, anchor_pay_date: OMIT, anchor_end_of_pay_period: OMIT, day1: OMIT, day2: OMIT, name: OMIT, custom_name: OMIT, auto_pilot: OMIT, active: OMIT, additional_properties: nil)
79
+ @uuid = uuid
80
+ @frequency = frequency if frequency != OMIT
81
+ @anchor_pay_date = anchor_pay_date if anchor_pay_date != OMIT
82
+ @anchor_end_of_pay_period = anchor_end_of_pay_period if anchor_end_of_pay_period != OMIT
83
+ @day1 = day1 if day1 != OMIT
84
+ @day2 = day2 if day2 != OMIT
85
+ @name = name if name != OMIT
86
+ @custom_name = custom_name if custom_name != OMIT
87
+ @auto_pilot = auto_pilot if auto_pilot != OMIT
88
+ @active = active if active != OMIT
89
+ @additional_properties = additional_properties
90
+ @_field_set = { "uuid": uuid, "frequency": frequency, "anchor_pay_date": anchor_pay_date, "anchor_end_of_pay_period": anchor_end_of_pay_period, "day_1": day1, "day_2": day2, "name": name, "custom_name": custom_name, "auto_pilot": auto_pilot, "active": active }.reject do | _k, v |
91
+ v == OMIT
92
+ end
93
+ end
94
+ # Deserialize a JSON object to an instance of PaySchedule
95
+ #
96
+ # @param json_object [String]
97
+ # @return [Gusto::PaySchedules::PaySchedule]
98
+ def self.from_json(json_object:)
99
+ struct = JSON.parse(json_object, object_class: OpenStruct)
100
+ parsed_json = JSON.parse(json_object)
101
+ uuid = parsed_json["uuid"]
102
+ frequency = parsed_json["frequency"]
103
+ anchor_pay_date = parsed_json["anchor_pay_date"]
104
+ anchor_end_of_pay_period = parsed_json["anchor_end_of_pay_period"]
105
+ day1 = parsed_json["day_1"]
106
+ day2 = parsed_json["day_2"]
107
+ name = parsed_json["name"]
108
+ custom_name = parsed_json["custom_name"]
109
+ auto_pilot = parsed_json["auto_pilot"]
110
+ active = parsed_json["active"]
111
+ new(
112
+ uuid: uuid,
113
+ frequency: frequency,
114
+ anchor_pay_date: anchor_pay_date,
115
+ anchor_end_of_pay_period: anchor_end_of_pay_period,
116
+ day1: day1,
117
+ day2: day2,
118
+ name: name,
119
+ custom_name: custom_name,
120
+ auto_pilot: auto_pilot,
121
+ active: active,
122
+ additional_properties: struct
123
+ )
124
+ end
125
+ # Serialize an instance of PaySchedule to a JSON object
126
+ #
127
+ # @return [String]
128
+ def to_json
129
+ @_field_set&.to_json
130
+ end
131
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
132
+ # hash and check each fields type against the current object's property
133
+ # definitions.
134
+ #
135
+ # @param obj [Object]
136
+ # @return [Void]
137
+ def self.validate_raw(obj:)
138
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
139
+ obj.frequency&.is_a?(Gusto::PaySchedules::PayScheduleFrequency) != false || raise("Passed value for field obj.frequency is not the expected type, validation failed.")
140
+ obj.anchor_pay_date&.is_a?(String) != false || raise("Passed value for field obj.anchor_pay_date is not the expected type, validation failed.")
141
+ obj.anchor_end_of_pay_period&.is_a?(String) != false || raise("Passed value for field obj.anchor_end_of_pay_period is not the expected type, validation failed.")
142
+ obj.day1&.is_a?(Integer) != false || raise("Passed value for field obj.day1 is not the expected type, validation failed.")
143
+ obj.day2&.is_a?(Integer) != false || raise("Passed value for field obj.day2 is not the expected type, validation failed.")
144
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
145
+ obj.custom_name&.is_a?(String) != false || raise("Passed value for field obj.custom_name is not the expected type, validation failed.")
146
+ obj.auto_pilot&.is_a?(Boolean) != false || raise("Passed value for field obj.auto_pilot is not the expected type, validation failed.")
147
+ obj.active&.is_a?(Boolean) != false || raise("Passed value for field obj.active is not the expected type, validation failed.")
148
+ end
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+ require_relative "pay_schedule_assignment_type"
3
+ require_relative "pay_schedule_assignment_employee"
4
+ require_relative "pay_schedule_assignment_department"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Gusto
9
+ module PaySchedules
10
+ # The representation of a pay schedule assignment.
11
+ class PayScheduleAssignment
12
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentType] The pay schedule assignment type.
13
+ attr_reader :type
14
+ # @return [String] Pay schedule for hourly employees.
15
+ attr_reader :hourly_pay_schedule_uuid
16
+ # @return [String] Pay schedule for salaried employees.
17
+ attr_reader :salaried_pay_schedule_uuid
18
+ # @return [String] Default pay schedule for employees.
19
+ attr_reader :default_pay_schedule_uuid
20
+ # @return [Array<Gusto::PaySchedules::PayScheduleAssignmentEmployee>] List of employees and their pay schedules.
21
+ attr_reader :employees
22
+ # @return [Array<Gusto::PaySchedules::PayScheduleAssignmentDepartment>] List of departments and their pay schedules.
23
+ attr_reader :departments
24
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
25
+ attr_reader :additional_properties
26
+ # @return [Object]
27
+ attr_reader :_field_set
28
+ protected :_field_set
29
+
30
+ OMIT = Object.new
31
+
32
+ # @param type [Gusto::PaySchedules::PayScheduleAssignmentType] The pay schedule assignment type.
33
+ # @param hourly_pay_schedule_uuid [String] Pay schedule for hourly employees.
34
+ # @param salaried_pay_schedule_uuid [String] Pay schedule for salaried employees.
35
+ # @param default_pay_schedule_uuid [String] Default pay schedule for employees.
36
+ # @param employees [Array<Gusto::PaySchedules::PayScheduleAssignmentEmployee>] List of employees and their pay schedules.
37
+ # @param departments [Array<Gusto::PaySchedules::PayScheduleAssignmentDepartment>] List of departments and their pay schedules.
38
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
39
+ # @return [Gusto::PaySchedules::PayScheduleAssignment]
40
+ def initialize(type: OMIT, hourly_pay_schedule_uuid: OMIT, salaried_pay_schedule_uuid: OMIT, default_pay_schedule_uuid: OMIT, employees: OMIT, departments: OMIT, additional_properties: nil)
41
+ @type = type if type != OMIT
42
+ @hourly_pay_schedule_uuid = hourly_pay_schedule_uuid if hourly_pay_schedule_uuid != OMIT
43
+ @salaried_pay_schedule_uuid = salaried_pay_schedule_uuid if salaried_pay_schedule_uuid != OMIT
44
+ @default_pay_schedule_uuid = default_pay_schedule_uuid if default_pay_schedule_uuid != OMIT
45
+ @employees = employees if employees != OMIT
46
+ @departments = departments if departments != OMIT
47
+ @additional_properties = additional_properties
48
+ @_field_set = { "type": type, "hourly_pay_schedule_uuid": hourly_pay_schedule_uuid, "salaried_pay_schedule_uuid": salaried_pay_schedule_uuid, "default_pay_schedule_uuid": default_pay_schedule_uuid, "employees": employees, "departments": departments }.reject do | _k, v |
49
+ v == OMIT
50
+ end
51
+ end
52
+ # Deserialize a JSON object to an instance of PayScheduleAssignment
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Gusto::PaySchedules::PayScheduleAssignment]
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
+ hourly_pay_schedule_uuid = parsed_json["hourly_pay_schedule_uuid"]
61
+ salaried_pay_schedule_uuid = parsed_json["salaried_pay_schedule_uuid"]
62
+ default_pay_schedule_uuid = parsed_json["default_pay_schedule_uuid"]
63
+ employees = parsed_json["employees"]&.map do | item |
64
+ item = item.to_json
65
+ Gusto::PaySchedules::PayScheduleAssignmentEmployee.from_json(json_object: item)
66
+ end
67
+ departments = parsed_json["departments"]&.map do | item |
68
+ item = item.to_json
69
+ Gusto::PaySchedules::PayScheduleAssignmentDepartment.from_json(json_object: item)
70
+ end
71
+ new(
72
+ type: type,
73
+ hourly_pay_schedule_uuid: hourly_pay_schedule_uuid,
74
+ salaried_pay_schedule_uuid: salaried_pay_schedule_uuid,
75
+ default_pay_schedule_uuid: default_pay_schedule_uuid,
76
+ employees: employees,
77
+ departments: departments,
78
+ additional_properties: struct
79
+ )
80
+ end
81
+ # Serialize an instance of PayScheduleAssignment to a JSON object
82
+ #
83
+ # @return [String]
84
+ def to_json
85
+ @_field_set&.to_json
86
+ end
87
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
88
+ # hash and check each fields type against the current object's property
89
+ # definitions.
90
+ #
91
+ # @param obj [Object]
92
+ # @return [Void]
93
+ def self.validate_raw(obj:)
94
+ obj.type&.is_a?(Gusto::PaySchedules::PayScheduleAssignmentType) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
95
+ obj.hourly_pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.hourly_pay_schedule_uuid is not the expected type, validation failed.")
96
+ obj.salaried_pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.salaried_pay_schedule_uuid is not the expected type, validation failed.")
97
+ obj.default_pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.default_pay_schedule_uuid is not the expected type, validation failed.")
98
+ obj.employees&.is_a?(Array) != false || raise("Passed value for field obj.employees is not the expected type, validation failed.")
99
+ obj.departments&.is_a?(Array) != false || raise("Passed value for field obj.departments is not the expected type, validation failed.")
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module PaySchedules
7
+ class PayScheduleAssignmentDepartment
8
+ # @return [String] The UUID of the department.
9
+ attr_reader :department_uuid
10
+ # @return [String] The department's pay schedule UUID.
11
+ attr_reader :pay_schedule_uuid
12
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
13
+ attr_reader :additional_properties
14
+ # @return [Object]
15
+ attr_reader :_field_set
16
+ protected :_field_set
17
+
18
+ OMIT = Object.new
19
+
20
+ # @param department_uuid [String] The UUID of the department.
21
+ # @param pay_schedule_uuid [String] The department's pay schedule UUID.
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentDepartment]
24
+ def initialize(department_uuid: OMIT, pay_schedule_uuid: OMIT, additional_properties: nil)
25
+ @department_uuid = department_uuid if department_uuid != OMIT
26
+ @pay_schedule_uuid = pay_schedule_uuid if pay_schedule_uuid != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "department_uuid": department_uuid, "pay_schedule_uuid": pay_schedule_uuid }.reject do | _k, v |
29
+ v == OMIT
30
+ end
31
+ end
32
+ # Deserialize a JSON object to an instance of PayScheduleAssignmentDepartment
33
+ #
34
+ # @param json_object [String]
35
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentDepartment]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ department_uuid = parsed_json["department_uuid"]
40
+ pay_schedule_uuid = parsed_json["pay_schedule_uuid"]
41
+ new(
42
+ department_uuid: department_uuid,
43
+ pay_schedule_uuid: pay_schedule_uuid,
44
+ additional_properties: struct
45
+ )
46
+ end
47
+ # Serialize an instance of PayScheduleAssignmentDepartment to a JSON object
48
+ #
49
+ # @return [String]
50
+ def to_json
51
+ @_field_set&.to_json
52
+ end
53
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
54
+ # hash and check each fields type against the current object's property
55
+ # definitions.
56
+ #
57
+ # @param obj [Object]
58
+ # @return [Void]
59
+ def self.validate_raw(obj:)
60
+ obj.department_uuid&.is_a?(String) != false || raise("Passed value for field obj.department_uuid is not the expected type, validation failed.")
61
+ obj.pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.pay_schedule_uuid is not the expected type, validation failed.")
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module PaySchedules
7
+ class PayScheduleAssignmentEmployee
8
+ # @return [String] The UUID of the employee.
9
+ attr_reader :employee_uuid
10
+ # @return [String] The employee's pay schedule UUID.
11
+ attr_reader :pay_schedule_uuid
12
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
13
+ attr_reader :additional_properties
14
+ # @return [Object]
15
+ attr_reader :_field_set
16
+ protected :_field_set
17
+
18
+ OMIT = Object.new
19
+
20
+ # @param employee_uuid [String] The UUID of the employee.
21
+ # @param pay_schedule_uuid [String] The employee's pay schedule UUID.
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentEmployee]
24
+ def initialize(employee_uuid: OMIT, pay_schedule_uuid: OMIT, additional_properties: nil)
25
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
26
+ @pay_schedule_uuid = pay_schedule_uuid if pay_schedule_uuid != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "employee_uuid": employee_uuid, "pay_schedule_uuid": pay_schedule_uuid }.reject do | _k, v |
29
+ v == OMIT
30
+ end
31
+ end
32
+ # Deserialize a JSON object to an instance of PayScheduleAssignmentEmployee
33
+ #
34
+ # @param json_object [String]
35
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentEmployee]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ employee_uuid = parsed_json["employee_uuid"]
40
+ pay_schedule_uuid = parsed_json["pay_schedule_uuid"]
41
+ new(
42
+ employee_uuid: employee_uuid,
43
+ pay_schedule_uuid: pay_schedule_uuid,
44
+ additional_properties: struct
45
+ )
46
+ end
47
+ # Serialize an instance of PayScheduleAssignmentEmployee to a JSON object
48
+ #
49
+ # @return [String]
50
+ def to_json
51
+ @_field_set&.to_json
52
+ end
53
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
54
+ # hash and check each fields type against the current object's property
55
+ # definitions.
56
+ #
57
+ # @param obj [Object]
58
+ # @return [Void]
59
+ def self.validate_raw(obj:)
60
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
61
+ obj.pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.pay_schedule_uuid is not the expected type, validation failed.")
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+ require_relative "pay_schedule_assignment_pay_period"
3
+ require_relative "pay_schedule_assignment_transition_pay_period"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Gusto
8
+ module PaySchedules
9
+ class PayScheduleAssignmentEmployeeChange
10
+ # @return [String] The UUID of the employee.
11
+ attr_reader :employee_uuid
12
+ # @return [String] The employee's first name.
13
+ attr_reader :first_name
14
+ # @return [String] The employee's last name.
15
+ attr_reader :last_name
16
+ # @return [String] New pay schedule frequency and name.
17
+ attr_reader :pay_frequency
18
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentPayPeriod]
19
+ attr_reader :first_pay_period
20
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentTransitionPayPeriod]
21
+ attr_reader :transition_pay_period
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 employee_uuid [String] The UUID of the employee.
31
+ # @param first_name [String] The employee's first name.
32
+ # @param last_name [String] The employee's last name.
33
+ # @param pay_frequency [String] New pay schedule frequency and name.
34
+ # @param first_pay_period [Gusto::PaySchedules::PayScheduleAssignmentPayPeriod]
35
+ # @param transition_pay_period [Gusto::PaySchedules::PayScheduleAssignmentTransitionPayPeriod]
36
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentEmployeeChange]
38
+ def initialize(employee_uuid: OMIT, first_name: OMIT, last_name: OMIT, pay_frequency: OMIT, first_pay_period: OMIT, transition_pay_period: OMIT, additional_properties: nil)
39
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
40
+ @first_name = first_name if first_name != OMIT
41
+ @last_name = last_name if last_name != OMIT
42
+ @pay_frequency = pay_frequency if pay_frequency != OMIT
43
+ @first_pay_period = first_pay_period if first_pay_period != OMIT
44
+ @transition_pay_period = transition_pay_period if transition_pay_period != OMIT
45
+ @additional_properties = additional_properties
46
+ @_field_set = { "employee_uuid": employee_uuid, "first_name": first_name, "last_name": last_name, "pay_frequency": pay_frequency, "first_pay_period": first_pay_period, "transition_pay_period": transition_pay_period }.reject do | _k, v |
47
+ v == OMIT
48
+ end
49
+ end
50
+ # Deserialize a JSON object to an instance of PayScheduleAssignmentEmployeeChange
51
+ #
52
+ # @param json_object [String]
53
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentEmployeeChange]
54
+ def self.from_json(json_object:)
55
+ struct = JSON.parse(json_object, object_class: OpenStruct)
56
+ parsed_json = JSON.parse(json_object)
57
+ employee_uuid = parsed_json["employee_uuid"]
58
+ first_name = parsed_json["first_name"]
59
+ last_name = parsed_json["last_name"]
60
+ pay_frequency = parsed_json["pay_frequency"]
61
+ unless parsed_json["first_pay_period"].nil?
62
+ first_pay_period = parsed_json["first_pay_period"].to_json
63
+ first_pay_period = Gusto::PaySchedules::PayScheduleAssignmentPayPeriod.from_json(json_object: first_pay_period)
64
+ else
65
+ first_pay_period = nil
66
+ end
67
+ unless parsed_json["transition_pay_period"].nil?
68
+ transition_pay_period = parsed_json["transition_pay_period"].to_json
69
+ transition_pay_period = Gusto::PaySchedules::PayScheduleAssignmentTransitionPayPeriod.from_json(json_object: transition_pay_period)
70
+ else
71
+ transition_pay_period = nil
72
+ end
73
+ new(
74
+ employee_uuid: employee_uuid,
75
+ first_name: first_name,
76
+ last_name: last_name,
77
+ pay_frequency: pay_frequency,
78
+ first_pay_period: first_pay_period,
79
+ transition_pay_period: transition_pay_period,
80
+ additional_properties: struct
81
+ )
82
+ end
83
+ # Serialize an instance of PayScheduleAssignmentEmployeeChange to a JSON object
84
+ #
85
+ # @return [String]
86
+ def to_json
87
+ @_field_set&.to_json
88
+ end
89
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
90
+ # hash and check each fields type against the current object's property
91
+ # definitions.
92
+ #
93
+ # @param obj [Object]
94
+ # @return [Void]
95
+ def self.validate_raw(obj:)
96
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
97
+ obj.first_name&.is_a?(String) != false || raise("Passed value for field obj.first_name is not the expected type, validation failed.")
98
+ obj.last_name&.is_a?(String) != false || raise("Passed value for field obj.last_name is not the expected type, validation failed.")
99
+ obj.pay_frequency&.is_a?(String) != false || raise("Passed value for field obj.pay_frequency is not the expected type, validation failed.")
100
+ obj.first_pay_period.nil? || Gusto::PaySchedules::PayScheduleAssignmentPayPeriod.validate_raw(obj: obj.first_pay_period)
101
+ obj.transition_pay_period.nil? || Gusto::PaySchedules::PayScheduleAssignmentTransitionPayPeriod.validate_raw(obj: obj.transition_pay_period)
102
+ end
103
+ end
104
+ end
105
+ end