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,269 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../documents/types/document"
4
+ require_relative "../../types/document_pdf"
5
+ require_relative "types/documents_sign_request_fields_item"
6
+ require_relative "../../documents/types/document_signed"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require_relative "../../../requests"
11
+
12
+ module Gusto
13
+ module Contractors
14
+ class DocumentsClient
15
+ # @return [Gusto::RequestClient]
16
+ attr_reader :request_client
17
+
18
+
19
+ # @param request_client [Gusto::RequestClient]
20
+ # @return [Gusto::Contractors::DocumentsClient]
21
+ def initialize(request_client:)
22
+ @request_client = request_client
23
+ end
24
+ # Get a contractor document.
25
+ # scope: `contractor_documents:read`
26
+ #
27
+ # @param document_uuid [String] The ID or UUID of the document
28
+ # @param request_options [Gusto::RequestOptions]
29
+ # @return [Gusto::Documents::Document]
30
+ # @example
31
+ # api = Gusto::Client.new(
32
+ # base_url: "https://api.example.com",
33
+ # environment: Gusto::Environment::DEMO,
34
+ # token: "YOUR_AUTH_TOKEN"
35
+ # )
36
+ # api.contractors.documents.get(document_uuid: "document_uuid")
37
+ def get(document_uuid:, request_options: nil)
38
+ response = @request_client.conn.get do | req |
39
+ unless request_options&.timeout_in_seconds.nil?
40
+ req.options.timeout = request_options.timeout_in_seconds
41
+ end
42
+ unless request_options&.token.nil?
43
+ req.headers["Authorization"] = request_options.token
44
+ end
45
+ unless request_options&.gusto_api_version.nil?
46
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
47
+ end
48
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
49
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
50
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
51
+ end
52
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
53
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
54
+ end
55
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}"
56
+ end
57
+ Gusto::Documents::Document.from_json(json_object: response.body)
58
+ end
59
+ # Get the contractor document pdf.
60
+ # scope: `contractor_documents:read`
61
+ #
62
+ # @param document_uuid [String] The ID or UUID of the document
63
+ # @param request_options [Gusto::RequestOptions]
64
+ # @return [Gusto::DocumentPdf]
65
+ # @example
66
+ # api = Gusto::Client.new(
67
+ # base_url: "https://api.example.com",
68
+ # environment: Gusto::Environment::DEMO,
69
+ # token: "YOUR_AUTH_TOKEN"
70
+ # )
71
+ # api.contractors.documents.get_pdf(document_uuid: "document_uuid")
72
+ def get_pdf(document_uuid:, request_options: nil)
73
+ response = @request_client.conn.get do | req |
74
+ unless request_options&.timeout_in_seconds.nil?
75
+ req.options.timeout = request_options.timeout_in_seconds
76
+ end
77
+ unless request_options&.token.nil?
78
+ req.headers["Authorization"] = request_options.token
79
+ end
80
+ unless request_options&.gusto_api_version.nil?
81
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
82
+ end
83
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
84
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
85
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
86
+ end
87
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
88
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
89
+ end
90
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}/pdf"
91
+ end
92
+ Gusto::DocumentPdf.from_json(json_object: response.body)
93
+ end
94
+ # Sign a contractor document.
95
+ # scope: `contractor_documents:write`
96
+ #
97
+ # @param document_uuid [String] The ID or UUID of the document
98
+ # @param fields [Array<Hash>] List of fields and the values they will be set to.Request of type Array<Gusto::Contractors::Documents::DocumentsSignRequestFieldsItem>, as a Hash
99
+ # * :key (String)
100
+ # * :value (String)
101
+ # @param agree [Boolean] Whether you agree to sign electronically
102
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
103
+ # @param request_options [Gusto::RequestOptions]
104
+ # @return [Gusto::Documents::DocumentSigned]
105
+ # @example
106
+ # api = Gusto::Client.new(
107
+ # base_url: "https://api.example.com",
108
+ # environment: Gusto::Environment::DEMO,
109
+ # token: "YOUR_AUTH_TOKEN"
110
+ # )
111
+ # api.contractors.documents.sign(
112
+ # document_uuid: "document_uuid",
113
+ # fields: [{ }],
114
+ # agree: true,
115
+ # signed_by_ip_address: "signed_by_ip_address"
116
+ # )
117
+ def sign(document_uuid:, fields:, agree:, signed_by_ip_address:, request_options: nil)
118
+ response = @request_client.conn.put do | req |
119
+ unless request_options&.timeout_in_seconds.nil?
120
+ req.options.timeout = request_options.timeout_in_seconds
121
+ end
122
+ unless request_options&.token.nil?
123
+ req.headers["Authorization"] = request_options.token
124
+ end
125
+ unless request_options&.gusto_api_version.nil?
126
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
127
+ end
128
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
129
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
130
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
131
+ end
132
+ req.body = { **(request_options&.additional_body_parameters || {}), fields: fields, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
133
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}/sign"
134
+ end
135
+ Gusto::Documents::DocumentSigned.from_json(json_object: response.body)
136
+ end
137
+ end
138
+ class AsyncDocumentsClient
139
+ # @return [Gusto::AsyncRequestClient]
140
+ attr_reader :request_client
141
+
142
+
143
+ # @param request_client [Gusto::RequestClient]
144
+ # @return [Gusto::Contractors::AsyncDocumentsClient]
145
+ def initialize(request_client:)
146
+ @request_client = request_client
147
+ end
148
+ # Get a contractor document.
149
+ # scope: `contractor_documents:read`
150
+ #
151
+ # @param document_uuid [String] The ID or UUID of the document
152
+ # @param request_options [Gusto::RequestOptions]
153
+ # @return [Gusto::Documents::Document]
154
+ # @example
155
+ # api = Gusto::Client.new(
156
+ # base_url: "https://api.example.com",
157
+ # environment: Gusto::Environment::DEMO,
158
+ # token: "YOUR_AUTH_TOKEN"
159
+ # )
160
+ # api.contractors.documents.get(document_uuid: "document_uuid")
161
+ def get(document_uuid:, request_options: nil)
162
+ Async do
163
+ response = @request_client.conn.get do | req |
164
+ unless request_options&.timeout_in_seconds.nil?
165
+ req.options.timeout = request_options.timeout_in_seconds
166
+ end
167
+ unless request_options&.token.nil?
168
+ req.headers["Authorization"] = request_options.token
169
+ end
170
+ unless request_options&.gusto_api_version.nil?
171
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
172
+ end
173
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
174
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
175
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
176
+ end
177
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
178
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
179
+ end
180
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}"
181
+ end
182
+ Gusto::Documents::Document.from_json(json_object: response.body)
183
+ end
184
+ end
185
+ # Get the contractor document pdf.
186
+ # scope: `contractor_documents:read`
187
+ #
188
+ # @param document_uuid [String] The ID or UUID of the document
189
+ # @param request_options [Gusto::RequestOptions]
190
+ # @return [Gusto::DocumentPdf]
191
+ # @example
192
+ # api = Gusto::Client.new(
193
+ # base_url: "https://api.example.com",
194
+ # environment: Gusto::Environment::DEMO,
195
+ # token: "YOUR_AUTH_TOKEN"
196
+ # )
197
+ # api.contractors.documents.get_pdf(document_uuid: "document_uuid")
198
+ def get_pdf(document_uuid:, request_options: nil)
199
+ Async do
200
+ response = @request_client.conn.get do | req |
201
+ unless request_options&.timeout_in_seconds.nil?
202
+ req.options.timeout = request_options.timeout_in_seconds
203
+ end
204
+ unless request_options&.token.nil?
205
+ req.headers["Authorization"] = request_options.token
206
+ end
207
+ unless request_options&.gusto_api_version.nil?
208
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
209
+ end
210
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
211
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
212
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
213
+ end
214
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
215
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
216
+ end
217
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}/pdf"
218
+ end
219
+ Gusto::DocumentPdf.from_json(json_object: response.body)
220
+ end
221
+ end
222
+ # Sign a contractor document.
223
+ # scope: `contractor_documents:write`
224
+ #
225
+ # @param document_uuid [String] The ID or UUID of the document
226
+ # @param fields [Array<Hash>] List of fields and the values they will be set to.Request of type Array<Gusto::Contractors::Documents::DocumentsSignRequestFieldsItem>, as a Hash
227
+ # * :key (String)
228
+ # * :value (String)
229
+ # @param agree [Boolean] Whether you agree to sign electronically
230
+ # @param signed_by_ip_address [String] The IP address of the signatory who signed the form.
231
+ # @param request_options [Gusto::RequestOptions]
232
+ # @return [Gusto::Documents::DocumentSigned]
233
+ # @example
234
+ # api = Gusto::Client.new(
235
+ # base_url: "https://api.example.com",
236
+ # environment: Gusto::Environment::DEMO,
237
+ # token: "YOUR_AUTH_TOKEN"
238
+ # )
239
+ # api.contractors.documents.sign(
240
+ # document_uuid: "document_uuid",
241
+ # fields: [{ }],
242
+ # agree: true,
243
+ # signed_by_ip_address: "signed_by_ip_address"
244
+ # )
245
+ def sign(document_uuid:, fields:, agree:, signed_by_ip_address:, request_options: nil)
246
+ Async do
247
+ response = @request_client.conn.put do | req |
248
+ unless request_options&.timeout_in_seconds.nil?
249
+ req.options.timeout = request_options.timeout_in_seconds
250
+ end
251
+ unless request_options&.token.nil?
252
+ req.headers["Authorization"] = request_options.token
253
+ end
254
+ unless request_options&.gusto_api_version.nil?
255
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
256
+ end
257
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
258
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
259
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
260
+ end
261
+ req.body = { **(request_options&.additional_body_parameters || {}), fields: fields, agree: agree, signed_by_ip_address: signed_by_ip_address }.compact
262
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/documents/#{document_uuid}/sign"
263
+ end
264
+ Gusto::Documents::DocumentSigned.from_json(json_object: response.body)
265
+ end
266
+ end
267
+ end
268
+ end
269
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Contractors
7
+ module Documents
8
+ class DocumentsSignRequestFieldsItem
9
+ # @return [String] Unique identifier of the field
10
+ attr_reader :key
11
+ # @return [String] Value for the field
12
+ attr_reader :value
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param key [String] Unique identifier of the field
22
+ # @param value [String] Value for the field
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [Gusto::Contractors::Documents::DocumentsSignRequestFieldsItem]
25
+ def initialize(key: OMIT, value: OMIT, additional_properties: nil)
26
+ @key = key if key != OMIT
27
+ @value = value if value != OMIT
28
+ @additional_properties = additional_properties
29
+ @_field_set = { "key": key, "value": value }.reject do | _k, v |
30
+ v == OMIT
31
+ end
32
+ end
33
+ # Deserialize a JSON object to an instance of DocumentsSignRequestFieldsItem
34
+ #
35
+ # @param json_object [String]
36
+ # @return [Gusto::Contractors::Documents::DocumentsSignRequestFieldsItem]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ key = parsed_json["key"]
41
+ value = parsed_json["value"]
42
+ new(
43
+ key: key,
44
+ value: value,
45
+ additional_properties: struct
46
+ )
47
+ end
48
+ # Serialize an instance of DocumentsSignRequestFieldsItem to a JSON object
49
+ #
50
+ # @return [String]
51
+ def to_json
52
+ @_field_set&.to_json
53
+ end
54
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
55
+ # hash and check each fields type against the current object's property
56
+ # definitions.
57
+ #
58
+ # @param obj [Object]
59
+ # @return [Void]
60
+ def self.validate_raw(obj:)
61
+ obj.key&.is_a?(String) != false || raise("Passed value for field obj.key is not the expected type, validation failed.")
62
+ obj.value&.is_a?(String) != false || raise("Passed value for field obj.value is not the expected type, validation failed.")
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,343 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../forms/types/form1099"
4
+ require "json"
5
+ require_relative "../../types/form_pdf"
6
+ require "async"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require_relative "../../../requests"
11
+
12
+ module Gusto
13
+ module Contractors
14
+ class FormsClient
15
+ # @return [Gusto::RequestClient]
16
+ attr_reader :request_client
17
+
18
+
19
+ # @param request_client [Gusto::RequestClient]
20
+ # @return [Gusto::Contractors::FormsClient]
21
+ def initialize(request_client:)
22
+ @request_client = request_client
23
+ end
24
+ # Get a list of all contractor's forms
25
+ # scope: `contractor_forms:read`
26
+ #
27
+ # @param contractor_uuid [String] The UUID of the contractor
28
+ # @param request_options [Gusto::RequestOptions]
29
+ # @return [Array<Gusto::Forms::Form1099>]
30
+ # @example
31
+ # api = Gusto::Client.new(
32
+ # base_url: "https://api.example.com",
33
+ # environment: Gusto::Environment::DEMO,
34
+ # token: "YOUR_AUTH_TOKEN"
35
+ # )
36
+ # api.contractors.forms.get(contractor_uuid: "contractor_uuid")
37
+ def get(contractor_uuid:, request_options: nil)
38
+ response = @request_client.conn.get do | req |
39
+ unless request_options&.timeout_in_seconds.nil?
40
+ req.options.timeout = request_options.timeout_in_seconds
41
+ end
42
+ unless request_options&.token.nil?
43
+ req.headers["Authorization"] = request_options.token
44
+ end
45
+ unless request_options&.gusto_api_version.nil?
46
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
47
+ end
48
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
49
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
50
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
51
+ end
52
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
53
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
54
+ end
55
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms"
56
+ end
57
+ parsed_json = JSON.parse(response.body)
58
+ parsed_json&.map do | item |
59
+ item = item.to_json
60
+ Gusto::Forms::Form1099.from_json(json_object: item)
61
+ end
62
+ end
63
+ # Get a contractor form
64
+ # scope: `contractor_forms:read`
65
+ #
66
+ # @param contractor_uuid [String] The UUID of the contractor
67
+ # @param form_id [String] The UUID of the form
68
+ # @param request_options [Gusto::RequestOptions]
69
+ # @return [Gusto::Forms::Form1099]
70
+ # @example
71
+ # api = Gusto::Client.new(
72
+ # base_url: "https://api.example.com",
73
+ # environment: Gusto::Environment::DEMO,
74
+ # token: "YOUR_AUTH_TOKEN"
75
+ # )
76
+ # api.contractors.forms.list(contractor_uuid: "contractor_uuid", form_id: "form_id")
77
+ def list(contractor_uuid:, form_id:, request_options: nil)
78
+ response = @request_client.conn.get do | req |
79
+ unless request_options&.timeout_in_seconds.nil?
80
+ req.options.timeout = request_options.timeout_in_seconds
81
+ end
82
+ unless request_options&.token.nil?
83
+ req.headers["Authorization"] = request_options.token
84
+ end
85
+ unless request_options&.gusto_api_version.nil?
86
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
87
+ end
88
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
89
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
90
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
91
+ end
92
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
93
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
94
+ end
95
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms/#{form_id}"
96
+ end
97
+ Gusto::Forms::Form1099.from_json(json_object: response.body)
98
+ end
99
+ # Get the link to the form PDF
100
+ # scope: `contractor_forms:read`
101
+ #
102
+ # @param contractor_uuid [String] The UUID of the contractor
103
+ # @param form_id [String] The UUID of the form
104
+ # @param request_options [Gusto::RequestOptions]
105
+ # @return [Gusto::FormPdf]
106
+ # @example
107
+ # api = Gusto::Client.new(
108
+ # base_url: "https://api.example.com",
109
+ # environment: Gusto::Environment::DEMO,
110
+ # token: "YOUR_AUTH_TOKEN"
111
+ # )
112
+ # api.contractors.forms.get_pdf(contractor_uuid: "contractor_uuid", form_id: "form_id")
113
+ def get_pdf(contractor_uuid:, form_id:, request_options: nil)
114
+ response = @request_client.conn.get do | req |
115
+ unless request_options&.timeout_in_seconds.nil?
116
+ req.options.timeout = request_options.timeout_in_seconds
117
+ end
118
+ unless request_options&.token.nil?
119
+ req.headers["Authorization"] = request_options.token
120
+ end
121
+ unless request_options&.gusto_api_version.nil?
122
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
123
+ end
124
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
125
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
126
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
127
+ end
128
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
129
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
130
+ end
131
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms/#{form_id}/pdf"
132
+ end
133
+ Gusto::FormPdf.from_json(json_object: response.body)
134
+ end
135
+ # > 🚧 Demo action
136
+ # >
137
+ # > This action is only available in the Demo environment
138
+ # Generates a 1099 document for testing purposes.
139
+ # scope: `contractors:write`
140
+ #
141
+ # @param contractor_id [String] The contractor UUID.
142
+ # @param year [Integer] Must be equal to or more recent than 2015. If not specified, defaults to the
143
+ # previous year.
144
+ # @param request_options [Gusto::RequestOptions]
145
+ # @return [Gusto::Forms::Form1099]
146
+ # @example
147
+ # api = Gusto::Client.new(
148
+ # base_url: "https://api.example.com",
149
+ # environment: Gusto::Environment::DEMO,
150
+ # token: "YOUR_AUTH_TOKEN"
151
+ # )
152
+ # api.contractors.forms.generate1099(contractor_id: "contractor_id")
153
+ def generate1099(contractor_id:, year: nil, request_options: nil)
154
+ response = @request_client.conn.post do | req |
155
+ unless request_options&.timeout_in_seconds.nil?
156
+ req.options.timeout = request_options.timeout_in_seconds
157
+ end
158
+ unless request_options&.token.nil?
159
+ req.headers["Authorization"] = request_options.token
160
+ end
161
+ unless request_options&.gusto_api_version.nil?
162
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
163
+ end
164
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
165
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
166
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
167
+ end
168
+ req.body = { **(request_options&.additional_body_parameters || {}), contractor_id: contractor_id, year: year }.compact
169
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/sandbox/generate_1099"
170
+ end
171
+ Gusto::Forms::Form1099.from_json(json_object: response.body)
172
+ end
173
+ end
174
+ class AsyncFormsClient
175
+ # @return [Gusto::AsyncRequestClient]
176
+ attr_reader :request_client
177
+
178
+
179
+ # @param request_client [Gusto::RequestClient]
180
+ # @return [Gusto::Contractors::AsyncFormsClient]
181
+ def initialize(request_client:)
182
+ @request_client = request_client
183
+ end
184
+ # Get a list of all contractor's forms
185
+ # scope: `contractor_forms:read`
186
+ #
187
+ # @param contractor_uuid [String] The UUID of the contractor
188
+ # @param request_options [Gusto::RequestOptions]
189
+ # @return [Array<Gusto::Forms::Form1099>]
190
+ # @example
191
+ # api = Gusto::Client.new(
192
+ # base_url: "https://api.example.com",
193
+ # environment: Gusto::Environment::DEMO,
194
+ # token: "YOUR_AUTH_TOKEN"
195
+ # )
196
+ # api.contractors.forms.get(contractor_uuid: "contractor_uuid")
197
+ def get(contractor_uuid:, request_options: nil)
198
+ Async do
199
+ response = @request_client.conn.get do | req |
200
+ unless request_options&.timeout_in_seconds.nil?
201
+ req.options.timeout = request_options.timeout_in_seconds
202
+ end
203
+ unless request_options&.token.nil?
204
+ req.headers["Authorization"] = request_options.token
205
+ end
206
+ unless request_options&.gusto_api_version.nil?
207
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
208
+ end
209
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
210
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
211
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
212
+ end
213
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
214
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
215
+ end
216
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms"
217
+ end
218
+ parsed_json = JSON.parse(response.body)
219
+ parsed_json&.map do | item |
220
+ item = item.to_json
221
+ Gusto::Forms::Form1099.from_json(json_object: item)
222
+ end
223
+ end
224
+ end
225
+ # Get a contractor form
226
+ # scope: `contractor_forms:read`
227
+ #
228
+ # @param contractor_uuid [String] The UUID of the contractor
229
+ # @param form_id [String] The UUID of the form
230
+ # @param request_options [Gusto::RequestOptions]
231
+ # @return [Gusto::Forms::Form1099]
232
+ # @example
233
+ # api = Gusto::Client.new(
234
+ # base_url: "https://api.example.com",
235
+ # environment: Gusto::Environment::DEMO,
236
+ # token: "YOUR_AUTH_TOKEN"
237
+ # )
238
+ # api.contractors.forms.list(contractor_uuid: "contractor_uuid", form_id: "form_id")
239
+ def list(contractor_uuid:, form_id:, request_options: nil)
240
+ Async do
241
+ response = @request_client.conn.get do | req |
242
+ unless request_options&.timeout_in_seconds.nil?
243
+ req.options.timeout = request_options.timeout_in_seconds
244
+ end
245
+ unless request_options&.token.nil?
246
+ req.headers["Authorization"] = request_options.token
247
+ end
248
+ unless request_options&.gusto_api_version.nil?
249
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
250
+ end
251
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
252
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
253
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
254
+ end
255
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
256
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
257
+ end
258
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms/#{form_id}"
259
+ end
260
+ Gusto::Forms::Form1099.from_json(json_object: response.body)
261
+ end
262
+ end
263
+ # Get the link to the form PDF
264
+ # scope: `contractor_forms:read`
265
+ #
266
+ # @param contractor_uuid [String] The UUID of the contractor
267
+ # @param form_id [String] The UUID of the form
268
+ # @param request_options [Gusto::RequestOptions]
269
+ # @return [Gusto::FormPdf]
270
+ # @example
271
+ # api = Gusto::Client.new(
272
+ # base_url: "https://api.example.com",
273
+ # environment: Gusto::Environment::DEMO,
274
+ # token: "YOUR_AUTH_TOKEN"
275
+ # )
276
+ # api.contractors.forms.get_pdf(contractor_uuid: "contractor_uuid", form_id: "form_id")
277
+ def get_pdf(contractor_uuid:, form_id:, request_options: nil)
278
+ Async do
279
+ response = @request_client.conn.get do | req |
280
+ unless request_options&.timeout_in_seconds.nil?
281
+ req.options.timeout = request_options.timeout_in_seconds
282
+ end
283
+ unless request_options&.token.nil?
284
+ req.headers["Authorization"] = request_options.token
285
+ end
286
+ unless request_options&.gusto_api_version.nil?
287
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
288
+ end
289
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
290
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
291
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
292
+ end
293
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
294
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
295
+ end
296
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/forms/#{form_id}/pdf"
297
+ end
298
+ Gusto::FormPdf.from_json(json_object: response.body)
299
+ end
300
+ end
301
+ # > 🚧 Demo action
302
+ # >
303
+ # > This action is only available in the Demo environment
304
+ # Generates a 1099 document for testing purposes.
305
+ # scope: `contractors:write`
306
+ #
307
+ # @param contractor_id [String] The contractor UUID.
308
+ # @param year [Integer] Must be equal to or more recent than 2015. If not specified, defaults to the
309
+ # previous year.
310
+ # @param request_options [Gusto::RequestOptions]
311
+ # @return [Gusto::Forms::Form1099]
312
+ # @example
313
+ # api = Gusto::Client.new(
314
+ # base_url: "https://api.example.com",
315
+ # environment: Gusto::Environment::DEMO,
316
+ # token: "YOUR_AUTH_TOKEN"
317
+ # )
318
+ # api.contractors.forms.generate1099(contractor_id: "contractor_id")
319
+ def generate1099(contractor_id:, year: nil, request_options: nil)
320
+ Async do
321
+ response = @request_client.conn.post do | req |
322
+ unless request_options&.timeout_in_seconds.nil?
323
+ req.options.timeout = request_options.timeout_in_seconds
324
+ end
325
+ unless request_options&.token.nil?
326
+ req.headers["Authorization"] = request_options.token
327
+ end
328
+ unless request_options&.gusto_api_version.nil?
329
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
330
+ end
331
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
332
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
333
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
334
+ end
335
+ req.body = { **(request_options&.additional_body_parameters || {}), contractor_id: contractor_id, year: year }.compact
336
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/sandbox/generate_1099"
337
+ end
338
+ Gusto::Forms::Form1099.from_json(json_object: response.body)
339
+ end
340
+ end
341
+ end
342
+ end
343
+ end