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,513 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../signatories/types/signatory"
4
+ require "json"
5
+ require_relative "types/signatories_create_request_home_address"
6
+ require_relative "types/signatories_update_request_home_address"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require_relative "../../../requests"
13
+
14
+ module Gusto
15
+ module Companies
16
+ class SignatoriesClient
17
+ # @return [Gusto::RequestClient]
18
+ attr_reader :request_client
19
+
20
+
21
+ # @param request_client [Gusto::RequestClient]
22
+ # @return [Gusto::Companies::SignatoriesClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+ # Returns company signatories. Currently we only support a single signatory per
27
+ # company.
28
+ # scope: `signatories:read`
29
+ #
30
+ # @param company_uuid [String] The UUID of the company
31
+ # @param request_options [Gusto::RequestOptions]
32
+ # @return [Array<Gusto::Signatories::Signatory>]
33
+ # @example
34
+ # api = Gusto::Client.new(
35
+ # base_url: "https://api.example.com",
36
+ # environment: Gusto::Environment::DEMO,
37
+ # token: "YOUR_AUTH_TOKEN"
38
+ # )
39
+ # api.companies.signatories.get(company_uuid: "company_uuid")
40
+ def get(company_uuid:, request_options: nil)
41
+ response = @request_client.conn.get do | req |
42
+ unless request_options&.timeout_in_seconds.nil?
43
+ req.options.timeout = request_options.timeout_in_seconds
44
+ end
45
+ unless request_options&.token.nil?
46
+ req.headers["Authorization"] = request_options.token
47
+ end
48
+ unless request_options&.gusto_api_version.nil?
49
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
50
+ end
51
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
52
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
53
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
54
+ end
55
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
56
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
57
+ end
58
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories"
59
+ end
60
+ parsed_json = JSON.parse(response.body)
61
+ parsed_json&.map do | item |
62
+ item = item.to_json
63
+ Gusto::Signatories::Signatory.from_json(json_object: item)
64
+ end
65
+ end
66
+ # Create a company signatory with complete information.
67
+ # A signatory can legally sign forms once the identity verification process is
68
+ # successful.
69
+ # The signatory should be an officer, owner, general partner or LLC member
70
+ # manager, plan administrator, fiduciary, or an authorized representative who is
71
+ # designated to sign agreements on the company's behalf. An officer is the
72
+ # president, vice president, treasurer, chief accounting officer, etc. There can
73
+ # only be a single primary signatory in a company.
74
+ # scope: `signatories:manage`
75
+ #
76
+ # @param company_uuid [String] The UUID of the company
77
+ # @param ssn [String]
78
+ # @param first_name [String]
79
+ # @param middle_initial [String]
80
+ # @param last_name [String]
81
+ # @param email [String]
82
+ # @param title [String]
83
+ # @param phone [String]
84
+ # @param birthday [String]
85
+ # @param home_address [Hash] The signatory's home addressRequest of type Gusto::Companies::Signatories::SignatoriesCreateRequestHomeAddress, as a Hash
86
+ # * :street1 (String)
87
+ # * :street2 (String)
88
+ # * :city (String)
89
+ # * :state (String)
90
+ # * :zip (String)
91
+ # @param request_options [Gusto::RequestOptions]
92
+ # @return [Gusto::Signatories::Signatory]
93
+ # @example
94
+ # api = Gusto::Client.new(
95
+ # base_url: "https://api.example.com",
96
+ # environment: Gusto::Environment::DEMO,
97
+ # token: "YOUR_AUTH_TOKEN"
98
+ # )
99
+ # api.companies.signatories.create(
100
+ # company_uuid: "company_uuid",
101
+ # ssn: "ssn",
102
+ # first_name: "first_name",
103
+ # last_name: "last_name",
104
+ # email: "email",
105
+ # title: "title",
106
+ # phone: "phone",
107
+ # birthday: "birthday",
108
+ # home_address: { street1: "street_1", city: "city", state: "state", zip: "zip" }
109
+ # )
110
+ def create(company_uuid:, ssn:, first_name:, middle_initial: nil, last_name:, email:, title:, phone:, birthday:, home_address:, request_options: nil)
111
+ response = @request_client.conn.post do | req |
112
+ unless request_options&.timeout_in_seconds.nil?
113
+ req.options.timeout = request_options.timeout_in_seconds
114
+ end
115
+ unless request_options&.token.nil?
116
+ req.headers["Authorization"] = request_options.token
117
+ end
118
+ unless request_options&.gusto_api_version.nil?
119
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
120
+ end
121
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
122
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
123
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
124
+ end
125
+ req.body = { **(request_options&.additional_body_parameters || {}), ssn: ssn, first_name: first_name, middle_initial: middle_initial, last_name: last_name, email: email, title: title, phone: phone, birthday: birthday, home_address: home_address }.compact
126
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories"
127
+ end
128
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
129
+ end
130
+ # Create a signatory with minimal information. This signatory can be invited to
131
+ # provide more information through the `PUT
132
+ # /v1/companies/{company_uuid}/signatories/{signatory_uuid}` endpoint. This will
133
+ # start the identity verification process and allow the signatory to be verified
134
+ # to sign documents.
135
+ #
136
+ # @param company_uuid [String] The UUID of the company
137
+ # @param first_name [String]
138
+ # @param last_name [String]
139
+ # @param title [String]
140
+ # @param email [String]
141
+ # @param request_options [Gusto::RequestOptions]
142
+ # @return [Gusto::Signatories::Signatory]
143
+ # @example
144
+ # api = Gusto::Client.new(
145
+ # base_url: "https://api.example.com",
146
+ # environment: Gusto::Environment::DEMO,
147
+ # token: "YOUR_AUTH_TOKEN"
148
+ # )
149
+ # api.companies.signatories.invite(company_uuid: "company_uuid", email: "email")
150
+ def invite(company_uuid:, first_name: nil, last_name: nil, title: nil, email:, request_options: nil)
151
+ response = @request_client.conn.post do | req |
152
+ unless request_options&.timeout_in_seconds.nil?
153
+ req.options.timeout = request_options.timeout_in_seconds
154
+ end
155
+ unless request_options&.token.nil?
156
+ req.headers["Authorization"] = request_options.token
157
+ end
158
+ unless request_options&.gusto_api_version.nil?
159
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
160
+ end
161
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
162
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
163
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
164
+ end
165
+ req.body = { **(request_options&.additional_body_parameters || {}), first_name: first_name, last_name: last_name, title: title, email: email }.compact
166
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/invite"
167
+ end
168
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
169
+ end
170
+ # Update a signatory that has been either invited or created. If the signatory has
171
+ # been created with minimal information through the `POST
172
+ # /v1/companies/{company_uuid}/signatories/invite` endpoint, then the first update
173
+ # must contain all attributes specified in the request body in order to start the
174
+ # identity verification process.
175
+ # scope: `signatories:write`
176
+ #
177
+ # @param company_uuid [String] The UUID of the company
178
+ # @param signatory_uuid [String] The UUID of the signatory
179
+ # @param version [String] The current version of the object. See the versioning guide for information on
180
+ # how to use this field.
181
+ # @param first_name [String]
182
+ # @param middle_initial [String]
183
+ # @param last_name [String]
184
+ # @param title [String]
185
+ # @param phone [String]
186
+ # @param birthday [String]
187
+ # @param ssn [String]
188
+ # @param home_address [Hash] Request of type Gusto::Companies::Signatories::SignatoriesUpdateRequestHomeAddress, as a Hash
189
+ # * :street1 (String)
190
+ # * :street2 (String)
191
+ # * :city (String)
192
+ # * :state (String)
193
+ # * :zip (String)
194
+ # @param request_options [Gusto::RequestOptions]
195
+ # @return [Gusto::Signatories::Signatory]
196
+ # @example
197
+ # api = Gusto::Client.new(
198
+ # base_url: "https://api.example.com",
199
+ # environment: Gusto::Environment::DEMO,
200
+ # token: "YOUR_AUTH_TOKEN"
201
+ # )
202
+ # api.companies.signatories.update(company_uuid: "company_uuid", signatory_uuid: "signatory_uuid")
203
+ def update(company_uuid:, signatory_uuid:, version: nil, first_name: nil, middle_initial: nil, last_name: nil, title: nil, phone: nil, birthday: nil, ssn: nil, home_address: nil, request_options: nil)
204
+ response = @request_client.conn.put do | req |
205
+ unless request_options&.timeout_in_seconds.nil?
206
+ req.options.timeout = request_options.timeout_in_seconds
207
+ end
208
+ unless request_options&.token.nil?
209
+ req.headers["Authorization"] = request_options.token
210
+ end
211
+ unless request_options&.gusto_api_version.nil?
212
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
213
+ end
214
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
215
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
216
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
217
+ end
218
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, first_name: first_name, middle_initial: middle_initial, last_name: last_name, title: title, phone: phone, birthday: birthday, ssn: ssn, home_address: home_address }.compact
219
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/#{signatory_uuid}"
220
+ end
221
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
222
+ end
223
+ # Delete a company signatory.
224
+ # scope: `signatories:manage`
225
+ #
226
+ # @param company_uuid [String] The UUID of the company
227
+ # @param signatory_uuid [String] The UUID of the signatory
228
+ # @param request_options [Gusto::RequestOptions]
229
+ # @return [Void]
230
+ # @example
231
+ # api = Gusto::Client.new(
232
+ # base_url: "https://api.example.com",
233
+ # environment: Gusto::Environment::DEMO,
234
+ # token: "YOUR_AUTH_TOKEN"
235
+ # )
236
+ # api.companies.signatories.delete(company_uuid: "company_uuid", signatory_uuid: "signatory_uuid")
237
+ def delete(company_uuid:, signatory_uuid:, request_options: nil)
238
+ response = @request_client.conn.delete do | req |
239
+ unless request_options&.timeout_in_seconds.nil?
240
+ req.options.timeout = request_options.timeout_in_seconds
241
+ end
242
+ unless request_options&.token.nil?
243
+ req.headers["Authorization"] = request_options.token
244
+ end
245
+ unless request_options&.gusto_api_version.nil?
246
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
247
+ end
248
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
249
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
250
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
251
+ end
252
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
253
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
254
+ end
255
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/#{signatory_uuid}"
256
+ end
257
+ end
258
+ end
259
+ class AsyncSignatoriesClient
260
+ # @return [Gusto::AsyncRequestClient]
261
+ attr_reader :request_client
262
+
263
+
264
+ # @param request_client [Gusto::RequestClient]
265
+ # @return [Gusto::Companies::AsyncSignatoriesClient]
266
+ def initialize(request_client:)
267
+ @request_client = request_client
268
+ end
269
+ # Returns company signatories. Currently we only support a single signatory per
270
+ # company.
271
+ # scope: `signatories:read`
272
+ #
273
+ # @param company_uuid [String] The UUID of the company
274
+ # @param request_options [Gusto::RequestOptions]
275
+ # @return [Array<Gusto::Signatories::Signatory>]
276
+ # @example
277
+ # api = Gusto::Client.new(
278
+ # base_url: "https://api.example.com",
279
+ # environment: Gusto::Environment::DEMO,
280
+ # token: "YOUR_AUTH_TOKEN"
281
+ # )
282
+ # api.companies.signatories.get(company_uuid: "company_uuid")
283
+ def get(company_uuid:, request_options: nil)
284
+ Async do
285
+ response = @request_client.conn.get do | req |
286
+ unless request_options&.timeout_in_seconds.nil?
287
+ req.options.timeout = request_options.timeout_in_seconds
288
+ end
289
+ unless request_options&.token.nil?
290
+ req.headers["Authorization"] = request_options.token
291
+ end
292
+ unless request_options&.gusto_api_version.nil?
293
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
294
+ end
295
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
296
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
297
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
298
+ end
299
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
300
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
301
+ end
302
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories"
303
+ end
304
+ parsed_json = JSON.parse(response.body)
305
+ parsed_json&.map do | item |
306
+ item = item.to_json
307
+ Gusto::Signatories::Signatory.from_json(json_object: item)
308
+ end
309
+ end
310
+ end
311
+ # Create a company signatory with complete information.
312
+ # A signatory can legally sign forms once the identity verification process is
313
+ # successful.
314
+ # The signatory should be an officer, owner, general partner or LLC member
315
+ # manager, plan administrator, fiduciary, or an authorized representative who is
316
+ # designated to sign agreements on the company's behalf. An officer is the
317
+ # president, vice president, treasurer, chief accounting officer, etc. There can
318
+ # only be a single primary signatory in a company.
319
+ # scope: `signatories:manage`
320
+ #
321
+ # @param company_uuid [String] The UUID of the company
322
+ # @param ssn [String]
323
+ # @param first_name [String]
324
+ # @param middle_initial [String]
325
+ # @param last_name [String]
326
+ # @param email [String]
327
+ # @param title [String]
328
+ # @param phone [String]
329
+ # @param birthday [String]
330
+ # @param home_address [Hash] The signatory's home addressRequest of type Gusto::Companies::Signatories::SignatoriesCreateRequestHomeAddress, as a Hash
331
+ # * :street1 (String)
332
+ # * :street2 (String)
333
+ # * :city (String)
334
+ # * :state (String)
335
+ # * :zip (String)
336
+ # @param request_options [Gusto::RequestOptions]
337
+ # @return [Gusto::Signatories::Signatory]
338
+ # @example
339
+ # api = Gusto::Client.new(
340
+ # base_url: "https://api.example.com",
341
+ # environment: Gusto::Environment::DEMO,
342
+ # token: "YOUR_AUTH_TOKEN"
343
+ # )
344
+ # api.companies.signatories.create(
345
+ # company_uuid: "company_uuid",
346
+ # ssn: "ssn",
347
+ # first_name: "first_name",
348
+ # last_name: "last_name",
349
+ # email: "email",
350
+ # title: "title",
351
+ # phone: "phone",
352
+ # birthday: "birthday",
353
+ # home_address: { street1: "street_1", city: "city", state: "state", zip: "zip" }
354
+ # )
355
+ def create(company_uuid:, ssn:, first_name:, middle_initial: nil, last_name:, email:, title:, phone:, birthday:, home_address:, request_options: nil)
356
+ Async do
357
+ response = @request_client.conn.post do | req |
358
+ unless request_options&.timeout_in_seconds.nil?
359
+ req.options.timeout = request_options.timeout_in_seconds
360
+ end
361
+ unless request_options&.token.nil?
362
+ req.headers["Authorization"] = request_options.token
363
+ end
364
+ unless request_options&.gusto_api_version.nil?
365
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
366
+ end
367
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
368
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
369
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
370
+ end
371
+ req.body = { **(request_options&.additional_body_parameters || {}), ssn: ssn, first_name: first_name, middle_initial: middle_initial, last_name: last_name, email: email, title: title, phone: phone, birthday: birthday, home_address: home_address }.compact
372
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories"
373
+ end
374
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
375
+ end
376
+ end
377
+ # Create a signatory with minimal information. This signatory can be invited to
378
+ # provide more information through the `PUT
379
+ # /v1/companies/{company_uuid}/signatories/{signatory_uuid}` endpoint. This will
380
+ # start the identity verification process and allow the signatory to be verified
381
+ # to sign documents.
382
+ #
383
+ # @param company_uuid [String] The UUID of the company
384
+ # @param first_name [String]
385
+ # @param last_name [String]
386
+ # @param title [String]
387
+ # @param email [String]
388
+ # @param request_options [Gusto::RequestOptions]
389
+ # @return [Gusto::Signatories::Signatory]
390
+ # @example
391
+ # api = Gusto::Client.new(
392
+ # base_url: "https://api.example.com",
393
+ # environment: Gusto::Environment::DEMO,
394
+ # token: "YOUR_AUTH_TOKEN"
395
+ # )
396
+ # api.companies.signatories.invite(company_uuid: "company_uuid", email: "email")
397
+ def invite(company_uuid:, first_name: nil, last_name: nil, title: nil, email:, request_options: nil)
398
+ Async do
399
+ response = @request_client.conn.post do | req |
400
+ unless request_options&.timeout_in_seconds.nil?
401
+ req.options.timeout = request_options.timeout_in_seconds
402
+ end
403
+ unless request_options&.token.nil?
404
+ req.headers["Authorization"] = request_options.token
405
+ end
406
+ unless request_options&.gusto_api_version.nil?
407
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
408
+ end
409
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
410
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
411
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
412
+ end
413
+ req.body = { **(request_options&.additional_body_parameters || {}), first_name: first_name, last_name: last_name, title: title, email: email }.compact
414
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/invite"
415
+ end
416
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
417
+ end
418
+ end
419
+ # Update a signatory that has been either invited or created. If the signatory has
420
+ # been created with minimal information through the `POST
421
+ # /v1/companies/{company_uuid}/signatories/invite` endpoint, then the first update
422
+ # must contain all attributes specified in the request body in order to start the
423
+ # identity verification process.
424
+ # scope: `signatories:write`
425
+ #
426
+ # @param company_uuid [String] The UUID of the company
427
+ # @param signatory_uuid [String] The UUID of the signatory
428
+ # @param version [String] The current version of the object. See the versioning guide for information on
429
+ # how to use this field.
430
+ # @param first_name [String]
431
+ # @param middle_initial [String]
432
+ # @param last_name [String]
433
+ # @param title [String]
434
+ # @param phone [String]
435
+ # @param birthday [String]
436
+ # @param ssn [String]
437
+ # @param home_address [Hash] Request of type Gusto::Companies::Signatories::SignatoriesUpdateRequestHomeAddress, as a Hash
438
+ # * :street1 (String)
439
+ # * :street2 (String)
440
+ # * :city (String)
441
+ # * :state (String)
442
+ # * :zip (String)
443
+ # @param request_options [Gusto::RequestOptions]
444
+ # @return [Gusto::Signatories::Signatory]
445
+ # @example
446
+ # api = Gusto::Client.new(
447
+ # base_url: "https://api.example.com",
448
+ # environment: Gusto::Environment::DEMO,
449
+ # token: "YOUR_AUTH_TOKEN"
450
+ # )
451
+ # api.companies.signatories.update(company_uuid: "company_uuid", signatory_uuid: "signatory_uuid")
452
+ def update(company_uuid:, signatory_uuid:, version: nil, first_name: nil, middle_initial: nil, last_name: nil, title: nil, phone: nil, birthday: nil, ssn: nil, home_address: nil, request_options: nil)
453
+ Async do
454
+ response = @request_client.conn.put do | req |
455
+ unless request_options&.timeout_in_seconds.nil?
456
+ req.options.timeout = request_options.timeout_in_seconds
457
+ end
458
+ unless request_options&.token.nil?
459
+ req.headers["Authorization"] = request_options.token
460
+ end
461
+ unless request_options&.gusto_api_version.nil?
462
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
463
+ end
464
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
465
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
466
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
467
+ end
468
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, first_name: first_name, middle_initial: middle_initial, last_name: last_name, title: title, phone: phone, birthday: birthday, ssn: ssn, home_address: home_address }.compact
469
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/#{signatory_uuid}"
470
+ end
471
+ Gusto::Signatories::Signatory.from_json(json_object: response.body)
472
+ end
473
+ end
474
+ # Delete a company signatory.
475
+ # scope: `signatories:manage`
476
+ #
477
+ # @param company_uuid [String] The UUID of the company
478
+ # @param signatory_uuid [String] The UUID of the signatory
479
+ # @param request_options [Gusto::RequestOptions]
480
+ # @return [Void]
481
+ # @example
482
+ # api = Gusto::Client.new(
483
+ # base_url: "https://api.example.com",
484
+ # environment: Gusto::Environment::DEMO,
485
+ # token: "YOUR_AUTH_TOKEN"
486
+ # )
487
+ # api.companies.signatories.delete(company_uuid: "company_uuid", signatory_uuid: "signatory_uuid")
488
+ def delete(company_uuid:, signatory_uuid:, request_options: nil)
489
+ Async do
490
+ response = @request_client.conn.delete do | req |
491
+ unless request_options&.timeout_in_seconds.nil?
492
+ req.options.timeout = request_options.timeout_in_seconds
493
+ end
494
+ unless request_options&.token.nil?
495
+ req.headers["Authorization"] = request_options.token
496
+ end
497
+ unless request_options&.gusto_api_version.nil?
498
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
499
+ end
500
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
501
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
502
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
503
+ end
504
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
505
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
506
+ end
507
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/signatories/#{signatory_uuid}"
508
+ end
509
+ end
510
+ end
511
+ end
512
+ end
513
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Companies
7
+ module Signatories
8
+ # The signatory's home address
9
+ class SignatoriesCreateRequestHomeAddress
10
+ # @return [String]
11
+ attr_reader :street1
12
+ # @return [String]
13
+ attr_reader :street2
14
+ # @return [String]
15
+ attr_reader :city
16
+ # @return [String]
17
+ attr_reader :state
18
+ # @return [String]
19
+ attr_reader :zip
20
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
21
+ attr_reader :additional_properties
22
+ # @return [Object]
23
+ attr_reader :_field_set
24
+ protected :_field_set
25
+
26
+ OMIT = Object.new
27
+
28
+ # @param street1 [String]
29
+ # @param street2 [String]
30
+ # @param city [String]
31
+ # @param state [String]
32
+ # @param zip [String]
33
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
34
+ # @return [Gusto::Companies::Signatories::SignatoriesCreateRequestHomeAddress]
35
+ def initialize(street1:, street2: OMIT, city:, state:, zip:, additional_properties: nil)
36
+ @street1 = street1
37
+ @street2 = street2 if street2 != OMIT
38
+ @city = city
39
+ @state = state
40
+ @zip = zip
41
+ @additional_properties = additional_properties
42
+ @_field_set = { "street_1": street1, "street_2": street2, "city": city, "state": state, "zip": zip }.reject do | _k, v |
43
+ v == OMIT
44
+ end
45
+ end
46
+ # Deserialize a JSON object to an instance of SignatoriesCreateRequestHomeAddress
47
+ #
48
+ # @param json_object [String]
49
+ # @return [Gusto::Companies::Signatories::SignatoriesCreateRequestHomeAddress]
50
+ def self.from_json(json_object:)
51
+ struct = JSON.parse(json_object, object_class: OpenStruct)
52
+ parsed_json = JSON.parse(json_object)
53
+ street1 = parsed_json["street_1"]
54
+ street2 = parsed_json["street_2"]
55
+ city = parsed_json["city"]
56
+ state = parsed_json["state"]
57
+ zip = parsed_json["zip"]
58
+ new(
59
+ street1: street1,
60
+ street2: street2,
61
+ city: city,
62
+ state: state,
63
+ zip: zip,
64
+ additional_properties: struct
65
+ )
66
+ end
67
+ # Serialize an instance of SignatoriesCreateRequestHomeAddress to a JSON object
68
+ #
69
+ # @return [String]
70
+ def to_json
71
+ @_field_set&.to_json
72
+ end
73
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
74
+ # hash and check each fields type against the current object's property
75
+ # definitions.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Void]
79
+ def self.validate_raw(obj:)
80
+ obj.street1.is_a?(String) != false || raise("Passed value for field obj.street1 is not the expected type, validation failed.")
81
+ obj.street2&.is_a?(String) != false || raise("Passed value for field obj.street2 is not the expected type, validation failed.")
82
+ obj.city.is_a?(String) != false || raise("Passed value for field obj.city is not the expected type, validation failed.")
83
+ obj.state.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
84
+ obj.zip.is_a?(String) != false || raise("Passed value for field obj.zip is not the expected type, validation failed.")
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end