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,885 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../types/employee_address"
4
+ require "json"
5
+ require_relative "../../types/employee_work_address"
6
+ require "async"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require "async"
16
+ require_relative "../../../requests"
17
+
18
+ module Gusto
19
+ module Employees
20
+ class AdressesClient
21
+ # @return [Gusto::RequestClient]
22
+ attr_reader :request_client
23
+
24
+
25
+ # @param request_client [Gusto::RequestClient]
26
+ # @return [Gusto::Employees::AdressesClient]
27
+ def initialize(request_client:)
28
+ @request_client = request_client
29
+ end
30
+ # The home address of an employee is used to determine certain tax information
31
+ # about them. Addresses are geocoded on create and update to ensure validity.
32
+ # Supports home address effective dating and courtesy withholding.
33
+ # scope: `employees:read`
34
+ #
35
+ # @param employee_id [String] The UUID of the employee
36
+ # @param request_options [Gusto::RequestOptions]
37
+ # @return [Array<Gusto::EmployeeAddress>]
38
+ # @example
39
+ # api = Gusto::Client.new(
40
+ # base_url: "https://api.example.com",
41
+ # environment: Gusto::Environment::DEMO,
42
+ # token: "YOUR_AUTH_TOKEN"
43
+ # )
44
+ # api.employees.adresses.get_home_addresses(employee_id: "employee_id")
45
+ def get_home_addresses(employee_id:, request_options: nil)
46
+ response = @request_client.conn.get do | req |
47
+ unless request_options&.timeout_in_seconds.nil?
48
+ req.options.timeout = request_options.timeout_in_seconds
49
+ end
50
+ unless request_options&.token.nil?
51
+ req.headers["Authorization"] = request_options.token
52
+ end
53
+ unless request_options&.gusto_api_version.nil?
54
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
55
+ end
56
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
57
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
58
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
59
+ end
60
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
61
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
62
+ end
63
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/home_addresses"
64
+ end
65
+ parsed_json = JSON.parse(response.body)
66
+ parsed_json&.map do | item |
67
+ item = item.to_json
68
+ Gusto::EmployeeAddress.from_json(json_object: item)
69
+ end
70
+ end
71
+ # The home address of an employee is used to determine certain tax information
72
+ # about them. Addresses are geocoded on create and update to ensure validity.
73
+ # Supports home address effective dating and courtesy withholding.
74
+ # scope: `employees:write`
75
+ #
76
+ # @param employee_id [String] The UUID of the employee
77
+ # @param street1 [String]
78
+ # @param street2 [String]
79
+ # @param city [String]
80
+ # @param state [String]
81
+ # @param zip [String]
82
+ # @param effective_date [String]
83
+ # @param courtesy_withholding [Boolean]
84
+ # @param request_options [Gusto::RequestOptions]
85
+ # @return [Gusto::EmployeeAddress]
86
+ # @example
87
+ # api = Gusto::Client.new(
88
+ # base_url: "https://api.example.com",
89
+ # environment: Gusto::Environment::DEMO,
90
+ # token: "YOUR_AUTH_TOKEN"
91
+ # )
92
+ # api.employees.adresses.create_home_address(
93
+ # employee_id: "employee_id",
94
+ # street1: "300 3rd Street",
95
+ # city: "San Francisco",
96
+ # state: "CA",
97
+ # zip: "94107",
98
+ # effective_date: "2021-01-01",
99
+ # courtesy_withholding: true
100
+ # )
101
+ def create_home_address(employee_id:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, effective_date: nil, courtesy_withholding: nil, request_options: nil)
102
+ response = @request_client.conn.post do | req |
103
+ unless request_options&.timeout_in_seconds.nil?
104
+ req.options.timeout = request_options.timeout_in_seconds
105
+ end
106
+ unless request_options&.token.nil?
107
+ req.headers["Authorization"] = request_options.token
108
+ end
109
+ unless request_options&.gusto_api_version.nil?
110
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
111
+ end
112
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
113
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
114
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
115
+ end
116
+ req.body = { **(request_options&.additional_body_parameters || {}), street_1: street1, street_2: street2, city: city, state: state, zip: zip, effective_date: effective_date, courtesy_withholding: courtesy_withholding }.compact
117
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/home_addresses"
118
+ end
119
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
120
+ end
121
+ # The home address of an employee is used to determine certain tax information
122
+ # about them. Addresses are geocoded on create and update to ensure validity.
123
+ # Supports home address effective dating and courtesy withholding.
124
+ # scope: `employees:read`
125
+ #
126
+ # @param home_address_uuid [String] The UUID of the home address
127
+ # @param request_options [Gusto::RequestOptions]
128
+ # @return [Gusto::EmployeeAddress]
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.employees.adresses.get_home_address(home_address_uuid: "home_address_uuid")
136
+ def get_home_address(home_address_uuid:, 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/home_addresses/#{home_address_uuid}"
155
+ end
156
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
157
+ end
158
+ # The home address of an employee is used to determine certain tax information
159
+ # about them. Addresses are geocoded on create and update to ensure validity.
160
+ # Supports home address effective dating and courtesy withholding.
161
+ # scope: `employees:write`
162
+ #
163
+ # @param home_address_uuid [String] The UUID of the home address
164
+ # @param version [String] The current version of the object. See the [versioning
165
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
166
+ # information on how to use this field.
167
+ # @param street1 [String]
168
+ # @param street2 [String]
169
+ # @param city [String]
170
+ # @param state [String]
171
+ # @param zip [String]
172
+ # @param effective_date [String]
173
+ # @param courtesy_withholding [Boolean]
174
+ # @param request_options [Gusto::RequestOptions]
175
+ # @return [Gusto::EmployeeAddress]
176
+ # @example
177
+ # api = Gusto::Client.new(
178
+ # base_url: "https://api.example.com",
179
+ # environment: Gusto::Environment::DEMO,
180
+ # token: "YOUR_AUTH_TOKEN"
181
+ # )
182
+ # api.employees.adresses.update_home_address(
183
+ # home_address_uuid: "home_address_uuid",
184
+ # version: "fe75bd065ff48b91c35fe8ff842f986c",
185
+ # street1: "300 3rd Street",
186
+ # city: "San Francisco",
187
+ # state: "CA",
188
+ # zip: "94107",
189
+ # effective_date: "2021-01-01",
190
+ # courtesy_withholding: true
191
+ # )
192
+ def update_home_address(home_address_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, effective_date: nil, courtesy_withholding: nil, request_options: nil)
193
+ response = @request_client.conn.put do | req |
194
+ unless request_options&.timeout_in_seconds.nil?
195
+ req.options.timeout = request_options.timeout_in_seconds
196
+ end
197
+ unless request_options&.token.nil?
198
+ req.headers["Authorization"] = request_options.token
199
+ end
200
+ unless request_options&.gusto_api_version.nil?
201
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
202
+ end
203
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
204
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
205
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
206
+ end
207
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, street_1: street1, street_2: street2, city: city, state: state, zip: zip, effective_date: effective_date, courtesy_withholding: courtesy_withholding }.compact
208
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/home_addresses/#{home_address_uuid}"
209
+ end
210
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
211
+ end
212
+ # Used for deleting an employee's home address. Cannot delete the employee's
213
+ # active home address.
214
+ # scope: `employees:write`
215
+ #
216
+ # @param home_address_uuid [String] The UUID of the home address
217
+ # @param request_options [Gusto::RequestOptions]
218
+ # @return [Void]
219
+ # @example
220
+ # api = Gusto::Client.new(
221
+ # base_url: "https://api.example.com",
222
+ # environment: Gusto::Environment::DEMO,
223
+ # token: "YOUR_AUTH_TOKEN"
224
+ # )
225
+ # api.employees.adresses.delete_home_address(home_address_uuid: "home_address_uuid")
226
+ def delete_home_address(home_address_uuid:, request_options: nil)
227
+ response = @request_client.conn.delete do | req |
228
+ unless request_options&.timeout_in_seconds.nil?
229
+ req.options.timeout = request_options.timeout_in_seconds
230
+ end
231
+ unless request_options&.token.nil?
232
+ req.headers["Authorization"] = request_options.token
233
+ end
234
+ unless request_options&.gusto_api_version.nil?
235
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
236
+ end
237
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
238
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
239
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
240
+ end
241
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
242
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
243
+ end
244
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/home_addresses/#{home_address_uuid}"
245
+ end
246
+ end
247
+ # Returns a list of an employee's work addresses. Each address includes its
248
+ # effective date and a boolean
249
+ # signifying if it is the currently active work address.
250
+ # scope: `employees:read`
251
+ #
252
+ # @param employee_id [String] The UUID of the employee
253
+ # @param request_options [Gusto::RequestOptions]
254
+ # @return [Array<Gusto::EmployeeWorkAddress>]
255
+ # @example
256
+ # api = Gusto::Client.new(
257
+ # base_url: "https://api.example.com",
258
+ # environment: Gusto::Environment::DEMO,
259
+ # token: "YOUR_AUTH_TOKEN"
260
+ # )
261
+ # api.employees.adresses.get_work_addresses(employee_id: "employee_id")
262
+ def get_work_addresses(employee_id:, request_options: nil)
263
+ response = @request_client.conn.get do | req |
264
+ unless request_options&.timeout_in_seconds.nil?
265
+ req.options.timeout = request_options.timeout_in_seconds
266
+ end
267
+ unless request_options&.token.nil?
268
+ req.headers["Authorization"] = request_options.token
269
+ end
270
+ unless request_options&.gusto_api_version.nil?
271
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
272
+ end
273
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
274
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
275
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
276
+ end
277
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
278
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
279
+ end
280
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/work_addresses"
281
+ end
282
+ parsed_json = JSON.parse(response.body)
283
+ parsed_json&.map do | item |
284
+ item = item.to_json
285
+ Gusto::EmployeeWorkAddress.from_json(json_object: item)
286
+ end
287
+ end
288
+ # The work address of an employee describes when an employee began working at an
289
+ # associated company location.
290
+ # scope: `employees:manage`
291
+ #
292
+ # @param employee_id [String] The UUID of the employee
293
+ # @param location_uuid [String] Reference to a company location
294
+ # @param effective_date [String] Date the employee began working at the company location
295
+ # @param request_options [Gusto::RequestOptions]
296
+ # @return [Gusto::EmployeeWorkAddress]
297
+ # @example
298
+ # api = Gusto::Client.new(
299
+ # base_url: "https://api.example.com",
300
+ # environment: Gusto::Environment::DEMO,
301
+ # token: "YOUR_AUTH_TOKEN"
302
+ # )
303
+ # api.employees.adresses.create_work_address(
304
+ # employee_id: "employee_id",
305
+ # location_uuid: "6a119be7-b4b0-4e27-aaa0-89d5f2524635",
306
+ # effective_date: "2023-05-15"
307
+ # )
308
+ def create_work_address(employee_id:, location_uuid: nil, effective_date: nil, request_options: nil)
309
+ response = @request_client.conn.post do | req |
310
+ unless request_options&.timeout_in_seconds.nil?
311
+ req.options.timeout = request_options.timeout_in_seconds
312
+ end
313
+ unless request_options&.token.nil?
314
+ req.headers["Authorization"] = request_options.token
315
+ end
316
+ unless request_options&.gusto_api_version.nil?
317
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
318
+ end
319
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
320
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
321
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
322
+ end
323
+ req.body = { **(request_options&.additional_body_parameters || {}), location_uuid: location_uuid, effective_date: effective_date }.compact
324
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/work_addresses"
325
+ end
326
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
327
+ end
328
+ # The work address of an employee is used for payroll tax purposes.
329
+ # scope: `employees:read`
330
+ #
331
+ # @param work_address_uuid [String] The UUID of the work address
332
+ # @param request_options [Gusto::RequestOptions]
333
+ # @return [Gusto::EmployeeWorkAddress]
334
+ # @example
335
+ # api = Gusto::Client.new(
336
+ # base_url: "https://api.example.com",
337
+ # environment: Gusto::Environment::DEMO,
338
+ # token: "YOUR_AUTH_TOKEN"
339
+ # )
340
+ # api.employees.adresses.get_work_address(work_address_uuid: "work_address_uuid")
341
+ def get_work_address(work_address_uuid:, request_options: nil)
342
+ response = @request_client.conn.get do | req |
343
+ unless request_options&.timeout_in_seconds.nil?
344
+ req.options.timeout = request_options.timeout_in_seconds
345
+ end
346
+ unless request_options&.token.nil?
347
+ req.headers["Authorization"] = request_options.token
348
+ end
349
+ unless request_options&.gusto_api_version.nil?
350
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
351
+ end
352
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
353
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
354
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
355
+ end
356
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
357
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
358
+ end
359
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
360
+ end
361
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
362
+ end
363
+ # The work address of an employee is used for payroll tax purposes.
364
+ # scope: `employees:manage`
365
+ #
366
+ # @param work_address_uuid [String] The UUID of the work address
367
+ # @param location_uuid [String] Reference to a company location
368
+ # @param effective_date [String]
369
+ # @param version [String] The current version of the object. See the [versioning
370
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
371
+ # information on how to use this field.
372
+ # @param request_options [Gusto::RequestOptions]
373
+ # @return [Gusto::EmployeeWorkAddress]
374
+ # @example
375
+ # api = Gusto::Client.new(
376
+ # base_url: "https://api.example.com",
377
+ # environment: Gusto::Environment::DEMO,
378
+ # token: "YOUR_AUTH_TOKEN"
379
+ # )
380
+ # api.employees.adresses.update_work_address(
381
+ # work_address_uuid: "work_address_uuid",
382
+ # location_uuid: "6a119be7-b4b0-4e27-aaa0-89d5f2524635",
383
+ # effective_date: "2023-05-15",
384
+ # version: "e6db1baa29d3df1eb307ff6a12c778da"
385
+ # )
386
+ def update_work_address(work_address_uuid:, location_uuid: nil, effective_date: nil, version: nil, request_options: nil)
387
+ response = @request_client.conn.put do | req |
388
+ unless request_options&.timeout_in_seconds.nil?
389
+ req.options.timeout = request_options.timeout_in_seconds
390
+ end
391
+ unless request_options&.token.nil?
392
+ req.headers["Authorization"] = request_options.token
393
+ end
394
+ unless request_options&.gusto_api_version.nil?
395
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
396
+ end
397
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
398
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
399
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
400
+ end
401
+ req.body = { **(request_options&.additional_body_parameters || {}), location_uuid: location_uuid, effective_date: effective_date, version: version }.compact
402
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
403
+ end
404
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
405
+ end
406
+ # Used for deleting an employee's work address. Cannot delete the employee's
407
+ # active work address.
408
+ # scope: `employees:manage`
409
+ #
410
+ # @param work_address_uuid [String] The UUID of the work address
411
+ # @param request_options [Gusto::RequestOptions]
412
+ # @return [Void]
413
+ # @example
414
+ # api = Gusto::Client.new(
415
+ # base_url: "https://api.example.com",
416
+ # environment: Gusto::Environment::DEMO,
417
+ # token: "YOUR_AUTH_TOKEN"
418
+ # )
419
+ # api.employees.adresses.delete_work_address(work_address_uuid: "work_address_uuid")
420
+ def delete_work_address(work_address_uuid:, request_options: nil)
421
+ response = @request_client.conn.delete do | req |
422
+ unless request_options&.timeout_in_seconds.nil?
423
+ req.options.timeout = request_options.timeout_in_seconds
424
+ end
425
+ unless request_options&.token.nil?
426
+ req.headers["Authorization"] = request_options.token
427
+ end
428
+ unless request_options&.gusto_api_version.nil?
429
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
430
+ end
431
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
432
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
433
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
434
+ end
435
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
436
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
437
+ end
438
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
439
+ end
440
+ end
441
+ end
442
+ class AsyncAdressesClient
443
+ # @return [Gusto::AsyncRequestClient]
444
+ attr_reader :request_client
445
+
446
+
447
+ # @param request_client [Gusto::RequestClient]
448
+ # @return [Gusto::Employees::AsyncAdressesClient]
449
+ def initialize(request_client:)
450
+ @request_client = request_client
451
+ end
452
+ # The home address of an employee is used to determine certain tax information
453
+ # about them. Addresses are geocoded on create and update to ensure validity.
454
+ # Supports home address effective dating and courtesy withholding.
455
+ # scope: `employees:read`
456
+ #
457
+ # @param employee_id [String] The UUID of the employee
458
+ # @param request_options [Gusto::RequestOptions]
459
+ # @return [Array<Gusto::EmployeeAddress>]
460
+ # @example
461
+ # api = Gusto::Client.new(
462
+ # base_url: "https://api.example.com",
463
+ # environment: Gusto::Environment::DEMO,
464
+ # token: "YOUR_AUTH_TOKEN"
465
+ # )
466
+ # api.employees.adresses.get_home_addresses(employee_id: "employee_id")
467
+ def get_home_addresses(employee_id:, request_options: nil)
468
+ Async do
469
+ response = @request_client.conn.get do | req |
470
+ unless request_options&.timeout_in_seconds.nil?
471
+ req.options.timeout = request_options.timeout_in_seconds
472
+ end
473
+ unless request_options&.token.nil?
474
+ req.headers["Authorization"] = request_options.token
475
+ end
476
+ unless request_options&.gusto_api_version.nil?
477
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
478
+ end
479
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
480
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
481
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
482
+ end
483
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
484
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
485
+ end
486
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/home_addresses"
487
+ end
488
+ parsed_json = JSON.parse(response.body)
489
+ parsed_json&.map do | item |
490
+ item = item.to_json
491
+ Gusto::EmployeeAddress.from_json(json_object: item)
492
+ end
493
+ end
494
+ end
495
+ # The home address of an employee is used to determine certain tax information
496
+ # about them. Addresses are geocoded on create and update to ensure validity.
497
+ # Supports home address effective dating and courtesy withholding.
498
+ # scope: `employees:write`
499
+ #
500
+ # @param employee_id [String] The UUID of the employee
501
+ # @param street1 [String]
502
+ # @param street2 [String]
503
+ # @param city [String]
504
+ # @param state [String]
505
+ # @param zip [String]
506
+ # @param effective_date [String]
507
+ # @param courtesy_withholding [Boolean]
508
+ # @param request_options [Gusto::RequestOptions]
509
+ # @return [Gusto::EmployeeAddress]
510
+ # @example
511
+ # api = Gusto::Client.new(
512
+ # base_url: "https://api.example.com",
513
+ # environment: Gusto::Environment::DEMO,
514
+ # token: "YOUR_AUTH_TOKEN"
515
+ # )
516
+ # api.employees.adresses.create_home_address(
517
+ # employee_id: "employee_id",
518
+ # street1: "300 3rd Street",
519
+ # city: "San Francisco",
520
+ # state: "CA",
521
+ # zip: "94107",
522
+ # effective_date: "2021-01-01",
523
+ # courtesy_withholding: true
524
+ # )
525
+ def create_home_address(employee_id:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, effective_date: nil, courtesy_withholding: nil, request_options: nil)
526
+ Async do
527
+ response = @request_client.conn.post do | req |
528
+ unless request_options&.timeout_in_seconds.nil?
529
+ req.options.timeout = request_options.timeout_in_seconds
530
+ end
531
+ unless request_options&.token.nil?
532
+ req.headers["Authorization"] = request_options.token
533
+ end
534
+ unless request_options&.gusto_api_version.nil?
535
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
536
+ end
537
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
538
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
539
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
540
+ end
541
+ req.body = { **(request_options&.additional_body_parameters || {}), street_1: street1, street_2: street2, city: city, state: state, zip: zip, effective_date: effective_date, courtesy_withholding: courtesy_withholding }.compact
542
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/home_addresses"
543
+ end
544
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
545
+ end
546
+ end
547
+ # The home address of an employee is used to determine certain tax information
548
+ # about them. Addresses are geocoded on create and update to ensure validity.
549
+ # Supports home address effective dating and courtesy withholding.
550
+ # scope: `employees:read`
551
+ #
552
+ # @param home_address_uuid [String] The UUID of the home address
553
+ # @param request_options [Gusto::RequestOptions]
554
+ # @return [Gusto::EmployeeAddress]
555
+ # @example
556
+ # api = Gusto::Client.new(
557
+ # base_url: "https://api.example.com",
558
+ # environment: Gusto::Environment::DEMO,
559
+ # token: "YOUR_AUTH_TOKEN"
560
+ # )
561
+ # api.employees.adresses.get_home_address(home_address_uuid: "home_address_uuid")
562
+ def get_home_address(home_address_uuid:, request_options: nil)
563
+ Async do
564
+ response = @request_client.conn.get do | req |
565
+ unless request_options&.timeout_in_seconds.nil?
566
+ req.options.timeout = request_options.timeout_in_seconds
567
+ end
568
+ unless request_options&.token.nil?
569
+ req.headers["Authorization"] = request_options.token
570
+ end
571
+ unless request_options&.gusto_api_version.nil?
572
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
573
+ end
574
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
575
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
576
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
577
+ end
578
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
579
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
580
+ end
581
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/home_addresses/#{home_address_uuid}"
582
+ end
583
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
584
+ end
585
+ end
586
+ # The home address of an employee is used to determine certain tax information
587
+ # about them. Addresses are geocoded on create and update to ensure validity.
588
+ # Supports home address effective dating and courtesy withholding.
589
+ # scope: `employees:write`
590
+ #
591
+ # @param home_address_uuid [String] The UUID of the home address
592
+ # @param version [String] The current version of the object. See the [versioning
593
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
594
+ # information on how to use this field.
595
+ # @param street1 [String]
596
+ # @param street2 [String]
597
+ # @param city [String]
598
+ # @param state [String]
599
+ # @param zip [String]
600
+ # @param effective_date [String]
601
+ # @param courtesy_withholding [Boolean]
602
+ # @param request_options [Gusto::RequestOptions]
603
+ # @return [Gusto::EmployeeAddress]
604
+ # @example
605
+ # api = Gusto::Client.new(
606
+ # base_url: "https://api.example.com",
607
+ # environment: Gusto::Environment::DEMO,
608
+ # token: "YOUR_AUTH_TOKEN"
609
+ # )
610
+ # api.employees.adresses.update_home_address(
611
+ # home_address_uuid: "home_address_uuid",
612
+ # version: "fe75bd065ff48b91c35fe8ff842f986c",
613
+ # street1: "300 3rd Street",
614
+ # city: "San Francisco",
615
+ # state: "CA",
616
+ # zip: "94107",
617
+ # effective_date: "2021-01-01",
618
+ # courtesy_withholding: true
619
+ # )
620
+ def update_home_address(home_address_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, effective_date: nil, courtesy_withholding: nil, request_options: nil)
621
+ Async do
622
+ response = @request_client.conn.put do | req |
623
+ unless request_options&.timeout_in_seconds.nil?
624
+ req.options.timeout = request_options.timeout_in_seconds
625
+ end
626
+ unless request_options&.token.nil?
627
+ req.headers["Authorization"] = request_options.token
628
+ end
629
+ unless request_options&.gusto_api_version.nil?
630
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
631
+ end
632
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
633
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
634
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
635
+ end
636
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, street_1: street1, street_2: street2, city: city, state: state, zip: zip, effective_date: effective_date, courtesy_withholding: courtesy_withholding }.compact
637
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/home_addresses/#{home_address_uuid}"
638
+ end
639
+ Gusto::EmployeeAddress.from_json(json_object: response.body)
640
+ end
641
+ end
642
+ # Used for deleting an employee's home address. Cannot delete the employee's
643
+ # active home address.
644
+ # scope: `employees:write`
645
+ #
646
+ # @param home_address_uuid [String] The UUID of the home address
647
+ # @param request_options [Gusto::RequestOptions]
648
+ # @return [Void]
649
+ # @example
650
+ # api = Gusto::Client.new(
651
+ # base_url: "https://api.example.com",
652
+ # environment: Gusto::Environment::DEMO,
653
+ # token: "YOUR_AUTH_TOKEN"
654
+ # )
655
+ # api.employees.adresses.delete_home_address(home_address_uuid: "home_address_uuid")
656
+ def delete_home_address(home_address_uuid:, request_options: nil)
657
+ Async do
658
+ response = @request_client.conn.delete do | req |
659
+ unless request_options&.timeout_in_seconds.nil?
660
+ req.options.timeout = request_options.timeout_in_seconds
661
+ end
662
+ unless request_options&.token.nil?
663
+ req.headers["Authorization"] = request_options.token
664
+ end
665
+ unless request_options&.gusto_api_version.nil?
666
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
667
+ end
668
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
669
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
670
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
671
+ end
672
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
673
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
674
+ end
675
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/home_addresses/#{home_address_uuid}"
676
+ end
677
+ end
678
+ end
679
+ # Returns a list of an employee's work addresses. Each address includes its
680
+ # effective date and a boolean
681
+ # signifying if it is the currently active work address.
682
+ # scope: `employees:read`
683
+ #
684
+ # @param employee_id [String] The UUID of the employee
685
+ # @param request_options [Gusto::RequestOptions]
686
+ # @return [Array<Gusto::EmployeeWorkAddress>]
687
+ # @example
688
+ # api = Gusto::Client.new(
689
+ # base_url: "https://api.example.com",
690
+ # environment: Gusto::Environment::DEMO,
691
+ # token: "YOUR_AUTH_TOKEN"
692
+ # )
693
+ # api.employees.adresses.get_work_addresses(employee_id: "employee_id")
694
+ def get_work_addresses(employee_id:, request_options: nil)
695
+ Async do
696
+ response = @request_client.conn.get do | req |
697
+ unless request_options&.timeout_in_seconds.nil?
698
+ req.options.timeout = request_options.timeout_in_seconds
699
+ end
700
+ unless request_options&.token.nil?
701
+ req.headers["Authorization"] = request_options.token
702
+ end
703
+ unless request_options&.gusto_api_version.nil?
704
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
705
+ end
706
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
707
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
708
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
709
+ end
710
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
711
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
712
+ end
713
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/work_addresses"
714
+ end
715
+ parsed_json = JSON.parse(response.body)
716
+ parsed_json&.map do | item |
717
+ item = item.to_json
718
+ Gusto::EmployeeWorkAddress.from_json(json_object: item)
719
+ end
720
+ end
721
+ end
722
+ # The work address of an employee describes when an employee began working at an
723
+ # associated company location.
724
+ # scope: `employees:manage`
725
+ #
726
+ # @param employee_id [String] The UUID of the employee
727
+ # @param location_uuid [String] Reference to a company location
728
+ # @param effective_date [String] Date the employee began working at the company location
729
+ # @param request_options [Gusto::RequestOptions]
730
+ # @return [Gusto::EmployeeWorkAddress]
731
+ # @example
732
+ # api = Gusto::Client.new(
733
+ # base_url: "https://api.example.com",
734
+ # environment: Gusto::Environment::DEMO,
735
+ # token: "YOUR_AUTH_TOKEN"
736
+ # )
737
+ # api.employees.adresses.create_work_address(
738
+ # employee_id: "employee_id",
739
+ # location_uuid: "6a119be7-b4b0-4e27-aaa0-89d5f2524635",
740
+ # effective_date: "2023-05-15"
741
+ # )
742
+ def create_work_address(employee_id:, location_uuid: nil, effective_date: nil, request_options: nil)
743
+ Async do
744
+ response = @request_client.conn.post do | req |
745
+ unless request_options&.timeout_in_seconds.nil?
746
+ req.options.timeout = request_options.timeout_in_seconds
747
+ end
748
+ unless request_options&.token.nil?
749
+ req.headers["Authorization"] = request_options.token
750
+ end
751
+ unless request_options&.gusto_api_version.nil?
752
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
753
+ end
754
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
755
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
756
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
757
+ end
758
+ req.body = { **(request_options&.additional_body_parameters || {}), location_uuid: location_uuid, effective_date: effective_date }.compact
759
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/work_addresses"
760
+ end
761
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
762
+ end
763
+ end
764
+ # The work address of an employee is used for payroll tax purposes.
765
+ # scope: `employees:read`
766
+ #
767
+ # @param work_address_uuid [String] The UUID of the work address
768
+ # @param request_options [Gusto::RequestOptions]
769
+ # @return [Gusto::EmployeeWorkAddress]
770
+ # @example
771
+ # api = Gusto::Client.new(
772
+ # base_url: "https://api.example.com",
773
+ # environment: Gusto::Environment::DEMO,
774
+ # token: "YOUR_AUTH_TOKEN"
775
+ # )
776
+ # api.employees.adresses.get_work_address(work_address_uuid: "work_address_uuid")
777
+ def get_work_address(work_address_uuid:, request_options: nil)
778
+ Async do
779
+ response = @request_client.conn.get do | req |
780
+ unless request_options&.timeout_in_seconds.nil?
781
+ req.options.timeout = request_options.timeout_in_seconds
782
+ end
783
+ unless request_options&.token.nil?
784
+ req.headers["Authorization"] = request_options.token
785
+ end
786
+ unless request_options&.gusto_api_version.nil?
787
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
788
+ end
789
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
790
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
791
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
792
+ end
793
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
794
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
795
+ end
796
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
797
+ end
798
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
799
+ end
800
+ end
801
+ # The work address of an employee is used for payroll tax purposes.
802
+ # scope: `employees:manage`
803
+ #
804
+ # @param work_address_uuid [String] The UUID of the work address
805
+ # @param location_uuid [String] Reference to a company location
806
+ # @param effective_date [String]
807
+ # @param version [String] The current version of the object. See the [versioning
808
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
809
+ # information on how to use this field.
810
+ # @param request_options [Gusto::RequestOptions]
811
+ # @return [Gusto::EmployeeWorkAddress]
812
+ # @example
813
+ # api = Gusto::Client.new(
814
+ # base_url: "https://api.example.com",
815
+ # environment: Gusto::Environment::DEMO,
816
+ # token: "YOUR_AUTH_TOKEN"
817
+ # )
818
+ # api.employees.adresses.update_work_address(
819
+ # work_address_uuid: "work_address_uuid",
820
+ # location_uuid: "6a119be7-b4b0-4e27-aaa0-89d5f2524635",
821
+ # effective_date: "2023-05-15",
822
+ # version: "e6db1baa29d3df1eb307ff6a12c778da"
823
+ # )
824
+ def update_work_address(work_address_uuid:, location_uuid: nil, effective_date: nil, version: nil, request_options: nil)
825
+ Async do
826
+ response = @request_client.conn.put do | req |
827
+ unless request_options&.timeout_in_seconds.nil?
828
+ req.options.timeout = request_options.timeout_in_seconds
829
+ end
830
+ unless request_options&.token.nil?
831
+ req.headers["Authorization"] = request_options.token
832
+ end
833
+ unless request_options&.gusto_api_version.nil?
834
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
835
+ end
836
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
837
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
838
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
839
+ end
840
+ req.body = { **(request_options&.additional_body_parameters || {}), location_uuid: location_uuid, effective_date: effective_date, version: version }.compact
841
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
842
+ end
843
+ Gusto::EmployeeWorkAddress.from_json(json_object: response.body)
844
+ end
845
+ end
846
+ # Used for deleting an employee's work address. Cannot delete the employee's
847
+ # active work address.
848
+ # scope: `employees:manage`
849
+ #
850
+ # @param work_address_uuid [String] The UUID of the work address
851
+ # @param request_options [Gusto::RequestOptions]
852
+ # @return [Void]
853
+ # @example
854
+ # api = Gusto::Client.new(
855
+ # base_url: "https://api.example.com",
856
+ # environment: Gusto::Environment::DEMO,
857
+ # token: "YOUR_AUTH_TOKEN"
858
+ # )
859
+ # api.employees.adresses.delete_work_address(work_address_uuid: "work_address_uuid")
860
+ def delete_work_address(work_address_uuid:, request_options: nil)
861
+ Async do
862
+ response = @request_client.conn.delete do | req |
863
+ unless request_options&.timeout_in_seconds.nil?
864
+ req.options.timeout = request_options.timeout_in_seconds
865
+ end
866
+ unless request_options&.token.nil?
867
+ req.headers["Authorization"] = request_options.token
868
+ end
869
+ unless request_options&.gusto_api_version.nil?
870
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
871
+ end
872
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
873
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
874
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
875
+ end
876
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
877
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
878
+ end
879
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/work_addresses/#{work_address_uuid}"
880
+ end
881
+ end
882
+ end
883
+ end
884
+ end
885
+ end