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,95 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employments_get_history_response_item_employment_status"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module Employees
8
+ module Employments
9
+ class EmploymentsGetHistoryResponseItem
10
+ # @return [String] The employee's start day of work for an employment.
11
+ attr_reader :hire_date
12
+ # @return [String] The employee's last day of work for an employment.
13
+ attr_reader :termination_date
14
+ # @return [Boolean] The boolean flag indicating whether Gusto will file a new hire report for the
15
+ # employee.
16
+ attr_reader :file_new_hire_report
17
+ # @return [Boolean] Whether the employee is a two percent shareholder of the company. This field
18
+ # only applies to companies with an S-Corp entity type.
19
+ attr_reader :two_percent_shareholder
20
+ # @return [Gusto::Employees::Employments::EmploymentsGetHistoryResponseItemEmploymentStatus] The employee's employment status. Supplying an invalid option will set the
21
+ # employment_status to _not_set_.
22
+ attr_reader :employment_status
23
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
24
+ attr_reader :additional_properties
25
+ # @return [Object]
26
+ attr_reader :_field_set
27
+ protected :_field_set
28
+
29
+ OMIT = Object.new
30
+
31
+ # @param hire_date [String] The employee's start day of work for an employment.
32
+ # @param termination_date [String] The employee's last day of work for an employment.
33
+ # @param file_new_hire_report [Boolean] The boolean flag indicating whether Gusto will file a new hire report for the
34
+ # employee.
35
+ # @param two_percent_shareholder [Boolean] Whether the employee is a two percent shareholder of the company. This field
36
+ # only applies to companies with an S-Corp entity type.
37
+ # @param employment_status [Gusto::Employees::Employments::EmploymentsGetHistoryResponseItemEmploymentStatus] The employee's employment status. Supplying an invalid option will set the
38
+ # employment_status to _not_set_.
39
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
40
+ # @return [Gusto::Employees::Employments::EmploymentsGetHistoryResponseItem]
41
+ def initialize(hire_date: OMIT, termination_date: OMIT, file_new_hire_report: OMIT, two_percent_shareholder: OMIT, employment_status: OMIT, additional_properties: nil)
42
+ @hire_date = hire_date if hire_date != OMIT
43
+ @termination_date = termination_date if termination_date != OMIT
44
+ @file_new_hire_report = file_new_hire_report if file_new_hire_report != OMIT
45
+ @two_percent_shareholder = two_percent_shareholder if two_percent_shareholder != OMIT
46
+ @employment_status = employment_status if employment_status != OMIT
47
+ @additional_properties = additional_properties
48
+ @_field_set = { "hire_date": hire_date, "termination_date": termination_date, "file_new_hire_report": file_new_hire_report, "two_percent_shareholder": two_percent_shareholder, "employment_status": employment_status }.reject do | _k, v |
49
+ v == OMIT
50
+ end
51
+ end
52
+ # Deserialize a JSON object to an instance of EmploymentsGetHistoryResponseItem
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Gusto::Employees::Employments::EmploymentsGetHistoryResponseItem]
56
+ def self.from_json(json_object:)
57
+ struct = JSON.parse(json_object, object_class: OpenStruct)
58
+ parsed_json = JSON.parse(json_object)
59
+ hire_date = parsed_json["hire_date"]
60
+ termination_date = parsed_json["termination_date"]
61
+ file_new_hire_report = parsed_json["file_new_hire_report"]
62
+ two_percent_shareholder = parsed_json["two_percent_shareholder"]
63
+ employment_status = parsed_json["employment_status"]
64
+ new(
65
+ hire_date: hire_date,
66
+ termination_date: termination_date,
67
+ file_new_hire_report: file_new_hire_report,
68
+ two_percent_shareholder: two_percent_shareholder,
69
+ employment_status: employment_status,
70
+ additional_properties: struct
71
+ )
72
+ end
73
+ # Serialize an instance of EmploymentsGetHistoryResponseItem to a JSON object
74
+ #
75
+ # @return [String]
76
+ def to_json
77
+ @_field_set&.to_json
78
+ end
79
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
80
+ # hash and check each fields type against the current object's property
81
+ # definitions.
82
+ #
83
+ # @param obj [Object]
84
+ # @return [Void]
85
+ def self.validate_raw(obj:)
86
+ obj.hire_date&.is_a?(String) != false || raise("Passed value for field obj.hire_date is not the expected type, validation failed.")
87
+ obj.termination_date&.is_a?(String) != false || raise("Passed value for field obj.termination_date is not the expected type, validation failed.")
88
+ obj.file_new_hire_report&.is_a?(Boolean) != false || raise("Passed value for field obj.file_new_hire_report is not the expected type, validation failed.")
89
+ obj.two_percent_shareholder&.is_a?(Boolean) != false || raise("Passed value for field obj.two_percent_shareholder is not the expected type, validation failed.")
90
+ obj.employment_status&.is_a?(Gusto::Employees::Employments::EmploymentsGetHistoryResponseItemEmploymentStatus) != false || raise("Passed value for field obj.employment_status is not the expected type, validation failed.")
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module Employments
6
+ # The employee's employment status. Supplying an invalid option will set the
7
+ # employment_status to _not_set_.
8
+ class EmploymentsGetHistoryResponseItemEmploymentStatus
9
+
10
+ PART_TIME = "part_time"
11
+ FULL_TIME = "full_time"
12
+ PART_TIME_ELIGIBLE = "part_time_eligible"
13
+ VARIABLE = "variable"
14
+ SEASONAL = "seasonal"
15
+ NOT_SET = "not_set"
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,433 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "types/forms_generate_w2response"
4
+ require_relative "../../forms/types/form"
5
+ require "json"
6
+ require_relative "../../types/form_pdf"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require_relative "../../../requests"
13
+
14
+ module Gusto
15
+ module Employees
16
+ class FormsClient
17
+ # @return [Gusto::RequestClient]
18
+ attr_reader :request_client
19
+
20
+
21
+ # @param request_client [Gusto::RequestClient]
22
+ # @return [Gusto::Employees::FormsClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+ # > 🚧 Demo action
27
+ # >
28
+ # > This action is only available in the Demo environment
29
+ # Generates a W2 document for testing purposes.
30
+ # scope: `employees:write`
31
+ #
32
+ # @param employee_id [String] The employee UUID.
33
+ # @param year [Integer] Must be equal to or more recent than 2015. If not specified, defaults to the
34
+ # previous year.
35
+ # @param request_options [Gusto::RequestOptions]
36
+ # @return [Gusto::Employees::Forms::FormsGenerateW2Response]
37
+ # @example
38
+ # api = Gusto::Client.new(
39
+ # base_url: "https://api.example.com",
40
+ # environment: Gusto::Environment::DEMO,
41
+ # token: "YOUR_AUTH_TOKEN"
42
+ # )
43
+ # api.employees.forms.generate_w2(employee_id: "employee_id")
44
+ def generate_w2(employee_id:, year: nil, request_options: nil)
45
+ response = @request_client.conn.post do | req |
46
+ unless request_options&.timeout_in_seconds.nil?
47
+ req.options.timeout = request_options.timeout_in_seconds
48
+ end
49
+ unless request_options&.token.nil?
50
+ req.headers["Authorization"] = request_options.token
51
+ end
52
+ unless request_options&.gusto_api_version.nil?
53
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
54
+ end
55
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
56
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
57
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
58
+ end
59
+ req.body = { **(request_options&.additional_body_parameters || {}), employee_id: employee_id, year: year }.compact
60
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/sandbox/generate_w2"
61
+ end
62
+ Gusto::Employees::Forms::FormsGenerateW2Response.from_json(json_object: response.body)
63
+ end
64
+ # Get a list of all employee's forms
65
+ # scope: `employee_forms:read`
66
+ #
67
+ # @param employee_id [String] The UUID of the employee
68
+ # @param request_options [Gusto::RequestOptions]
69
+ # @return [Array<Gusto::Forms::Form>]
70
+ # @example
71
+ # api = Gusto::Client.new(
72
+ # base_url: "https://api.example.com",
73
+ # environment: Gusto::Environment::DEMO,
74
+ # token: "YOUR_AUTH_TOKEN"
75
+ # )
76
+ # api.employees.forms.list(employee_id: "employee_id")
77
+ def list(employee_id:, request_options: nil)
78
+ response = @request_client.conn.get do | req |
79
+ unless request_options&.timeout_in_seconds.nil?
80
+ req.options.timeout = request_options.timeout_in_seconds
81
+ end
82
+ unless request_options&.token.nil?
83
+ req.headers["Authorization"] = request_options.token
84
+ end
85
+ unless request_options&.gusto_api_version.nil?
86
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
87
+ end
88
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
89
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
90
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
91
+ end
92
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
93
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
94
+ end
95
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms"
96
+ end
97
+ parsed_json = JSON.parse(response.body)
98
+ parsed_json&.map do | item |
99
+ item = item.to_json
100
+ Gusto::Forms::Form.from_json(json_object: item)
101
+ end
102
+ end
103
+ # Get an employee form
104
+ # scope: `employee_forms:read`
105
+ #
106
+ # @param employee_id [String] The UUID of the employee
107
+ # @param form_id [String] The UUID of the form
108
+ # @param request_options [Gusto::RequestOptions]
109
+ # @return [Gusto::Forms::Form]
110
+ # @example
111
+ # api = Gusto::Client.new(
112
+ # base_url: "https://api.example.com",
113
+ # environment: Gusto::Environment::DEMO,
114
+ # token: "YOUR_AUTH_TOKEN"
115
+ # )
116
+ # api.employees.forms.get(employee_id: "employee_id", form_id: "form_id")
117
+ def get(employee_id:, form_id:, request_options: nil)
118
+ response = @request_client.conn.get do | req |
119
+ unless request_options&.timeout_in_seconds.nil?
120
+ req.options.timeout = request_options.timeout_in_seconds
121
+ end
122
+ unless request_options&.token.nil?
123
+ req.headers["Authorization"] = request_options.token
124
+ end
125
+ unless request_options&.gusto_api_version.nil?
126
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
127
+ end
128
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
129
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
130
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
131
+ end
132
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
133
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
134
+ end
135
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}"
136
+ end
137
+ Gusto::Forms::Form.from_json(json_object: response.body)
138
+ end
139
+ # Get the link to the form PDF
140
+ # scope: `employee_forms:read`
141
+ #
142
+ # @param employee_id [String] The UUID of the employee
143
+ # @param form_id [String] The UUID of the form
144
+ # @param request_options [Gusto::RequestOptions]
145
+ # @return [Gusto::FormPdf]
146
+ # @example
147
+ # api = Gusto::Client.new(
148
+ # base_url: "https://api.example.com",
149
+ # environment: Gusto::Environment::DEMO,
150
+ # token: "YOUR_AUTH_TOKEN"
151
+ # )
152
+ # api.employees.forms.get_pdf(employee_id: "employee_id", form_id: "form_id")
153
+ def get_pdf(employee_id:, form_id:, request_options: nil)
154
+ response = @request_client.conn.get do | req |
155
+ unless request_options&.timeout_in_seconds.nil?
156
+ req.options.timeout = request_options.timeout_in_seconds
157
+ end
158
+ unless request_options&.token.nil?
159
+ req.headers["Authorization"] = request_options.token
160
+ end
161
+ unless request_options&.gusto_api_version.nil?
162
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
163
+ end
164
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
165
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
166
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
167
+ end
168
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
169
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
170
+ end
171
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}/pdf"
172
+ end
173
+ Gusto::FormPdf.from_json(json_object: response.body)
174
+ end
175
+ # Sign an employee form
176
+ # scope: `employee_forms:sign`
177
+ #
178
+ # @param employee_id [String] The UUID of the employee
179
+ # @param form_id [String] The UUID of the form
180
+ # @param signature_text [String] The signature
181
+ # @param agree [Boolean] whether you agree to sign electronically
182
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
183
+ # @param request_options [Gusto::RequestOptions]
184
+ # @return [Gusto::Forms::Form]
185
+ # @example
186
+ # api = Gusto::Client.new(
187
+ # base_url: "https://api.example.com",
188
+ # environment: Gusto::Environment::DEMO,
189
+ # token: "YOUR_AUTH_TOKEN"
190
+ # )
191
+ # api.employees.forms.sign(
192
+ # employee_id: "employee_id",
193
+ # form_id: "form_id",
194
+ # signature_text: "Jane Smith",
195
+ # agree: true,
196
+ # signed_by_ip_address: "192.168.0.1"
197
+ # )
198
+ def sign(employee_id:, form_id:, signature_text:, agree:, signed_by_ip_address:, request_options: nil)
199
+ response = @request_client.conn.put do | req |
200
+ unless request_options&.timeout_in_seconds.nil?
201
+ req.options.timeout = request_options.timeout_in_seconds
202
+ end
203
+ unless request_options&.token.nil?
204
+ req.headers["Authorization"] = request_options.token
205
+ end
206
+ unless request_options&.gusto_api_version.nil?
207
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
208
+ end
209
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
210
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
211
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
212
+ end
213
+ req.body = { **(request_options&.additional_body_parameters || {}), signature_text: signature_text, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
214
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}/sign"
215
+ end
216
+ Gusto::Forms::Form.from_json(json_object: response.body)
217
+ end
218
+ end
219
+ class AsyncFormsClient
220
+ # @return [Gusto::AsyncRequestClient]
221
+ attr_reader :request_client
222
+
223
+
224
+ # @param request_client [Gusto::RequestClient]
225
+ # @return [Gusto::Employees::AsyncFormsClient]
226
+ def initialize(request_client:)
227
+ @request_client = request_client
228
+ end
229
+ # > 🚧 Demo action
230
+ # >
231
+ # > This action is only available in the Demo environment
232
+ # Generates a W2 document for testing purposes.
233
+ # scope: `employees:write`
234
+ #
235
+ # @param employee_id [String] The employee UUID.
236
+ # @param year [Integer] Must be equal to or more recent than 2015. If not specified, defaults to the
237
+ # previous year.
238
+ # @param request_options [Gusto::RequestOptions]
239
+ # @return [Gusto::Employees::Forms::FormsGenerateW2Response]
240
+ # @example
241
+ # api = Gusto::Client.new(
242
+ # base_url: "https://api.example.com",
243
+ # environment: Gusto::Environment::DEMO,
244
+ # token: "YOUR_AUTH_TOKEN"
245
+ # )
246
+ # api.employees.forms.generate_w2(employee_id: "employee_id")
247
+ def generate_w2(employee_id:, year: nil, request_options: nil)
248
+ Async do
249
+ response = @request_client.conn.post do | req |
250
+ unless request_options&.timeout_in_seconds.nil?
251
+ req.options.timeout = request_options.timeout_in_seconds
252
+ end
253
+ unless request_options&.token.nil?
254
+ req.headers["Authorization"] = request_options.token
255
+ end
256
+ unless request_options&.gusto_api_version.nil?
257
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
258
+ end
259
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
260
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
261
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
262
+ end
263
+ req.body = { **(request_options&.additional_body_parameters || {}), employee_id: employee_id, year: year }.compact
264
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/sandbox/generate_w2"
265
+ end
266
+ Gusto::Employees::Forms::FormsGenerateW2Response.from_json(json_object: response.body)
267
+ end
268
+ end
269
+ # Get a list of all employee's forms
270
+ # scope: `employee_forms:read`
271
+ #
272
+ # @param employee_id [String] The UUID of the employee
273
+ # @param request_options [Gusto::RequestOptions]
274
+ # @return [Array<Gusto::Forms::Form>]
275
+ # @example
276
+ # api = Gusto::Client.new(
277
+ # base_url: "https://api.example.com",
278
+ # environment: Gusto::Environment::DEMO,
279
+ # token: "YOUR_AUTH_TOKEN"
280
+ # )
281
+ # api.employees.forms.list(employee_id: "employee_id")
282
+ def list(employee_id:, request_options: nil)
283
+ Async do
284
+ response = @request_client.conn.get do | req |
285
+ unless request_options&.timeout_in_seconds.nil?
286
+ req.options.timeout = request_options.timeout_in_seconds
287
+ end
288
+ unless request_options&.token.nil?
289
+ req.headers["Authorization"] = request_options.token
290
+ end
291
+ unless request_options&.gusto_api_version.nil?
292
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
293
+ end
294
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
295
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
296
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
297
+ end
298
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
299
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
300
+ end
301
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms"
302
+ end
303
+ parsed_json = JSON.parse(response.body)
304
+ parsed_json&.map do | item |
305
+ item = item.to_json
306
+ Gusto::Forms::Form.from_json(json_object: item)
307
+ end
308
+ end
309
+ end
310
+ # Get an employee form
311
+ # scope: `employee_forms:read`
312
+ #
313
+ # @param employee_id [String] The UUID of the employee
314
+ # @param form_id [String] The UUID of the form
315
+ # @param request_options [Gusto::RequestOptions]
316
+ # @return [Gusto::Forms::Form]
317
+ # @example
318
+ # api = Gusto::Client.new(
319
+ # base_url: "https://api.example.com",
320
+ # environment: Gusto::Environment::DEMO,
321
+ # token: "YOUR_AUTH_TOKEN"
322
+ # )
323
+ # api.employees.forms.get(employee_id: "employee_id", form_id: "form_id")
324
+ def get(employee_id:, form_id:, request_options: nil)
325
+ Async do
326
+ response = @request_client.conn.get do | req |
327
+ unless request_options&.timeout_in_seconds.nil?
328
+ req.options.timeout = request_options.timeout_in_seconds
329
+ end
330
+ unless request_options&.token.nil?
331
+ req.headers["Authorization"] = request_options.token
332
+ end
333
+ unless request_options&.gusto_api_version.nil?
334
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
335
+ end
336
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
337
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
338
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
339
+ end
340
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
341
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
342
+ end
343
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}"
344
+ end
345
+ Gusto::Forms::Form.from_json(json_object: response.body)
346
+ end
347
+ end
348
+ # Get the link to the form PDF
349
+ # scope: `employee_forms:read`
350
+ #
351
+ # @param employee_id [String] The UUID of the employee
352
+ # @param form_id [String] The UUID of the form
353
+ # @param request_options [Gusto::RequestOptions]
354
+ # @return [Gusto::FormPdf]
355
+ # @example
356
+ # api = Gusto::Client.new(
357
+ # base_url: "https://api.example.com",
358
+ # environment: Gusto::Environment::DEMO,
359
+ # token: "YOUR_AUTH_TOKEN"
360
+ # )
361
+ # api.employees.forms.get_pdf(employee_id: "employee_id", form_id: "form_id")
362
+ def get_pdf(employee_id:, form_id:, request_options: nil)
363
+ Async do
364
+ response = @request_client.conn.get do | req |
365
+ unless request_options&.timeout_in_seconds.nil?
366
+ req.options.timeout = request_options.timeout_in_seconds
367
+ end
368
+ unless request_options&.token.nil?
369
+ req.headers["Authorization"] = request_options.token
370
+ end
371
+ unless request_options&.gusto_api_version.nil?
372
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
373
+ end
374
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
375
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
376
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
377
+ end
378
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
379
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
380
+ end
381
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}/pdf"
382
+ end
383
+ Gusto::FormPdf.from_json(json_object: response.body)
384
+ end
385
+ end
386
+ # Sign an employee form
387
+ # scope: `employee_forms:sign`
388
+ #
389
+ # @param employee_id [String] The UUID of the employee
390
+ # @param form_id [String] The UUID of the form
391
+ # @param signature_text [String] The signature
392
+ # @param agree [Boolean] whether you agree to sign electronically
393
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
394
+ # @param request_options [Gusto::RequestOptions]
395
+ # @return [Gusto::Forms::Form]
396
+ # @example
397
+ # api = Gusto::Client.new(
398
+ # base_url: "https://api.example.com",
399
+ # environment: Gusto::Environment::DEMO,
400
+ # token: "YOUR_AUTH_TOKEN"
401
+ # )
402
+ # api.employees.forms.sign(
403
+ # employee_id: "employee_id",
404
+ # form_id: "form_id",
405
+ # signature_text: "Jane Smith",
406
+ # agree: true,
407
+ # signed_by_ip_address: "192.168.0.1"
408
+ # )
409
+ def sign(employee_id:, form_id:, signature_text:, agree:, signed_by_ip_address:, request_options: nil)
410
+ Async do
411
+ response = @request_client.conn.put do | req |
412
+ unless request_options&.timeout_in_seconds.nil?
413
+ req.options.timeout = request_options.timeout_in_seconds
414
+ end
415
+ unless request_options&.token.nil?
416
+ req.headers["Authorization"] = request_options.token
417
+ end
418
+ unless request_options&.gusto_api_version.nil?
419
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
420
+ end
421
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
422
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
423
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
424
+ end
425
+ req.body = { **(request_options&.additional_body_parameters || {}), signature_text: signature_text, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
426
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/forms/#{form_id}/sign"
427
+ end
428
+ Gusto::Forms::Form.from_json(json_object: response.body)
429
+ end
430
+ end
431
+ end
432
+ end
433
+ end
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Employees
7
+ module Forms
8
+ class FormsGenerateW2Response
9
+ # @return [String] The UUID of the employee
10
+ attr_reader :employee_uuid
11
+ # @return [String] The UUID of the form
12
+ attr_reader :uuid
13
+ # @return [String] The type identifier of the form
14
+ attr_reader :name
15
+ # @return [String] The title of the form
16
+ attr_reader :title
17
+ # @return [String] The description of the form
18
+ attr_reader :description
19
+ # @return [Boolean] If the form is in a draft state. E.g. End of year tax forms may be provided in a
20
+ # draft state prior to being finalized.
21
+ attr_reader :draft
22
+ # @return [Integer] The year of this form. For some forms, e.g. tax forms, this is the year which
23
+ # the form represents. A W2 for January - December 2022 would be delivered in
24
+ # January 2023 and have a year value of 2022. This value is nullable and will not
25
+ # be present on all forms.
26
+ attr_reader :year
27
+ # @return [Integer] The quarter of this form. For some forms, e.g. tax forms, this is the calendar
28
+ # quarter which this form represents. An Employer's Quarterly Federal Tax Return
29
+ # (Form 941) for April, May, June 2022 would have a quarter value of 2 (and a year
30
+ # value of 2022). This value is nullable and will not be present on all forms.
31
+ attr_reader :quarter
32
+ # @return [Boolean] A boolean flag that indicates whether the form needs signing or not. Note that
33
+ # this value will change after the form is signed.
34
+ attr_reader :requires_signing
35
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
36
+ attr_reader :additional_properties
37
+ # @return [Object]
38
+ attr_reader :_field_set
39
+ protected :_field_set
40
+
41
+ OMIT = Object.new
42
+
43
+ # @param employee_uuid [String] The UUID of the employee
44
+ # @param uuid [String] The UUID of the form
45
+ # @param name [String] The type identifier of the form
46
+ # @param title [String] The title of the form
47
+ # @param description [String] The description of the form
48
+ # @param draft [Boolean] If the form is in a draft state. E.g. End of year tax forms may be provided in a
49
+ # draft state prior to being finalized.
50
+ # @param year [Integer] The year of this form. For some forms, e.g. tax forms, this is the year which
51
+ # the form represents. A W2 for January - December 2022 would be delivered in
52
+ # January 2023 and have a year value of 2022. This value is nullable and will not
53
+ # be present on all forms.
54
+ # @param quarter [Integer] The quarter of this form. For some forms, e.g. tax forms, this is the calendar
55
+ # quarter which this form represents. An Employer's Quarterly Federal Tax Return
56
+ # (Form 941) for April, May, June 2022 would have a quarter value of 2 (and a year
57
+ # value of 2022). This value is nullable and will not be present on all forms.
58
+ # @param requires_signing [Boolean] A boolean flag that indicates whether the form needs signing or not. Note that
59
+ # this value will change after the form is signed.
60
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
61
+ # @return [Gusto::Employees::Forms::FormsGenerateW2Response]
62
+ def initialize(employee_uuid: OMIT, uuid:, name: OMIT, title: OMIT, description: OMIT, draft: OMIT, year: OMIT, quarter: OMIT, requires_signing: OMIT, additional_properties: nil)
63
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
64
+ @uuid = uuid
65
+ @name = name if name != OMIT
66
+ @title = title if title != OMIT
67
+ @description = description if description != OMIT
68
+ @draft = draft if draft != OMIT
69
+ @year = year if year != OMIT
70
+ @quarter = quarter if quarter != OMIT
71
+ @requires_signing = requires_signing if requires_signing != OMIT
72
+ @additional_properties = additional_properties
73
+ @_field_set = { "employee_uuid": employee_uuid, "uuid": uuid, "name": name, "title": title, "description": description, "draft": draft, "year": year, "quarter": quarter, "requires_signing": requires_signing }.reject do | _k, v |
74
+ v == OMIT
75
+ end
76
+ end
77
+ # Deserialize a JSON object to an instance of FormsGenerateW2Response
78
+ #
79
+ # @param json_object [String]
80
+ # @return [Gusto::Employees::Forms::FormsGenerateW2Response]
81
+ def self.from_json(json_object:)
82
+ struct = JSON.parse(json_object, object_class: OpenStruct)
83
+ parsed_json = JSON.parse(json_object)
84
+ employee_uuid = parsed_json["employee_uuid"]
85
+ uuid = parsed_json["uuid"]
86
+ name = parsed_json["name"]
87
+ title = parsed_json["title"]
88
+ description = parsed_json["description"]
89
+ draft = parsed_json["draft"]
90
+ year = parsed_json["year"]
91
+ quarter = parsed_json["quarter"]
92
+ requires_signing = parsed_json["requires_signing"]
93
+ new(
94
+ employee_uuid: employee_uuid,
95
+ uuid: uuid,
96
+ name: name,
97
+ title: title,
98
+ description: description,
99
+ draft: draft,
100
+ year: year,
101
+ quarter: quarter,
102
+ requires_signing: requires_signing,
103
+ additional_properties: struct
104
+ )
105
+ end
106
+ # Serialize an instance of FormsGenerateW2Response to a JSON object
107
+ #
108
+ # @return [String]
109
+ def to_json
110
+ @_field_set&.to_json
111
+ end
112
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
113
+ # hash and check each fields type against the current object's property
114
+ # definitions.
115
+ #
116
+ # @param obj [Object]
117
+ # @return [Void]
118
+ def self.validate_raw(obj:)
119
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
120
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
121
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
122
+ obj.title&.is_a?(String) != false || raise("Passed value for field obj.title is not the expected type, validation failed.")
123
+ obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
124
+ obj.draft&.is_a?(Boolean) != false || raise("Passed value for field obj.draft is not the expected type, validation failed.")
125
+ obj.year&.is_a?(Integer) != false || raise("Passed value for field obj.year is not the expected type, validation failed.")
126
+ obj.quarter&.is_a?(Integer) != false || raise("Passed value for field obj.quarter is not the expected type, validation failed.")
127
+ obj.requires_signing&.is_a?(Boolean) != false || raise("Passed value for field obj.requires_signing is not the expected type, validation failed.")
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end