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,345 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../forms/types/form"
4
+ require "json"
5
+ require_relative "../../types/form_pdf"
6
+ require "async"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require_relative "../../../requests"
11
+
12
+ module Gusto
13
+ module Companies
14
+ class FormsClient
15
+ # @return [Gusto::RequestClient]
16
+ attr_reader :request_client
17
+
18
+
19
+ # @param request_client [Gusto::RequestClient]
20
+ # @return [Gusto::Companies::FormsClient]
21
+ def initialize(request_client:)
22
+ @request_client = request_client
23
+ end
24
+ # Get a list of all company's forms
25
+ # scope: `company_forms:read`
26
+ #
27
+ # @param company_id [String] The UUID of the company
28
+ # @param request_options [Gusto::RequestOptions]
29
+ # @return [Array<Gusto::Forms::Form>]
30
+ # @example
31
+ # api = Gusto::Client.new(
32
+ # base_url: "https://api.example.com",
33
+ # environment: Gusto::Environment::DEMO,
34
+ # token: "YOUR_AUTH_TOKEN"
35
+ # )
36
+ # api.companies.forms.list(company_id: "company_id")
37
+ def list(company_id:, request_options: nil)
38
+ response = @request_client.conn.get do | req |
39
+ unless request_options&.timeout_in_seconds.nil?
40
+ req.options.timeout = request_options.timeout_in_seconds
41
+ end
42
+ unless request_options&.token.nil?
43
+ req.headers["Authorization"] = request_options.token
44
+ end
45
+ unless request_options&.gusto_api_version.nil?
46
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
47
+ end
48
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
49
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
50
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
51
+ end
52
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
53
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
54
+ end
55
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/forms"
56
+ end
57
+ parsed_json = JSON.parse(response.body)
58
+ parsed_json&.map do | item |
59
+ item = item.to_json
60
+ Gusto::Forms::Form.from_json(json_object: item)
61
+ end
62
+ end
63
+ # Get a company form
64
+ # scope: `company_forms:read`
65
+ #
66
+ # @param form_id [String] The UUID of the form
67
+ # @param request_options [Gusto::RequestOptions]
68
+ # @return [Gusto::Forms::Form]
69
+ # @example
70
+ # api = Gusto::Client.new(
71
+ # base_url: "https://api.example.com",
72
+ # environment: Gusto::Environment::DEMO,
73
+ # token: "YOUR_AUTH_TOKEN"
74
+ # )
75
+ # api.companies.forms.get(form_id: "form_id")
76
+ def get(form_id:, request_options: nil)
77
+ response = @request_client.conn.get do | req |
78
+ unless request_options&.timeout_in_seconds.nil?
79
+ req.options.timeout = request_options.timeout_in_seconds
80
+ end
81
+ unless request_options&.token.nil?
82
+ req.headers["Authorization"] = request_options.token
83
+ end
84
+ unless request_options&.gusto_api_version.nil?
85
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
86
+ end
87
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
88
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
89
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
90
+ end
91
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
92
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
93
+ end
94
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}"
95
+ end
96
+ Gusto::Forms::Form.from_json(json_object: response.body)
97
+ end
98
+ # Get the link to the form PDF
99
+ # scope: `company_forms:read`
100
+ #
101
+ # @param form_id [String] The UUID of the form
102
+ # @param request_options [Gusto::RequestOptions]
103
+ # @return [Gusto::FormPdf]
104
+ # @example
105
+ # api = Gusto::Client.new(
106
+ # base_url: "https://api.example.com",
107
+ # environment: Gusto::Environment::DEMO,
108
+ # token: "YOUR_AUTH_TOKEN"
109
+ # )
110
+ # api.companies.forms.get_pdf(form_id: "form_id")
111
+ def get_pdf(form_id:, request_options: nil)
112
+ response = @request_client.conn.get do | req |
113
+ unless request_options&.timeout_in_seconds.nil?
114
+ req.options.timeout = request_options.timeout_in_seconds
115
+ end
116
+ unless request_options&.token.nil?
117
+ req.headers["Authorization"] = request_options.token
118
+ end
119
+ unless request_options&.gusto_api_version.nil?
120
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
121
+ end
122
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
123
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
124
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
125
+ end
126
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
127
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
128
+ end
129
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}/pdf"
130
+ end
131
+ Gusto::FormPdf.from_json(json_object: response.body)
132
+ end
133
+ # Sign a company form. Company forms must be signed by the company signatory.
134
+ # scope: `company_forms:sign`
135
+ #
136
+ # @param form_id [String] The UUID of the form
137
+ # @param signature_text [String] The signature
138
+ # @param agree [Boolean] whether you agree to sign electronically
139
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
140
+ # @param request_options [Gusto::RequestOptions]
141
+ # @return [Gusto::Forms::Form]
142
+ # @example
143
+ # api = Gusto::Client.new(
144
+ # base_url: "https://api.example.com",
145
+ # environment: Gusto::Environment::DEMO,
146
+ # token: "YOUR_AUTH_TOKEN"
147
+ # )
148
+ # api.companies.forms.sign(
149
+ # form_id: "form_id",
150
+ # signature_text: "Jane Smith",
151
+ # agree: true,
152
+ # signed_by_ip_address: "192.168.0.1"
153
+ # )
154
+ def sign(form_id:, signature_text:, agree:, signed_by_ip_address:, request_options: nil)
155
+ response = @request_client.conn.put do | req |
156
+ unless request_options&.timeout_in_seconds.nil?
157
+ req.options.timeout = request_options.timeout_in_seconds
158
+ end
159
+ unless request_options&.token.nil?
160
+ req.headers["Authorization"] = request_options.token
161
+ end
162
+ unless request_options&.gusto_api_version.nil?
163
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
164
+ end
165
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
166
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
167
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
168
+ end
169
+ req.body = { **(request_options&.additional_body_parameters || {}), signature_text: signature_text, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
170
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}/sign"
171
+ end
172
+ Gusto::Forms::Form.from_json(json_object: response.body)
173
+ end
174
+ end
175
+ class AsyncFormsClient
176
+ # @return [Gusto::AsyncRequestClient]
177
+ attr_reader :request_client
178
+
179
+
180
+ # @param request_client [Gusto::RequestClient]
181
+ # @return [Gusto::Companies::AsyncFormsClient]
182
+ def initialize(request_client:)
183
+ @request_client = request_client
184
+ end
185
+ # Get a list of all company's forms
186
+ # scope: `company_forms:read`
187
+ #
188
+ # @param company_id [String] The UUID of the company
189
+ # @param request_options [Gusto::RequestOptions]
190
+ # @return [Array<Gusto::Forms::Form>]
191
+ # @example
192
+ # api = Gusto::Client.new(
193
+ # base_url: "https://api.example.com",
194
+ # environment: Gusto::Environment::DEMO,
195
+ # token: "YOUR_AUTH_TOKEN"
196
+ # )
197
+ # api.companies.forms.list(company_id: "company_id")
198
+ def list(company_id:, request_options: nil)
199
+ Async do
200
+ response = @request_client.conn.get do | req |
201
+ unless request_options&.timeout_in_seconds.nil?
202
+ req.options.timeout = request_options.timeout_in_seconds
203
+ end
204
+ unless request_options&.token.nil?
205
+ req.headers["Authorization"] = request_options.token
206
+ end
207
+ unless request_options&.gusto_api_version.nil?
208
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
209
+ end
210
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
211
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
212
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
213
+ end
214
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
215
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
216
+ end
217
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/forms"
218
+ end
219
+ parsed_json = JSON.parse(response.body)
220
+ parsed_json&.map do | item |
221
+ item = item.to_json
222
+ Gusto::Forms::Form.from_json(json_object: item)
223
+ end
224
+ end
225
+ end
226
+ # Get a company form
227
+ # scope: `company_forms:read`
228
+ #
229
+ # @param form_id [String] The UUID of the form
230
+ # @param request_options [Gusto::RequestOptions]
231
+ # @return [Gusto::Forms::Form]
232
+ # @example
233
+ # api = Gusto::Client.new(
234
+ # base_url: "https://api.example.com",
235
+ # environment: Gusto::Environment::DEMO,
236
+ # token: "YOUR_AUTH_TOKEN"
237
+ # )
238
+ # api.companies.forms.get(form_id: "form_id")
239
+ def get(form_id:, request_options: nil)
240
+ Async do
241
+ response = @request_client.conn.get do | req |
242
+ unless request_options&.timeout_in_seconds.nil?
243
+ req.options.timeout = request_options.timeout_in_seconds
244
+ end
245
+ unless request_options&.token.nil?
246
+ req.headers["Authorization"] = request_options.token
247
+ end
248
+ unless request_options&.gusto_api_version.nil?
249
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
250
+ end
251
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
252
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
253
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
254
+ end
255
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
256
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
257
+ end
258
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}"
259
+ end
260
+ Gusto::Forms::Form.from_json(json_object: response.body)
261
+ end
262
+ end
263
+ # Get the link to the form PDF
264
+ # scope: `company_forms:read`
265
+ #
266
+ # @param form_id [String] The UUID of the form
267
+ # @param request_options [Gusto::RequestOptions]
268
+ # @return [Gusto::FormPdf]
269
+ # @example
270
+ # api = Gusto::Client.new(
271
+ # base_url: "https://api.example.com",
272
+ # environment: Gusto::Environment::DEMO,
273
+ # token: "YOUR_AUTH_TOKEN"
274
+ # )
275
+ # api.companies.forms.get_pdf(form_id: "form_id")
276
+ def get_pdf(form_id:, request_options: nil)
277
+ Async do
278
+ response = @request_client.conn.get do | req |
279
+ unless request_options&.timeout_in_seconds.nil?
280
+ req.options.timeout = request_options.timeout_in_seconds
281
+ end
282
+ unless request_options&.token.nil?
283
+ req.headers["Authorization"] = request_options.token
284
+ end
285
+ unless request_options&.gusto_api_version.nil?
286
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
287
+ end
288
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
289
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
290
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
291
+ end
292
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
293
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
294
+ end
295
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}/pdf"
296
+ end
297
+ Gusto::FormPdf.from_json(json_object: response.body)
298
+ end
299
+ end
300
+ # Sign a company form. Company forms must be signed by the company signatory.
301
+ # scope: `company_forms:sign`
302
+ #
303
+ # @param form_id [String] The UUID of the form
304
+ # @param signature_text [String] The signature
305
+ # @param agree [Boolean] whether you agree to sign electronically
306
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
307
+ # @param request_options [Gusto::RequestOptions]
308
+ # @return [Gusto::Forms::Form]
309
+ # @example
310
+ # api = Gusto::Client.new(
311
+ # base_url: "https://api.example.com",
312
+ # environment: Gusto::Environment::DEMO,
313
+ # token: "YOUR_AUTH_TOKEN"
314
+ # )
315
+ # api.companies.forms.sign(
316
+ # form_id: "form_id",
317
+ # signature_text: "Jane Smith",
318
+ # agree: true,
319
+ # signed_by_ip_address: "192.168.0.1"
320
+ # )
321
+ def sign(form_id:, signature_text:, agree:, signed_by_ip_address:, request_options: nil)
322
+ Async do
323
+ response = @request_client.conn.put do | req |
324
+ unless request_options&.timeout_in_seconds.nil?
325
+ req.options.timeout = request_options.timeout_in_seconds
326
+ end
327
+ unless request_options&.token.nil?
328
+ req.headers["Authorization"] = request_options.token
329
+ end
330
+ unless request_options&.gusto_api_version.nil?
331
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
332
+ end
333
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
334
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
335
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
336
+ end
337
+ req.body = { **(request_options&.additional_body_parameters || {}), signature_text: signature_text, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
338
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/forms/#{form_id}/sign"
339
+ end
340
+ Gusto::Forms::Form.from_json(json_object: response.body)
341
+ end
342
+ end
343
+ end
344
+ end
345
+ end
@@ -0,0 +1,207 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../industry/types/industry"
4
+ require "async"
5
+ require "async"
6
+ require_relative "../../../requests"
7
+
8
+ module Gusto
9
+ module Companies
10
+ class IndustrySelectionClient
11
+ # @return [Gusto::RequestClient]
12
+ attr_reader :request_client
13
+
14
+
15
+ # @param request_client [Gusto::RequestClient]
16
+ # @return [Gusto::Companies::IndustrySelectionClient]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+ # Get industry selection for the company.
21
+ # scope: `companies:read`
22
+ #
23
+ # @param company_id [String] The UUID of the company
24
+ # @param request_options [Gusto::RequestOptions]
25
+ # @return [Gusto::Industry::Industry]
26
+ # @example
27
+ # api = Gusto::Client.new(
28
+ # base_url: "https://api.example.com",
29
+ # environment: Gusto::Environment::DEMO,
30
+ # token: "YOUR_AUTH_TOKEN"
31
+ # )
32
+ # api.companies.industry_selection.get(company_id: "company_id")
33
+ def get(company_id:, request_options: nil)
34
+ response = @request_client.conn.get do | req |
35
+ unless request_options&.timeout_in_seconds.nil?
36
+ req.options.timeout = request_options.timeout_in_seconds
37
+ end
38
+ unless request_options&.token.nil?
39
+ req.headers["Authorization"] = request_options.token
40
+ end
41
+ unless request_options&.gusto_api_version.nil?
42
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
43
+ end
44
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
45
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
46
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
47
+ end
48
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
49
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
50
+ end
51
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/industry_selection"
52
+ end
53
+ Gusto::Industry::Industry.from_json(json_object: response.body)
54
+ end
55
+ # Update the company industry selection by passing in industry classification
56
+ # codes: [NAICS code](https://www.naics.com), [SICS code](https://siccode.com/)
57
+ # and industry title. Our UI is leveraging [Middesk
58
+ # API](https://docs.middesk.com/reference/introduction) to determine industry
59
+ # classification codes.
60
+ # scope: `companies:write`
61
+ #
62
+ # @param company_id [String] The UUID of the company
63
+ # @param title [String] Industry title
64
+ # @param naics_code [String] North American Industry Classification System (NAICS) is used to classify
65
+ # businesses with a six digit number based on the primary type of work the
66
+ # business performs
67
+ # @param sic_codes [Array<String>] A list of Standard Industrial Classification (SIC) codes, which are four digit
68
+ # number that categorize the industries that companies belong to based on their
69
+ # business activities. If sic_codes is not passed in, we will perform an internal
70
+ # lookup with naics_code.
71
+ # @param request_options [Gusto::RequestOptions]
72
+ # @return [Gusto::Industry::Industry]
73
+ # @example
74
+ # api = Gusto::Client.new(
75
+ # base_url: "https://api.example.com",
76
+ # environment: Gusto::Environment::DEMO,
77
+ # token: "YOUR_AUTH_TOKEN"
78
+ # )
79
+ # api.companies.industry_selection.update(
80
+ # company_id: "company_id",
81
+ # title: "Computer Training",
82
+ # naics_code: "611420",
83
+ # sic_codes: ["8243"]
84
+ # )
85
+ def update(company_id:, title: nil, naics_code:, sic_codes: nil, request_options: nil)
86
+ response = @request_client.conn.put do | req |
87
+ unless request_options&.timeout_in_seconds.nil?
88
+ req.options.timeout = request_options.timeout_in_seconds
89
+ end
90
+ unless request_options&.token.nil?
91
+ req.headers["Authorization"] = request_options.token
92
+ end
93
+ unless request_options&.gusto_api_version.nil?
94
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
95
+ end
96
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
97
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
98
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
99
+ end
100
+ req.body = { **(request_options&.additional_body_parameters || {}), title: title, naics_code: naics_code, sic_codes: sic_codes }.compact
101
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/industry_selection"
102
+ end
103
+ Gusto::Industry::Industry.from_json(json_object: response.body)
104
+ end
105
+ end
106
+ class AsyncIndustrySelectionClient
107
+ # @return [Gusto::AsyncRequestClient]
108
+ attr_reader :request_client
109
+
110
+
111
+ # @param request_client [Gusto::RequestClient]
112
+ # @return [Gusto::Companies::AsyncIndustrySelectionClient]
113
+ def initialize(request_client:)
114
+ @request_client = request_client
115
+ end
116
+ # Get industry selection for the company.
117
+ # scope: `companies:read`
118
+ #
119
+ # @param company_id [String] The UUID of the company
120
+ # @param request_options [Gusto::RequestOptions]
121
+ # @return [Gusto::Industry::Industry]
122
+ # @example
123
+ # api = Gusto::Client.new(
124
+ # base_url: "https://api.example.com",
125
+ # environment: Gusto::Environment::DEMO,
126
+ # token: "YOUR_AUTH_TOKEN"
127
+ # )
128
+ # api.companies.industry_selection.get(company_id: "company_id")
129
+ def get(company_id:, request_options: nil)
130
+ Async do
131
+ response = @request_client.conn.get do | req |
132
+ unless request_options&.timeout_in_seconds.nil?
133
+ req.options.timeout = request_options.timeout_in_seconds
134
+ end
135
+ unless request_options&.token.nil?
136
+ req.headers["Authorization"] = request_options.token
137
+ end
138
+ unless request_options&.gusto_api_version.nil?
139
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
140
+ end
141
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
142
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
143
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
144
+ end
145
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
146
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
147
+ end
148
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/industry_selection"
149
+ end
150
+ Gusto::Industry::Industry.from_json(json_object: response.body)
151
+ end
152
+ end
153
+ # Update the company industry selection by passing in industry classification
154
+ # codes: [NAICS code](https://www.naics.com), [SICS code](https://siccode.com/)
155
+ # and industry title. Our UI is leveraging [Middesk
156
+ # API](https://docs.middesk.com/reference/introduction) to determine industry
157
+ # classification codes.
158
+ # scope: `companies:write`
159
+ #
160
+ # @param company_id [String] The UUID of the company
161
+ # @param title [String] Industry title
162
+ # @param naics_code [String] North American Industry Classification System (NAICS) is used to classify
163
+ # businesses with a six digit number based on the primary type of work the
164
+ # business performs
165
+ # @param sic_codes [Array<String>] A list of Standard Industrial Classification (SIC) codes, which are four digit
166
+ # number that categorize the industries that companies belong to based on their
167
+ # business activities. If sic_codes is not passed in, we will perform an internal
168
+ # lookup with naics_code.
169
+ # @param request_options [Gusto::RequestOptions]
170
+ # @return [Gusto::Industry::Industry]
171
+ # @example
172
+ # api = Gusto::Client.new(
173
+ # base_url: "https://api.example.com",
174
+ # environment: Gusto::Environment::DEMO,
175
+ # token: "YOUR_AUTH_TOKEN"
176
+ # )
177
+ # api.companies.industry_selection.update(
178
+ # company_id: "company_id",
179
+ # title: "Computer Training",
180
+ # naics_code: "611420",
181
+ # sic_codes: ["8243"]
182
+ # )
183
+ def update(company_id:, title: nil, naics_code:, sic_codes: nil, request_options: nil)
184
+ Async do
185
+ response = @request_client.conn.put do | req |
186
+ unless request_options&.timeout_in_seconds.nil?
187
+ req.options.timeout = request_options.timeout_in_seconds
188
+ end
189
+ unless request_options&.token.nil?
190
+ req.headers["Authorization"] = request_options.token
191
+ end
192
+ unless request_options&.gusto_api_version.nil?
193
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
194
+ end
195
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
196
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
197
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
198
+ end
199
+ req.body = { **(request_options&.additional_body_parameters || {}), title: title, naics_code: naics_code, sic_codes: sic_codes }.compact
200
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/industry_selection"
201
+ end
202
+ Gusto::Industry::Industry.from_json(json_object: response.body)
203
+ end
204
+ end
205
+ end
206
+ end
207
+ end