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,627 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "types/webhook_subscription"
4
+ require "json"
5
+ require_relative "types/webhooks_create_request_subscription_types_item"
6
+ require_relative "types/webhooks_update_request_subscription_types_item"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require_relative "../../requests"
15
+
16
+ module Gusto
17
+ class WebhooksClient
18
+ # @return [Gusto::RequestClient]
19
+ attr_reader :request_client
20
+
21
+
22
+ # @param request_client [Gusto::RequestClient]
23
+ # @return [Gusto::WebhooksClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ end
27
+ # Returns all webhook subscriptions associated with the provided Partner API
28
+ # token.
29
+ # > 📘 System Access Authentication
30
+ # >
31
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
32
+ # in the HTTP Authorization
33
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
34
+ # scope: `webhook_subscriptions:read`
35
+ #
36
+ # @param request_options [Gusto::RequestOptions]
37
+ # @return [Array<Gusto::Webhooks::WebhookSubscription>]
38
+ # @example
39
+ # api = Gusto::Client.new(
40
+ # base_url: "https://api.example.com",
41
+ # environment: Gusto::Environment::DEMO,
42
+ # token: "YOUR_AUTH_TOKEN"
43
+ # )
44
+ # api.webhooks.list
45
+ def list(request_options: nil)
46
+ response = @request_client.conn.get do | req |
47
+ unless request_options&.timeout_in_seconds.nil?
48
+ req.options.timeout = request_options.timeout_in_seconds
49
+ end
50
+ unless request_options&.token.nil?
51
+ req.headers["Authorization"] = request_options.token
52
+ end
53
+ unless request_options&.gusto_api_version.nil?
54
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
55
+ end
56
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
57
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
58
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
59
+ end
60
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
61
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
62
+ end
63
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions"
64
+ end
65
+ parsed_json = JSON.parse(response.body)
66
+ parsed_json&.map do | item |
67
+ item = item.to_json
68
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: item)
69
+ end
70
+ end
71
+ # Create a webhook subscription to receive events of the specified
72
+ # subscription_types whenever there is a state change.
73
+ # > 📘 System Access Authentication
74
+ # >
75
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
76
+ # in the HTTP Authorization
77
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
78
+ # scope: `webhook_subscriptions:write`
79
+ #
80
+ # @param url [String]
81
+ # @param subscription_types [Array<Gusto::Webhooks::WebhooksCreateRequestSubscriptionTypesItem>]
82
+ # @param request_options [Gusto::RequestOptions]
83
+ # @return [Gusto::Webhooks::WebhookSubscription]
84
+ # @example
85
+ # api = Gusto::Client.new(
86
+ # base_url: "https://api.example.com",
87
+ # environment: Gusto::Environment::DEMO,
88
+ # token: "YOUR_AUTH_TOKEN"
89
+ # )
90
+ # api.webhooks.create(url: "https://partner-app.com/subscriber", subscription_types: [COMPANY, EMPLOYEE])
91
+ def create(url:, subscription_types:, request_options: nil)
92
+ response = @request_client.conn.post do | req |
93
+ unless request_options&.timeout_in_seconds.nil?
94
+ req.options.timeout = request_options.timeout_in_seconds
95
+ end
96
+ unless request_options&.token.nil?
97
+ req.headers["Authorization"] = request_options.token
98
+ end
99
+ unless request_options&.gusto_api_version.nil?
100
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
101
+ end
102
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
103
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
104
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
105
+ end
106
+ req.body = { **(request_options&.additional_body_parameters || {}), url: url, subscription_types: subscription_types }.compact
107
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions"
108
+ end
109
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
110
+ end
111
+ # Returns the Webhook Subscription associated with the provided UUID.
112
+ # > 📘 System Access Authentication
113
+ # >
114
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
115
+ # in the HTTP Authorization
116
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
117
+ # scope: `webhook_subscriptions:read`
118
+ #
119
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
120
+ # @param request_options [Gusto::RequestOptions]
121
+ # @return [Gusto::Webhooks::WebhookSubscription]
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.webhooks.get(webhook_subscription_uuid: "webhook_subscription_uuid")
129
+ def get(webhook_subscription_uuid:, request_options: nil)
130
+ response = @request_client.conn.get do | req |
131
+ unless request_options&.timeout_in_seconds.nil?
132
+ req.options.timeout = request_options.timeout_in_seconds
133
+ end
134
+ unless request_options&.token.nil?
135
+ req.headers["Authorization"] = request_options.token
136
+ end
137
+ unless request_options&.gusto_api_version.nil?
138
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
139
+ end
140
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
141
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
142
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
143
+ end
144
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
145
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
146
+ end
147
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
148
+ end
149
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
150
+ end
151
+ # Updates the Webhook Subscription associated with the provided UUID.
152
+ # > 📘 System Access Authentication
153
+ # >
154
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
155
+ # in the HTTP Authorization
156
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
157
+ # scope: `webhook_subscriptions:write`
158
+ #
159
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
160
+ # @param subscription_types [Array<Gusto::Webhooks::WebhooksUpdateRequestSubscriptionTypesItem>]
161
+ # @param request_options [Gusto::RequestOptions]
162
+ # @return [Gusto::Webhooks::WebhookSubscription]
163
+ # @example
164
+ # api = Gusto::Client.new(
165
+ # base_url: "https://api.example.com",
166
+ # environment: Gusto::Environment::DEMO,
167
+ # token: "YOUR_AUTH_TOKEN"
168
+ # )
169
+ # api.webhooks.update(webhook_subscription_uuid: "webhook_subscription_uuid", subscription_types: [COMPANY, EMPLOYEE])
170
+ def update(webhook_subscription_uuid:, subscription_types:, request_options: nil)
171
+ response = @request_client.conn.put do | req |
172
+ unless request_options&.timeout_in_seconds.nil?
173
+ req.options.timeout = request_options.timeout_in_seconds
174
+ end
175
+ unless request_options&.token.nil?
176
+ req.headers["Authorization"] = request_options.token
177
+ end
178
+ unless request_options&.gusto_api_version.nil?
179
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
180
+ end
181
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
182
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
183
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
184
+ end
185
+ req.body = { **(request_options&.additional_body_parameters || {}), subscription_types: subscription_types }.compact
186
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
187
+ end
188
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
189
+ end
190
+ # Deletes the Webhook Subscription associated with the provided UUID.
191
+ # > 📘 System Access Authentication
192
+ # >
193
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
194
+ # in the HTTP Authorization
195
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
196
+ # scope: `webhook_subscriptions:write`
197
+ #
198
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
199
+ # @param request_options [Gusto::RequestOptions]
200
+ # @return [Void]
201
+ # @example
202
+ # api = Gusto::Client.new(
203
+ # base_url: "https://api.example.com",
204
+ # environment: Gusto::Environment::DEMO,
205
+ # token: "YOUR_AUTH_TOKEN"
206
+ # )
207
+ # api.webhooks.delete(webhook_subscription_uuid: "webhook_subscription_uuid")
208
+ def delete(webhook_subscription_uuid:, request_options: nil)
209
+ response = @request_client.conn.delete do | req |
210
+ unless request_options&.timeout_in_seconds.nil?
211
+ req.options.timeout = request_options.timeout_in_seconds
212
+ end
213
+ unless request_options&.token.nil?
214
+ req.headers["Authorization"] = request_options.token
215
+ end
216
+ unless request_options&.gusto_api_version.nil?
217
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
218
+ end
219
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
220
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
221
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
222
+ end
223
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
224
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
225
+ end
226
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
227
+ end
228
+ end
229
+ # When a webhook subscription is created, a `verification_token` is POSTed to the
230
+ # registered webhook subscription URL. This `verify` endpoint needs to be called
231
+ # with `verification_token` before webhook events can be sent to the registered
232
+ # webhook URL.
233
+ # Use the
234
+ # /v1/webhook_subscriptions/{webhook_subscription_uuid}/request_verification_token
235
+ # API to resend the `verification_token` to the Subscriber.
236
+ # > 📘 System Access Authentication
237
+ # >
238
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
239
+ # in the HTTP Authorization
240
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
241
+ # scope: `webhook_subscriptions:write`
242
+ #
243
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
244
+ # @param verification_token [String] The token POSTed to the Subscription URL.
245
+ # @param request_options [Gusto::RequestOptions]
246
+ # @return [Gusto::Webhooks::WebhookSubscription]
247
+ # @example
248
+ # api = Gusto::Client.new(
249
+ # base_url: "https://api.example.com",
250
+ # environment: Gusto::Environment::DEMO,
251
+ # token: "YOUR_AUTH_TOKEN"
252
+ # )
253
+ # api.webhooks.verify(webhook_subscription_uuid: "webhook_subscription_uuid", verification_token: "asefasedfe23e234easd")
254
+ def verify(webhook_subscription_uuid:, verification_token:, request_options: nil)
255
+ response = @request_client.conn.put do | req |
256
+ unless request_options&.timeout_in_seconds.nil?
257
+ req.options.timeout = request_options.timeout_in_seconds
258
+ end
259
+ unless request_options&.token.nil?
260
+ req.headers["Authorization"] = request_options.token
261
+ end
262
+ unless request_options&.gusto_api_version.nil?
263
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
264
+ end
265
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
266
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
267
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
268
+ end
269
+ req.body = { **(request_options&.additional_body_parameters || {}), verification_token: verification_token }.compact
270
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}/verify"
271
+ end
272
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
273
+ end
274
+ # Request that the webhook subscription `verification_token` be POSTed to the
275
+ # Subscription URL.
276
+ # > 📘 System Access Authentication
277
+ # >
278
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
279
+ # in the HTTP Authorization
280
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
281
+ # scope: `webhook_subscriptions:read`
282
+ #
283
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
284
+ # @param request_options [Gusto::RequestOptions]
285
+ # @return [Void]
286
+ # @example
287
+ # api = Gusto::Client.new(
288
+ # base_url: "https://api.example.com",
289
+ # environment: Gusto::Environment::DEMO,
290
+ # token: "YOUR_AUTH_TOKEN"
291
+ # )
292
+ # api.webhooks.get_verification_token(webhook_subscription_uuid: "webhook_subscription_uuid")
293
+ def get_verification_token(webhook_subscription_uuid:, request_options: nil)
294
+ response = @request_client.conn.get do | req |
295
+ unless request_options&.timeout_in_seconds.nil?
296
+ req.options.timeout = request_options.timeout_in_seconds
297
+ end
298
+ unless request_options&.token.nil?
299
+ req.headers["Authorization"] = request_options.token
300
+ end
301
+ unless request_options&.gusto_api_version.nil?
302
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
303
+ end
304
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
305
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
306
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
307
+ end
308
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
309
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
310
+ end
311
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}/request_verification_token"
312
+ end
313
+ end
314
+ end
315
+ class AsyncWebhooksClient
316
+ # @return [Gusto::AsyncRequestClient]
317
+ attr_reader :request_client
318
+
319
+
320
+ # @param request_client [Gusto::RequestClient]
321
+ # @return [Gusto::AsyncWebhooksClient]
322
+ def initialize(request_client:)
323
+ @request_client = request_client
324
+ end
325
+ # Returns all webhook subscriptions associated with the provided Partner API
326
+ # token.
327
+ # > 📘 System Access Authentication
328
+ # >
329
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
330
+ # in the HTTP Authorization
331
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
332
+ # scope: `webhook_subscriptions:read`
333
+ #
334
+ # @param request_options [Gusto::RequestOptions]
335
+ # @return [Array<Gusto::Webhooks::WebhookSubscription>]
336
+ # @example
337
+ # api = Gusto::Client.new(
338
+ # base_url: "https://api.example.com",
339
+ # environment: Gusto::Environment::DEMO,
340
+ # token: "YOUR_AUTH_TOKEN"
341
+ # )
342
+ # api.webhooks.list
343
+ def list(request_options: nil)
344
+ Async do
345
+ response = @request_client.conn.get do | req |
346
+ unless request_options&.timeout_in_seconds.nil?
347
+ req.options.timeout = request_options.timeout_in_seconds
348
+ end
349
+ unless request_options&.token.nil?
350
+ req.headers["Authorization"] = request_options.token
351
+ end
352
+ unless request_options&.gusto_api_version.nil?
353
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
354
+ end
355
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
356
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
357
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
358
+ end
359
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
360
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
361
+ end
362
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions"
363
+ end
364
+ parsed_json = JSON.parse(response.body)
365
+ parsed_json&.map do | item |
366
+ item = item.to_json
367
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: item)
368
+ end
369
+ end
370
+ end
371
+ # Create a webhook subscription to receive events of the specified
372
+ # subscription_types whenever there is a state change.
373
+ # > 📘 System Access Authentication
374
+ # >
375
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
376
+ # in the HTTP Authorization
377
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
378
+ # scope: `webhook_subscriptions:write`
379
+ #
380
+ # @param url [String]
381
+ # @param subscription_types [Array<Gusto::Webhooks::WebhooksCreateRequestSubscriptionTypesItem>]
382
+ # @param request_options [Gusto::RequestOptions]
383
+ # @return [Gusto::Webhooks::WebhookSubscription]
384
+ # @example
385
+ # api = Gusto::Client.new(
386
+ # base_url: "https://api.example.com",
387
+ # environment: Gusto::Environment::DEMO,
388
+ # token: "YOUR_AUTH_TOKEN"
389
+ # )
390
+ # api.webhooks.create(url: "https://partner-app.com/subscriber", subscription_types: [COMPANY, EMPLOYEE])
391
+ def create(url:, subscription_types:, request_options: nil)
392
+ Async do
393
+ response = @request_client.conn.post do | req |
394
+ unless request_options&.timeout_in_seconds.nil?
395
+ req.options.timeout = request_options.timeout_in_seconds
396
+ end
397
+ unless request_options&.token.nil?
398
+ req.headers["Authorization"] = request_options.token
399
+ end
400
+ unless request_options&.gusto_api_version.nil?
401
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
402
+ end
403
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
404
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
405
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
406
+ end
407
+ req.body = { **(request_options&.additional_body_parameters || {}), url: url, subscription_types: subscription_types }.compact
408
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions"
409
+ end
410
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
411
+ end
412
+ end
413
+ # Returns the Webhook Subscription associated with the provided UUID.
414
+ # > 📘 System Access Authentication
415
+ # >
416
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
417
+ # in the HTTP Authorization
418
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
419
+ # scope: `webhook_subscriptions:read`
420
+ #
421
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
422
+ # @param request_options [Gusto::RequestOptions]
423
+ # @return [Gusto::Webhooks::WebhookSubscription]
424
+ # @example
425
+ # api = Gusto::Client.new(
426
+ # base_url: "https://api.example.com",
427
+ # environment: Gusto::Environment::DEMO,
428
+ # token: "YOUR_AUTH_TOKEN"
429
+ # )
430
+ # api.webhooks.get(webhook_subscription_uuid: "webhook_subscription_uuid")
431
+ def get(webhook_subscription_uuid:, request_options: nil)
432
+ Async do
433
+ response = @request_client.conn.get do | req |
434
+ unless request_options&.timeout_in_seconds.nil?
435
+ req.options.timeout = request_options.timeout_in_seconds
436
+ end
437
+ unless request_options&.token.nil?
438
+ req.headers["Authorization"] = request_options.token
439
+ end
440
+ unless request_options&.gusto_api_version.nil?
441
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
442
+ end
443
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
444
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
445
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
446
+ end
447
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
448
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
449
+ end
450
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
451
+ end
452
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
453
+ end
454
+ end
455
+ # Updates the Webhook Subscription associated with the provided UUID.
456
+ # > 📘 System Access Authentication
457
+ # >
458
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
459
+ # in the HTTP Authorization
460
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
461
+ # scope: `webhook_subscriptions:write`
462
+ #
463
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
464
+ # @param subscription_types [Array<Gusto::Webhooks::WebhooksUpdateRequestSubscriptionTypesItem>]
465
+ # @param request_options [Gusto::RequestOptions]
466
+ # @return [Gusto::Webhooks::WebhookSubscription]
467
+ # @example
468
+ # api = Gusto::Client.new(
469
+ # base_url: "https://api.example.com",
470
+ # environment: Gusto::Environment::DEMO,
471
+ # token: "YOUR_AUTH_TOKEN"
472
+ # )
473
+ # api.webhooks.update(webhook_subscription_uuid: "webhook_subscription_uuid", subscription_types: [COMPANY, EMPLOYEE])
474
+ def update(webhook_subscription_uuid:, subscription_types:, request_options: nil)
475
+ Async do
476
+ response = @request_client.conn.put do | req |
477
+ unless request_options&.timeout_in_seconds.nil?
478
+ req.options.timeout = request_options.timeout_in_seconds
479
+ end
480
+ unless request_options&.token.nil?
481
+ req.headers["Authorization"] = request_options.token
482
+ end
483
+ unless request_options&.gusto_api_version.nil?
484
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
485
+ end
486
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
487
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
488
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
489
+ end
490
+ req.body = { **(request_options&.additional_body_parameters || {}), subscription_types: subscription_types }.compact
491
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
492
+ end
493
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
494
+ end
495
+ end
496
+ # Deletes the Webhook Subscription associated with the provided UUID.
497
+ # > 📘 System Access Authentication
498
+ # >
499
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
500
+ # in the HTTP Authorization
501
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
502
+ # scope: `webhook_subscriptions:write`
503
+ #
504
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
505
+ # @param request_options [Gusto::RequestOptions]
506
+ # @return [Void]
507
+ # @example
508
+ # api = Gusto::Client.new(
509
+ # base_url: "https://api.example.com",
510
+ # environment: Gusto::Environment::DEMO,
511
+ # token: "YOUR_AUTH_TOKEN"
512
+ # )
513
+ # api.webhooks.delete(webhook_subscription_uuid: "webhook_subscription_uuid")
514
+ def delete(webhook_subscription_uuid:, request_options: nil)
515
+ Async do
516
+ response = @request_client.conn.delete do | req |
517
+ unless request_options&.timeout_in_seconds.nil?
518
+ req.options.timeout = request_options.timeout_in_seconds
519
+ end
520
+ unless request_options&.token.nil?
521
+ req.headers["Authorization"] = request_options.token
522
+ end
523
+ unless request_options&.gusto_api_version.nil?
524
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
525
+ end
526
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
527
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
528
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
529
+ end
530
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
531
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
532
+ end
533
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}"
534
+ end
535
+ end
536
+ end
537
+ # When a webhook subscription is created, a `verification_token` is POSTed to the
538
+ # registered webhook subscription URL. This `verify` endpoint needs to be called
539
+ # with `verification_token` before webhook events can be sent to the registered
540
+ # webhook URL.
541
+ # Use the
542
+ # /v1/webhook_subscriptions/{webhook_subscription_uuid}/request_verification_token
543
+ # API to resend the `verification_token` to the Subscriber.
544
+ # > 📘 System Access Authentication
545
+ # >
546
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
547
+ # in the HTTP Authorization
548
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
549
+ # scope: `webhook_subscriptions:write`
550
+ #
551
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
552
+ # @param verification_token [String] The token POSTed to the Subscription URL.
553
+ # @param request_options [Gusto::RequestOptions]
554
+ # @return [Gusto::Webhooks::WebhookSubscription]
555
+ # @example
556
+ # api = Gusto::Client.new(
557
+ # base_url: "https://api.example.com",
558
+ # environment: Gusto::Environment::DEMO,
559
+ # token: "YOUR_AUTH_TOKEN"
560
+ # )
561
+ # api.webhooks.verify(webhook_subscription_uuid: "webhook_subscription_uuid", verification_token: "asefasedfe23e234easd")
562
+ def verify(webhook_subscription_uuid:, verification_token:, request_options: nil)
563
+ Async do
564
+ response = @request_client.conn.put do | req |
565
+ unless request_options&.timeout_in_seconds.nil?
566
+ req.options.timeout = request_options.timeout_in_seconds
567
+ end
568
+ unless request_options&.token.nil?
569
+ req.headers["Authorization"] = request_options.token
570
+ end
571
+ unless request_options&.gusto_api_version.nil?
572
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
573
+ end
574
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
575
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
576
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
577
+ end
578
+ req.body = { **(request_options&.additional_body_parameters || {}), verification_token: verification_token }.compact
579
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}/verify"
580
+ end
581
+ Gusto::Webhooks::WebhookSubscription.from_json(json_object: response.body)
582
+ end
583
+ end
584
+ # Request that the webhook subscription `verification_token` be POSTed to the
585
+ # Subscription URL.
586
+ # > 📘 System Access Authentication
587
+ # >
588
+ # > This endpoint uses the [Bearer Auth scheme with the system-level access token
589
+ # in the HTTP Authorization
590
+ # header](https://docs.gusto.com/embedded-payroll/docs/system-access).
591
+ # scope: `webhook_subscriptions:read`
592
+ #
593
+ # @param webhook_subscription_uuid [String] The webhook subscription UUID.
594
+ # @param request_options [Gusto::RequestOptions]
595
+ # @return [Void]
596
+ # @example
597
+ # api = Gusto::Client.new(
598
+ # base_url: "https://api.example.com",
599
+ # environment: Gusto::Environment::DEMO,
600
+ # token: "YOUR_AUTH_TOKEN"
601
+ # )
602
+ # api.webhooks.get_verification_token(webhook_subscription_uuid: "webhook_subscription_uuid")
603
+ def get_verification_token(webhook_subscription_uuid:, request_options: nil)
604
+ Async do
605
+ response = @request_client.conn.get do | req |
606
+ unless request_options&.timeout_in_seconds.nil?
607
+ req.options.timeout = request_options.timeout_in_seconds
608
+ end
609
+ unless request_options&.token.nil?
610
+ req.headers["Authorization"] = request_options.token
611
+ end
612
+ unless request_options&.gusto_api_version.nil?
613
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
614
+ end
615
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
616
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
617
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
618
+ end
619
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
620
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
621
+ end
622
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/webhook_subscriptions/#{webhook_subscription_uuid}/request_verification_token"
623
+ end
624
+ end
625
+ end
626
+ end
627
+ end