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,306 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "types/reports_create_request_columns_item"
4
+ require_relative "types/reports_create_request_groupings_item"
5
+ require_relative "types/reports_create_request_file_type"
6
+ require_relative "types/reports_create_request_payment_method"
7
+ require_relative "types/reports_create_request_employment_type"
8
+ require_relative "types/reports_create_request_employment_status"
9
+ require_relative "../types/create_report"
10
+ require_relative "../types/report"
11
+ require_relative "../types/report_template"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require_relative "../../requests"
16
+
17
+ module Gusto
18
+ class ReportsClient
19
+ # @return [Gusto::RequestClient]
20
+ attr_reader :request_client
21
+
22
+
23
+ # @param request_client [Gusto::RequestClient]
24
+ # @return [Gusto::ReportsClient]
25
+ def initialize(request_client:)
26
+ @request_client = request_client
27
+ end
28
+ # Create a custom report for a company. This endpoint initiates creating a custom
29
+ # report with custom columns, groupings, and filters. The `request_uuid` in the
30
+ # response can then be used to poll for the status and report URL upon completion
31
+ # using the report GET endpoint.
32
+ # scope: `company_reports:write`
33
+ #
34
+ # @param company_uuid [String] The UUID of the company
35
+ # @param columns [Array<Gusto::Reports::ReportsCreateRequestColumnsItem>] Columns to include in the report
36
+ # @param groupings [Array<Gusto::Reports::ReportsCreateRequestGroupingsItem>] How to group the report
37
+ # @param custom_name [String] The title of the report
38
+ # @param file_type [Gusto::Reports::ReportsCreateRequestFileType] The type of file to generate
39
+ # @param with_totals [Boolean] Whether to include subtotals and grand totals in the report
40
+ # @param start_date [String] Start date of data to filter by
41
+ # @param end_date [String] End date of data to filter by
42
+ # @param dismissed_start_date [String] Dismissed start date of employees to filter by
43
+ # @param dismissed_end_date [String] Dismissed end date of employees to filter by
44
+ # @param payment_method [Gusto::Reports::ReportsCreateRequestPaymentMethod] Payment method to filter by
45
+ # @param employment_type [Gusto::Reports::ReportsCreateRequestEmploymentType] Employee employment type to filter by
46
+ # @param employment_status [Gusto::Reports::ReportsCreateRequestEmploymentStatus] Employee employment status to filter by
47
+ # @param employee_uuids [Array<String>] Employees to filter by
48
+ # @param department_uuids [Array<String>] Departments to filter by
49
+ # @param work_address_uuids [Array<String>] Work addresses to filter by
50
+ # @param request_options [Gusto::RequestOptions]
51
+ # @return [Gusto::CreateReport]
52
+ # @example
53
+ # api = Gusto::Client.new(
54
+ # base_url: "https://api.example.com",
55
+ # environment: Gusto::Environment::DEMO,
56
+ # token: "YOUR_AUTH_TOKEN"
57
+ # )
58
+ # api.reports.create(
59
+ # company_uuid: "company_uuid",
60
+ # columns: [BANK_ACCOUNT_ACCOUNT_NUMBER],
61
+ # groupings: [PAYROLL],
62
+ # file_type: CSV
63
+ # )
64
+ def create(company_uuid:, columns:, groupings:, custom_name: nil, file_type:, with_totals: nil, start_date: nil, end_date: nil, dismissed_start_date: nil, dismissed_end_date: nil, payment_method: nil, employment_type: nil, employment_status: nil, employee_uuids: nil, department_uuids: nil, work_address_uuids: nil, request_options: nil)
65
+ response = @request_client.conn.post do | req |
66
+ unless request_options&.timeout_in_seconds.nil?
67
+ req.options.timeout = request_options.timeout_in_seconds
68
+ end
69
+ unless request_options&.token.nil?
70
+ req.headers["Authorization"] = request_options.token
71
+ end
72
+ unless request_options&.gusto_api_version.nil?
73
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
74
+ end
75
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
76
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
77
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
78
+ end
79
+ req.body = { **(request_options&.additional_body_parameters || {}), columns: columns, groupings: groupings, custom_name: custom_name, file_type: file_type, with_totals: with_totals, start_date: start_date, end_date: end_date, dismissed_start_date: dismissed_start_date, dismissed_end_date: dismissed_end_date, payment_method: payment_method, employment_type: employment_type, employment_status: employment_status, employee_uuids: employee_uuids, department_uuids: department_uuids, work_address_uuids: work_address_uuids }.compact
80
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/reports"
81
+ end
82
+ Gusto::CreateReport.from_json(json_object: response.body)
83
+ end
84
+ # Get a company's report given the `request_uuid`. The response will include the
85
+ # report request's status and, if complete, the report URL.
86
+ # scope: `company_reports:read`
87
+ #
88
+ # @param report_uuid [String] The UUID of the report request
89
+ # @param request_options [Gusto::RequestOptions]
90
+ # @return [Gusto::Report]
91
+ # @example
92
+ # api = Gusto::Client.new(
93
+ # base_url: "https://api.example.com",
94
+ # environment: Gusto::Environment::DEMO,
95
+ # token: "YOUR_AUTH_TOKEN"
96
+ # )
97
+ # api.reports.get(report_uuid: "report_uuid")
98
+ def get(report_uuid:, request_options: nil)
99
+ response = @request_client.conn.get do | req |
100
+ unless request_options&.timeout_in_seconds.nil?
101
+ req.options.timeout = request_options.timeout_in_seconds
102
+ end
103
+ unless request_options&.token.nil?
104
+ req.headers["Authorization"] = request_options.token
105
+ end
106
+ unless request_options&.gusto_api_version.nil?
107
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
108
+ end
109
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
110
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
111
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
112
+ end
113
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
114
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
115
+ end
116
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/reports/#{report_uuid}"
117
+ end
118
+ Gusto::Report.from_json(json_object: response.body)
119
+ end
120
+ # Get a company's report template. The only supported report type is
121
+ # `payroll_journal`. The resulting columns and groupings from this endpoint can be
122
+ # used as a guidance to create the report using the POST create report endpoint.
123
+ # scope: `company_reports:write`
124
+ #
125
+ # @param company_uuid [String] The UUID of the company
126
+ # @param report_type [String] The report type
127
+ # @param request_options [Gusto::RequestOptions]
128
+ # @return [Gusto::ReportTemplate]
129
+ # @example
130
+ # api = Gusto::Client.new(
131
+ # base_url: "https://api.example.com",
132
+ # environment: Gusto::Environment::DEMO,
133
+ # token: "YOUR_AUTH_TOKEN"
134
+ # )
135
+ # api.reports.get_template(company_uuid: "company_uuid", report_type: "report_type")
136
+ def get_template(company_uuid:, report_type:, request_options: nil)
137
+ response = @request_client.conn.get do | req |
138
+ unless request_options&.timeout_in_seconds.nil?
139
+ req.options.timeout = request_options.timeout_in_seconds
140
+ end
141
+ unless request_options&.token.nil?
142
+ req.headers["Authorization"] = request_options.token
143
+ end
144
+ unless request_options&.gusto_api_version.nil?
145
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
146
+ end
147
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
148
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
149
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
150
+ end
151
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
152
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
153
+ end
154
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/report_templates/#{report_type}"
155
+ end
156
+ Gusto::ReportTemplate.from_json(json_object: response.body)
157
+ end
158
+ end
159
+ class AsyncReportsClient
160
+ # @return [Gusto::AsyncRequestClient]
161
+ attr_reader :request_client
162
+
163
+
164
+ # @param request_client [Gusto::RequestClient]
165
+ # @return [Gusto::AsyncReportsClient]
166
+ def initialize(request_client:)
167
+ @request_client = request_client
168
+ end
169
+ # Create a custom report for a company. This endpoint initiates creating a custom
170
+ # report with custom columns, groupings, and filters. The `request_uuid` in the
171
+ # response can then be used to poll for the status and report URL upon completion
172
+ # using the report GET endpoint.
173
+ # scope: `company_reports:write`
174
+ #
175
+ # @param company_uuid [String] The UUID of the company
176
+ # @param columns [Array<Gusto::Reports::ReportsCreateRequestColumnsItem>] Columns to include in the report
177
+ # @param groupings [Array<Gusto::Reports::ReportsCreateRequestGroupingsItem>] How to group the report
178
+ # @param custom_name [String] The title of the report
179
+ # @param file_type [Gusto::Reports::ReportsCreateRequestFileType] The type of file to generate
180
+ # @param with_totals [Boolean] Whether to include subtotals and grand totals in the report
181
+ # @param start_date [String] Start date of data to filter by
182
+ # @param end_date [String] End date of data to filter by
183
+ # @param dismissed_start_date [String] Dismissed start date of employees to filter by
184
+ # @param dismissed_end_date [String] Dismissed end date of employees to filter by
185
+ # @param payment_method [Gusto::Reports::ReportsCreateRequestPaymentMethod] Payment method to filter by
186
+ # @param employment_type [Gusto::Reports::ReportsCreateRequestEmploymentType] Employee employment type to filter by
187
+ # @param employment_status [Gusto::Reports::ReportsCreateRequestEmploymentStatus] Employee employment status to filter by
188
+ # @param employee_uuids [Array<String>] Employees to filter by
189
+ # @param department_uuids [Array<String>] Departments to filter by
190
+ # @param work_address_uuids [Array<String>] Work addresses to filter by
191
+ # @param request_options [Gusto::RequestOptions]
192
+ # @return [Gusto::CreateReport]
193
+ # @example
194
+ # api = Gusto::Client.new(
195
+ # base_url: "https://api.example.com",
196
+ # environment: Gusto::Environment::DEMO,
197
+ # token: "YOUR_AUTH_TOKEN"
198
+ # )
199
+ # api.reports.create(
200
+ # company_uuid: "company_uuid",
201
+ # columns: [BANK_ACCOUNT_ACCOUNT_NUMBER],
202
+ # groupings: [PAYROLL],
203
+ # file_type: CSV
204
+ # )
205
+ def create(company_uuid:, columns:, groupings:, custom_name: nil, file_type:, with_totals: nil, start_date: nil, end_date: nil, dismissed_start_date: nil, dismissed_end_date: nil, payment_method: nil, employment_type: nil, employment_status: nil, employee_uuids: nil, department_uuids: nil, work_address_uuids: nil, request_options: nil)
206
+ Async do
207
+ response = @request_client.conn.post do | req |
208
+ unless request_options&.timeout_in_seconds.nil?
209
+ req.options.timeout = request_options.timeout_in_seconds
210
+ end
211
+ unless request_options&.token.nil?
212
+ req.headers["Authorization"] = request_options.token
213
+ end
214
+ unless request_options&.gusto_api_version.nil?
215
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
216
+ end
217
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
218
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
219
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
220
+ end
221
+ req.body = { **(request_options&.additional_body_parameters || {}), columns: columns, groupings: groupings, custom_name: custom_name, file_type: file_type, with_totals: with_totals, start_date: start_date, end_date: end_date, dismissed_start_date: dismissed_start_date, dismissed_end_date: dismissed_end_date, payment_method: payment_method, employment_type: employment_type, employment_status: employment_status, employee_uuids: employee_uuids, department_uuids: department_uuids, work_address_uuids: work_address_uuids }.compact
222
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/reports"
223
+ end
224
+ Gusto::CreateReport.from_json(json_object: response.body)
225
+ end
226
+ end
227
+ # Get a company's report given the `request_uuid`. The response will include the
228
+ # report request's status and, if complete, the report URL.
229
+ # scope: `company_reports:read`
230
+ #
231
+ # @param report_uuid [String] The UUID of the report request
232
+ # @param request_options [Gusto::RequestOptions]
233
+ # @return [Gusto::Report]
234
+ # @example
235
+ # api = Gusto::Client.new(
236
+ # base_url: "https://api.example.com",
237
+ # environment: Gusto::Environment::DEMO,
238
+ # token: "YOUR_AUTH_TOKEN"
239
+ # )
240
+ # api.reports.get(report_uuid: "report_uuid")
241
+ def get(report_uuid:, request_options: nil)
242
+ Async do
243
+ response = @request_client.conn.get do | req |
244
+ unless request_options&.timeout_in_seconds.nil?
245
+ req.options.timeout = request_options.timeout_in_seconds
246
+ end
247
+ unless request_options&.token.nil?
248
+ req.headers["Authorization"] = request_options.token
249
+ end
250
+ unless request_options&.gusto_api_version.nil?
251
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
252
+ end
253
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
254
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
255
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
256
+ end
257
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
258
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
259
+ end
260
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/reports/#{report_uuid}"
261
+ end
262
+ Gusto::Report.from_json(json_object: response.body)
263
+ end
264
+ end
265
+ # Get a company's report template. The only supported report type is
266
+ # `payroll_journal`. The resulting columns and groupings from this endpoint can be
267
+ # used as a guidance to create the report using the POST create report endpoint.
268
+ # scope: `company_reports:write`
269
+ #
270
+ # @param company_uuid [String] The UUID of the company
271
+ # @param report_type [String] The report type
272
+ # @param request_options [Gusto::RequestOptions]
273
+ # @return [Gusto::ReportTemplate]
274
+ # @example
275
+ # api = Gusto::Client.new(
276
+ # base_url: "https://api.example.com",
277
+ # environment: Gusto::Environment::DEMO,
278
+ # token: "YOUR_AUTH_TOKEN"
279
+ # )
280
+ # api.reports.get_template(company_uuid: "company_uuid", report_type: "report_type")
281
+ def get_template(company_uuid:, report_type:, request_options: nil)
282
+ Async do
283
+ response = @request_client.conn.get do | req |
284
+ unless request_options&.timeout_in_seconds.nil?
285
+ req.options.timeout = request_options.timeout_in_seconds
286
+ end
287
+ unless request_options&.token.nil?
288
+ req.headers["Authorization"] = request_options.token
289
+ end
290
+ unless request_options&.gusto_api_version.nil?
291
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
292
+ end
293
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
294
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
295
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
296
+ end
297
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
298
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
299
+ end
300
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/report_templates/#{report_type}"
301
+ end
302
+ Gusto::ReportTemplate.from_json(json_object: response.body)
303
+ end
304
+ end
305
+ end
306
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ class ReportsCreateRequestColumnsItem
6
+
7
+ BANK_ACCOUNT_ACCOUNT_NUMBER = "bank_account_account_number"
8
+ BANK_ACCOUNT_ROUTING_NUMBER = "bank_account_routing_number"
9
+ BANK_ACCOUNT_TYPE = "bank_account_type"
10
+ BANK_ACCOUNT = "bank_account"
11
+ BONUS = "bonus"
12
+ CASH_TIPS = "cash_tips"
13
+ CHECK_AMOUNT = "check_amount"
14
+ CHECK_DATE = "check_date"
15
+ COMMISSION = "commission"
16
+ DATE_OF_BIRTH = "date_of_birth"
17
+ DOUBLE_OVERTIME_EARNINGS = "double_overtime_earnings"
18
+ DOUBLE_OVERTIME_HOURS = "double_overtime_hours"
19
+ DOUBLE_OVERTIME_RATE = "double_overtime_rate"
20
+ EMPLOYEE_ADDITIONAL_TAXES = "employee_additional_taxes"
21
+ EMPLOYEE_BENEFIT_CONTRIBUTIONS = "employee_benefit_contributions"
22
+ EMPLOYEE_COMPENSATION_TIME_PERIOD = "employee_compensation_time_period"
23
+ EMPLOYEE_COMPENSATION = "employee_compensation"
24
+ EMPLOYEE_DEDUCTIONS = "employee_deductions"
25
+ EMPLOYEE_DEPARTMENT = "employee_department"
26
+ EMPLOYEE_EMAIL = "employee_email"
27
+ EMPLOYEE_FEDERAL_INCOME_TAX = "employee_federal_income_tax"
28
+ EMPLOYEE_FIRST_NAME = "employee_first_name"
29
+ EMPLOYEE_LAST_NAME = "employee_last_name"
30
+ EMPLOYEE_MIDDLE_INITIAL = "employee_middle_initial"
31
+ EMPLOYEE_MEDICARE_ADDITIONAL_TAX = "employee_medicare_additional_tax"
32
+ EMPLOYEE_MEDICARE_TAX = "employee_medicare_tax"
33
+ EMPLOYEE_PHONE_NUMBER = "employee_phone_number"
34
+ EMPLOYEE_SOCIAL_SECURITY_TAX = "employee_social_security_tax"
35
+ EMPLOYEE_TAXES = "employee_taxes"
36
+ EMPLOYEE_WORK_EMAIL = "employee_work_email"
37
+ EMPLOYER_ADDITIONAL_TAXES = "employer_additional_taxes"
38
+ EMPLOYER_BENEFIT_CONTRIBUTIONS = "employer_benefit_contributions"
39
+ EMPLOYER_COST = "employer_cost"
40
+ EMPLOYER_FUTA_TAX = "employer_futa_tax"
41
+ EMPLOYER_MEDICARE_TAX = "employer_medicare_tax"
42
+ EMPLOYER_SOCIAL_SECURITY_TAX = "employer_social_security_tax"
43
+ EMPLOYER_SUTA_TAX = "employer_suta_tax"
44
+ EMPLOYER_TAXES = "employer_taxes"
45
+ EMPLOYMENT_TYPE = "employment_type"
46
+ EMPLOYMENT = "employment"
47
+ END_DATE = "end_date"
48
+ GARNISHMENTS = "garnishments"
49
+ GROSS_EARNINGS = "gross_earnings"
50
+ HOLIDAY_EARNINGS = "holiday_earnings"
51
+ HOLIDAY_HOURS = "holiday_hours"
52
+ HOME_ADDRESS_CITY = "home_address_city"
53
+ HOME_ADDRESS_STATE = "home_address_state"
54
+ HOME_ADDRESS_STREET = "home_address_street"
55
+ HOME_ADDRESS_ZIP = "home_address_zip"
56
+ HOME_ADDRESS = "home_address"
57
+ JOB_TITLE = "job_title"
58
+ NET_PAY = "net_pay"
59
+ ONE_TIME_REIMBURSEMENTS = "one_time_reimbursements"
60
+ OVERTIME_EARNINGS = "overtime_earnings"
61
+ OVERTIME_HOURS = "overtime_hours"
62
+ OVERTIME_RATE = "overtime_rate"
63
+ PAID_TIME_OFF_EARNINGS = "paid_time_off_earnings"
64
+ PAID_TIME_OFF_HOURS = "paid_time_off_hours"
65
+ PAID_TIME_OFF_RATE = "paid_time_off_rate"
66
+ PAY_PERIOD_END = "pay_period_end"
67
+ PAY_PERIOD_START = "pay_period_start"
68
+ PAYCHECK_TIPS = "paycheck_tips"
69
+ PAYMENT_METHOD = "payment_method"
70
+ PAYROLL_TYPE = "payroll_type"
71
+ PREFERRED_FIRST_NAME = "preferred_first_name"
72
+ RECURRING_REIMBURSEMENTS = "recurring_reimbursements"
73
+ REGULAR_EARNINGS = "regular_earnings"
74
+ REGULAR_HOURS = "regular_hours"
75
+ REGULAR_RATE = "regular_rate"
76
+ REIMBURSEMENTS = "reimbursements"
77
+ RISK_CLASS_CODE = "risk_class_code"
78
+ SICK_RATE = "sick_rate"
79
+ SICK_TIME_OFF_EARNINGS = "sick_time_off_earnings"
80
+ SICK_TIME_OFF_HOURS = "sick_time_off_hours"
81
+ START_DATE = "start_date"
82
+ TOTAL_EMPLOYER_BENEFIT_CONTRIBUTIONS = "total_employer_benefit_contributions"
83
+ TOTAL_TIME_OFF_EARNINGS = "total_time_off_earnings"
84
+ TOTAL_TIME_OFF_HOURS = "total_time_off_hours"
85
+ WORK_ADDRESS_CITY = "work_address_city"
86
+ WORK_ADDRESS_STREET = "work_address_street"
87
+ WORK_ADDRESS_ZIP = "work_address_zip"
88
+
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ # Employee employment status to filter by
6
+ class ReportsCreateRequestEmploymentStatus
7
+
8
+ ACTIVE_FULL_TIME = "active_full_time"
9
+ ACTIVE_PART_TIME = "active_part_time"
10
+ ACTIVE_PART_TIME_ELIGIBLE = "active_part_time_eligible"
11
+ ACTIVE_VARIABLE = "active_variable"
12
+ ACTIVE_SEASONAL = "active_seasonal"
13
+ ACTIVE = "active"
14
+ DISMISSED = "dismissed"
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ # Employee employment type to filter by
6
+ class ReportsCreateRequestEmploymentType
7
+
8
+ EXEMPT = "exempt"
9
+ SALARIED_NONEXEMPT = "salaried_nonexempt"
10
+ NONEXEMPT = "nonexempt"
11
+ COMMISSION_ONLY_EXEMPT = "commission_only_exempt"
12
+ COMMISSION_ONLY_NONEXEMPT = "commission_only_nonexempt"
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ # The type of file to generate
6
+ class ReportsCreateRequestFileType
7
+
8
+ CSV = "csv"
9
+ JSON_ = "json"
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ class ReportsCreateRequestGroupingsItem
6
+
7
+ PAYROLL = "payroll"
8
+ EMPLOYEE = "employee"
9
+ WORK_ADDRESS = "work_address"
10
+ WORK_ADDRESS_STATE = "work_address_state"
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Reports
5
+ # Payment method to filter by
6
+ class ReportsCreateRequestPaymentMethod
7
+
8
+ CHECK = "check"
9
+ DIRECT_DEPOSIT = "direct_deposit"
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+ require_relative "signatory_identity_verification_status"
3
+ require_relative "signatory_home_address"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Gusto
8
+ module Signatories
9
+ # The representation of a company's signatory
10
+ class Signatory
11
+ # @return [String]
12
+ attr_reader :uuid
13
+ # @return [String]
14
+ attr_reader :first_name
15
+ # @return [String]
16
+ attr_reader :last_name
17
+ # @return [String]
18
+ attr_reader :title
19
+ # @return [String]
20
+ attr_reader :phone
21
+ # @return [String]
22
+ attr_reader :email
23
+ # @return [String]
24
+ attr_reader :birthday
25
+ # @return [Boolean] Whether or not the signatory is also the payroll admin of the company.
26
+ attr_reader :is_admin
27
+ # @return [Boolean] Indicates whether the signatory has an SSN in Gusto.
28
+ attr_reader :has_ssn
29
+ # @return [String] The current version of the signatory. See the [versioning
30
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
31
+ # on how to use this field.
32
+ attr_reader :version
33
+ # @return [Gusto::Signatories::SignatoryIdentityVerificationStatus] | |
34
+ # |
35
+ # | ---------- |
36
+ # --------------------------------------------------------------------------------
37
+ # |
38
+ # | **Status** | **Description**
39
+ # |
40
+ # | Pass | Signatory can sign all forms
41
+ # |
42
+ # | Fail | Signatory cannot sign forms
43
+ # |
44
+ # | Skipped | Signatory cannot sign Form 8655 until the form is manually
45
+ # uploaded as wet-signed |
46
+ # | null | Identity verification process has not been completed
47
+ # |
48
+ attr_reader :identity_verification_status
49
+ # @return [Gusto::Signatories::SignatoryHomeAddress]
50
+ attr_reader :home_address
51
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
52
+ attr_reader :additional_properties
53
+ # @return [Object]
54
+ attr_reader :_field_set
55
+ protected :_field_set
56
+
57
+ OMIT = Object.new
58
+
59
+ # @param uuid [String]
60
+ # @param first_name [String]
61
+ # @param last_name [String]
62
+ # @param title [String]
63
+ # @param phone [String]
64
+ # @param email [String]
65
+ # @param birthday [String]
66
+ # @param is_admin [Boolean] Whether or not the signatory is also the payroll admin of the company.
67
+ # @param has_ssn [Boolean] Indicates whether the signatory has an SSN in Gusto.
68
+ # @param version [String] The current version of the signatory. See the [versioning
69
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
70
+ # on how to use this field.
71
+ # @param identity_verification_status [Gusto::Signatories::SignatoryIdentityVerificationStatus] | |
72
+ # |
73
+ # | ---------- |
74
+ # --------------------------------------------------------------------------------
75
+ # |
76
+ # | **Status** | **Description**
77
+ # |
78
+ # | Pass | Signatory can sign all forms
79
+ # |
80
+ # | Fail | Signatory cannot sign forms
81
+ # |
82
+ # | Skipped | Signatory cannot sign Form 8655 until the form is manually
83
+ # uploaded as wet-signed |
84
+ # | null | Identity verification process has not been completed
85
+ # |
86
+ # @param home_address [Gusto::Signatories::SignatoryHomeAddress]
87
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
88
+ # @return [Gusto::Signatories::Signatory]
89
+ def initialize(uuid:, first_name: OMIT, last_name: OMIT, title: OMIT, phone: OMIT, email: OMIT, birthday: OMIT, is_admin: OMIT, has_ssn: OMIT, version: OMIT, identity_verification_status: OMIT, home_address: OMIT, additional_properties: nil)
90
+ @uuid = uuid
91
+ @first_name = first_name if first_name != OMIT
92
+ @last_name = last_name if last_name != OMIT
93
+ @title = title if title != OMIT
94
+ @phone = phone if phone != OMIT
95
+ @email = email if email != OMIT
96
+ @birthday = birthday if birthday != OMIT
97
+ @is_admin = is_admin if is_admin != OMIT
98
+ @has_ssn = has_ssn if has_ssn != OMIT
99
+ @version = version if version != OMIT
100
+ @identity_verification_status = identity_verification_status if identity_verification_status != OMIT
101
+ @home_address = home_address if home_address != OMIT
102
+ @additional_properties = additional_properties
103
+ @_field_set = { "uuid": uuid, "first_name": first_name, "last_name": last_name, "title": title, "phone": phone, "email": email, "birthday": birthday, "is_admin": is_admin, "has_ssn": has_ssn, "version": version, "identity_verification_status": identity_verification_status, "home_address": home_address }.reject do | _k, v |
104
+ v == OMIT
105
+ end
106
+ end
107
+ # Deserialize a JSON object to an instance of Signatory
108
+ #
109
+ # @param json_object [String]
110
+ # @return [Gusto::Signatories::Signatory]
111
+ def self.from_json(json_object:)
112
+ struct = JSON.parse(json_object, object_class: OpenStruct)
113
+ parsed_json = JSON.parse(json_object)
114
+ uuid = parsed_json["uuid"]
115
+ first_name = parsed_json["first_name"]
116
+ last_name = parsed_json["last_name"]
117
+ title = parsed_json["title"]
118
+ phone = parsed_json["phone"]
119
+ email = parsed_json["email"]
120
+ birthday = parsed_json["birthday"]
121
+ is_admin = parsed_json["is_admin"]
122
+ has_ssn = parsed_json["has_ssn"]
123
+ version = parsed_json["version"]
124
+ identity_verification_status = parsed_json["identity_verification_status"]
125
+ unless parsed_json["home_address"].nil?
126
+ home_address = parsed_json["home_address"].to_json
127
+ home_address = Gusto::Signatories::SignatoryHomeAddress.from_json(json_object: home_address)
128
+ else
129
+ home_address = nil
130
+ end
131
+ new(
132
+ uuid: uuid,
133
+ first_name: first_name,
134
+ last_name: last_name,
135
+ title: title,
136
+ phone: phone,
137
+ email: email,
138
+ birthday: birthday,
139
+ is_admin: is_admin,
140
+ has_ssn: has_ssn,
141
+ version: version,
142
+ identity_verification_status: identity_verification_status,
143
+ home_address: home_address,
144
+ additional_properties: struct
145
+ )
146
+ end
147
+ # Serialize an instance of Signatory to a JSON object
148
+ #
149
+ # @return [String]
150
+ def to_json
151
+ @_field_set&.to_json
152
+ end
153
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
154
+ # hash and check each fields type against the current object's property
155
+ # definitions.
156
+ #
157
+ # @param obj [Object]
158
+ # @return [Void]
159
+ def self.validate_raw(obj:)
160
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
161
+ obj.first_name&.is_a?(String) != false || raise("Passed value for field obj.first_name is not the expected type, validation failed.")
162
+ obj.last_name&.is_a?(String) != false || raise("Passed value for field obj.last_name is not the expected type, validation failed.")
163
+ obj.title&.is_a?(String) != false || raise("Passed value for field obj.title is not the expected type, validation failed.")
164
+ obj.phone&.is_a?(String) != false || raise("Passed value for field obj.phone is not the expected type, validation failed.")
165
+ obj.email&.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
166
+ obj.birthday&.is_a?(String) != false || raise("Passed value for field obj.birthday is not the expected type, validation failed.")
167
+ obj.is_admin&.is_a?(Boolean) != false || raise("Passed value for field obj.is_admin is not the expected type, validation failed.")
168
+ obj.has_ssn&.is_a?(Boolean) != false || raise("Passed value for field obj.has_ssn is not the expected type, validation failed.")
169
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
170
+ obj.identity_verification_status&.is_a?(Gusto::Signatories::SignatoryIdentityVerificationStatus) != false || raise("Passed value for field obj.identity_verification_status is not the expected type, validation failed.")
171
+ obj.home_address.nil? || Gusto::Signatories::SignatoryHomeAddress.validate_raw(obj: obj.home_address)
172
+ end
173
+ end
174
+ end
175
+ end