gusto_embedded_client 0.3.0 → 0.3.1

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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gusto_embedded/client.rb +2 -1
  3. data/lib/gusto_embedded/companybenefits.rb +30 -2
  4. data/lib/gusto_embedded/contractorpayments.rb +16 -2
  5. data/lib/gusto_embedded/earningtypes.rb +16 -2
  6. data/lib/gusto_embedded/employeebenefits.rb +30 -2
  7. data/lib/gusto_embedded/employeepaymentmethod.rb +30 -2
  8. data/lib/gusto_embedded/externalpayrolls.rb +60 -4
  9. data/lib/gusto_embedded/information_requests.rb +6 -3
  10. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error.rb +32 -0
  11. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error.rbi +13 -0
  12. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error_errors.rb +44 -0
  13. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error_errors.rbi +19 -0
  14. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error_metadata.rb +32 -0
  15. data/lib/gusto_embedded/models/errors/payroll_digest_conflict_error_metadata.rbi +13 -0
  16. data/lib/gusto_embedded/models/errors.rb +3 -0
  17. data/lib/gusto_embedded/models/operations/get_information_requests_request.rb +6 -2
  18. data/lib/gusto_embedded/models/operations/get_information_requests_request.rbi +2 -0
  19. data/lib/gusto_embedded/models/operations/get_v1_companies_company_id_payrolls_payroll_id_request.rb +3 -3
  20. data/lib/gusto_embedded/models/operations/get_v1_companies_company_uuid_contractors_request.rb +1 -1
  21. data/lib/gusto_embedded/models/operations/get_v1_company_forms_request.rb +3 -3
  22. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_header_x_gusto_api_version.rb +18 -0
  23. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_header_x_gusto_api_version.rbi +11 -0
  24. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_request.rb +36 -0
  25. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_request.rbi +15 -0
  26. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_response.rb +44 -0
  27. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_response.rbi +19 -0
  28. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_security.rb +32 -0
  29. data/lib/gusto_embedded/models/operations/get_v1_payroll_digests_payroll_digest_uuid_security.rbi +13 -0
  30. data/lib/gusto_embedded/models/operations/post_v1_companies_company_id_reports_employees_annual_fica_wage_response.rb +5 -5
  31. data/lib/gusto_embedded/models/operations/post_v1_companies_company_id_reports_employees_annual_fica_wage_response.rbi +2 -2
  32. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_batch.rb +36 -0
  33. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_batch.rbi +15 -0
  34. data/lib/gusto_embedded/models/operations/{sort_by.rb → post_v1_payroll_digests_batch_action.rb} +3 -4
  35. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_batch_action.rbi +11 -0
  36. data/lib/gusto_embedded/models/operations/{queryparam_sort_by.rb → post_v1_payroll_digests_entity_type.rb} +3 -4
  37. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_entity_type.rbi +11 -0
  38. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_header_x_gusto_api_version.rb +18 -0
  39. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_header_x_gusto_api_version.rbi +11 -0
  40. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_request.rb +36 -0
  41. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_request.rbi +15 -0
  42. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_requestbody.rb +40 -0
  43. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_requestbody.rbi +17 -0
  44. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_response.rb +44 -0
  45. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_response.rbi +19 -0
  46. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_security.rb +32 -0
  47. data/lib/gusto_embedded/models/operations/post_v1_payroll_digests_security.rbi +13 -0
  48. data/lib/gusto_embedded/models/operations/put_v1_companies_company_id_payrolls_payroll_id_prepare_request.rb +3 -3
  49. data/lib/gusto_embedded/models/operations/split_by.rb +1 -1
  50. data/lib/gusto_embedded/models/operations.rb +12 -4
  51. data/lib/gusto_embedded/models/shared/ach_transaction_recipient_type.rb +1 -1
  52. data/lib/gusto_embedded/models/shared/batch_action.rb +18 -0
  53. data/lib/gusto_embedded/models/{operations/sort_by.rbi → shared/batch_action.rbi} +2 -2
  54. data/lib/gusto_embedded/models/shared/blockers.rb +36 -0
  55. data/lib/gusto_embedded/models/shared/blockers.rbi +15 -0
  56. data/lib/gusto_embedded/models/shared/columns.rb +2 -0
  57. data/lib/gusto_embedded/models/shared/deduction_reduces_taxable_income.rb +1 -1
  58. data/lib/gusto_embedded/models/shared/employee_benefit.rb +6 -6
  59. data/lib/gusto_embedded/models/shared/employee_benefit.rbi +2 -2
  60. data/lib/gusto_embedded/models/shared/employee_benefit_create_request_deduction_reduces_taxable_income.rb +1 -1
  61. data/lib/gusto_embedded/models/shared/employee_benefit_create_request_limit_option.rb +1 -6
  62. data/lib/gusto_embedded/models/shared/employee_benefit_for_company_benefit.rb +6 -6
  63. data/lib/gusto_embedded/models/shared/employee_benefit_for_company_benefit.rbi +2 -2
  64. data/lib/gusto_embedded/models/shared/employee_benefit_for_company_benefit_deduction_reduces_taxable_income.rb +1 -1
  65. data/lib/gusto_embedded/models/shared/employee_benefit_update_request.rb +6 -6
  66. data/lib/gusto_embedded/models/shared/employee_benefit_update_request.rbi +2 -2
  67. data/lib/gusto_embedded/models/shared/employee_benefit_update_request_deduction_reduces_taxable_income.rb +1 -1
  68. data/lib/gusto_embedded/models/shared/employee_benefit_update_request_limit_option.rb +1 -6
  69. data/lib/gusto_embedded/models/shared/employee_state_taxes_list.rb +6 -2
  70. data/lib/gusto_embedded/models/shared/employee_state_taxes_list.rbi +2 -0
  71. data/lib/gusto_embedded/models/{operations/post_v1_companies_company_id_reports_employees_annual_fica_wage_responsebody.rb → shared/employees_annual_fica_wage_report_acceptance.rb} +6 -6
  72. data/lib/gusto_embedded/models/{operations/post_v1_companies_company_id_reports_employees_annual_fica_wage_responsebody.rbi → shared/employees_annual_fica_wage_report_acceptance.rbi} +2 -2
  73. data/lib/gusto_embedded/models/shared/entity_type.rb +1 -1
  74. data/lib/gusto_embedded/models/shared/funding_type.rb +4 -2
  75. data/lib/gusto_embedded/models/shared/garnishment_request_garnishment_type.rb +1 -1
  76. data/lib/gusto_embedded/models/shared/information_request_type.rb +1 -1
  77. data/lib/gusto_embedded/models/shared/integration_type.rb +1 -1
  78. data/lib/gusto_embedded/models/shared/name.rb +1 -1
  79. data/lib/gusto_embedded/models/shared/pay_schedule.rb +40 -0
  80. data/lib/gusto_embedded/models/shared/pay_schedule.rbi +17 -0
  81. data/lib/gusto_embedded/models/shared/payroll_digest.rb +44 -0
  82. data/lib/gusto_embedded/models/shared/payroll_digest.rbi +19 -0
  83. data/lib/gusto_embedded/models/shared/payroll_digest_results.rb +68 -0
  84. data/lib/gusto_embedded/models/shared/payroll_digest_results.rbi +31 -0
  85. data/lib/gusto_embedded/models/shared/payroll_digest_results_category.rb +21 -0
  86. data/lib/gusto_embedded/models/shared/payroll_digest_results_category.rbi +11 -0
  87. data/lib/gusto_embedded/models/shared/payroll_digest_results_entity_type.rb +18 -0
  88. data/lib/gusto_embedded/models/shared/payroll_digest_results_entity_type.rbi +11 -0
  89. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions.rb +52 -0
  90. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions.rbi +23 -0
  91. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions_entity_type.rb +18 -0
  92. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions_entity_type.rbi +11 -0
  93. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions_status.rb +18 -0
  94. data/lib/gusto_embedded/models/shared/payroll_digest_results_exclusions_status.rbi +11 -0
  95. data/lib/gusto_embedded/models/shared/payroll_digest_results_pay_period.rb +44 -0
  96. data/lib/gusto_embedded/models/shared/payroll_digest_results_pay_period.rbi +19 -0
  97. data/lib/gusto_embedded/models/shared/payroll_digest_results_results.rb +56 -0
  98. data/lib/gusto_embedded/models/shared/payroll_digest_results_results.rbi +25 -0
  99. data/lib/gusto_embedded/models/shared/payroll_digest_results_results_status.rb +20 -0
  100. data/lib/gusto_embedded/models/shared/payroll_digest_results_results_status.rbi +11 -0
  101. data/lib/gusto_embedded/models/shared/payroll_digest_results_status.rb +21 -0
  102. data/lib/gusto_embedded/models/shared/payroll_digest_results_status.rbi +11 -0
  103. data/lib/gusto_embedded/models/shared/payroll_digest_results_totals.rb +40 -0
  104. data/lib/gusto_embedded/models/shared/payroll_digest_results_totals.rbi +17 -0
  105. data/lib/gusto_embedded/models/shared/payroll_digest_status.rb +21 -0
  106. data/lib/gusto_embedded/models/shared/payroll_digest_status.rbi +11 -0
  107. data/lib/gusto_embedded/models/shared/payroll_employee_compensations_type_payment_method.rb +1 -1
  108. data/lib/gusto_embedded/models/shared/payroll_show_payment_method.rb +1 -1
  109. data/lib/gusto_embedded/models/shared/payroll_unprocessed_employee_compensations_type_payment_method.rb +1 -1
  110. data/lib/gusto_embedded/models/shared/payrolls.rb +60 -0
  111. data/lib/gusto_embedded/models/shared/payrolls.rbi +27 -0
  112. data/lib/gusto_embedded/models/shared/update_garnishment_request_garnishment_type.rb +1 -1
  113. data/lib/gusto_embedded/models/shared.rb +18 -0
  114. data/lib/gusto_embedded/payroll_digests.rb +342 -0
  115. data/lib/gusto_embedded/reports.rb +2 -2
  116. data/lib/gusto_embedded/sdkconfiguration.rb +3 -3
  117. data/lib/gusto_embedded/time_off_requests.rb +30 -2
  118. data/lib/gusto_embedded_client.rb +1 -0
  119. metadata +69 -10
  120. data/lib/gusto_embedded/models/operations/get_v1_company_forms_queryparam_sort_by.rb +0 -23
  121. data/lib/gusto_embedded/models/operations/get_v1_company_forms_queryparam_sort_by.rbi +0 -11
  122. data/lib/gusto_embedded/models/operations/queryparam_sort_by.rbi +0 -11
@@ -0,0 +1,18 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+ # GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion - Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used.
11
+ class GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion < T::Enum
12
+ enums do
13
+ TWO_THOUSAND_AND_TWENTY_FIVE_MINUS_06_MINUS_15 = new('2025-06-15')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion
11
+ end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class GetV1PayrollDigestsPayrollDigestUuidRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The UUID of the payroll digest batch returned by `POST /v1/payroll_digests`.
16
+ field :payroll_digest_uuid, ::String, { 'path_param': { 'field_name': 'payroll_digest_uuid', 'style': 'simple', 'explode': false } }
17
+ # Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used.
18
+ field :x_gusto_api_version, Crystalline::Nilable.new(Models::Operations::GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion), { 'header': { 'field_name': 'X-Gusto-API-Version', 'style': 'simple', 'explode': false } }
19
+
20
+ sig { params(payroll_digest_uuid: ::String, x_gusto_api_version: T.nilable(Models::Operations::GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion)).void }
21
+ def initialize(payroll_digest_uuid:, x_gusto_api_version: Models::Operations::GetV1PayrollDigestsPayrollDigestUuidHeaderXGustoAPIVersion::TWO_THOUSAND_AND_TWENTY_FIVE_MINUS_06_MINUS_15)
22
+ @payroll_digest_uuid = payroll_digest_uuid
23
+ @x_gusto_api_version = x_gusto_api_version
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @payroll_digest_uuid == other.payroll_digest_uuid
30
+ return false unless @x_gusto_api_version == other.x_gusto_api_version
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidRequest
11
+ def payroll_digest_uuid(); end
12
+ def payroll_digest_uuid=(str_); end
13
+ def x_gusto_api_version(); end
14
+ def x_gusto_api_version=(str_); end
15
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class GetV1PayrollDigestsPayrollDigestUuidResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+ # successful
22
+ field :payroll_digest_results, Crystalline::Nilable.new(Models::Shared::PayrollDigestResults)
23
+
24
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, payroll_digest_results: T.nilable(Models::Shared::PayrollDigestResults)).void }
25
+ def initialize(content_type:, status_code:, raw_response:, payroll_digest_results: nil)
26
+ @content_type = content_type
27
+ @status_code = status_code
28
+ @raw_response = raw_response
29
+ @payroll_digest_results = payroll_digest_results
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @content_type == other.content_type
36
+ return false unless @status_code == other.status_code
37
+ return false unless @raw_response == other.raw_response
38
+ return false unless @payroll_digest_results == other.payroll_digest_results
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def payroll_digest_results(); end
18
+ def payroll_digest_results=(str_); end
19
+ end
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class GetV1PayrollDigestsPayrollDigestUuidSecurity
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :system_access_auth, ::String, { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'bearer', 'field_name': 'Authorization' } }
17
+
18
+ sig { params(system_access_auth: ::String).void }
19
+ def initialize(system_access_auth:)
20
+ @system_access_auth = system_access_auth
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @system_access_auth == other.system_access_auth
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidSecurity
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::GetV1PayrollDigestsPayrollDigestUuidSecurity
11
+ def system_access_auth(); end
12
+ def system_access_auth=(str_); end
13
+ end
@@ -19,14 +19,14 @@ module GustoEmbedded
19
19
  # Raw HTTP response; suitable for custom response parsing
20
20
  field :raw_response, ::Faraday::Response
21
21
  # accepted
22
- field :object, Crystalline::Nilable.new(Models::Operations::PostV1CompaniesCompanyIdReportsEmployeesAnnualFicaWageResponseBody)
22
+ field :employees_annual_fica_wage_report_acceptance, Crystalline::Nilable.new(Models::Shared::EmployeesAnnualFicaWageReportAcceptance)
23
23
 
24
- sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, object: T.nilable(Models::Operations::PostV1CompaniesCompanyIdReportsEmployeesAnnualFicaWageResponseBody)).void }
25
- def initialize(content_type:, status_code:, raw_response:, object: nil)
24
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, employees_annual_fica_wage_report_acceptance: T.nilable(Models::Shared::EmployeesAnnualFicaWageReportAcceptance)).void }
25
+ def initialize(content_type:, status_code:, raw_response:, employees_annual_fica_wage_report_acceptance: nil)
26
26
  @content_type = content_type
27
27
  @status_code = status_code
28
28
  @raw_response = raw_response
29
- @object = object
29
+ @employees_annual_fica_wage_report_acceptance = employees_annual_fica_wage_report_acceptance
30
30
  end
31
31
 
32
32
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -35,7 +35,7 @@ module GustoEmbedded
35
35
  return false unless @content_type == other.content_type
36
36
  return false unless @status_code == other.status_code
37
37
  return false unless @raw_response == other.raw_response
38
- return false unless @object == other.object
38
+ return false unless @employees_annual_fica_wage_report_acceptance == other.employees_annual_fica_wage_report_acceptance
39
39
  true
40
40
  end
41
41
  end
@@ -14,6 +14,6 @@ class GustoEmbedded::Models::Operations::PostV1CompaniesCompanyIdReportsEmployee
14
14
  def status_code=(str_); end
15
15
  def raw_response(); end
16
16
  def raw_response=(str_); end
17
- def object(); end
18
- def object=(str_); end
17
+ def employees_annual_fica_wage_report_acceptance(); end
18
+ def employees_annual_fica_wage_report_acceptance=(str_); end
19
19
  end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class PostV1PayrollDigestsBatch
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The type of entity to look up.
16
+ field :entity_type, Models::Operations::PostV1PayrollDigestsEntityType, { 'format_json': { 'letter_case': ::GustoEmbedded::Utils.field_name('entity_type'), required: true, 'decoder': ::GustoEmbedded::Utils.enum_from_string(Models::Operations::PostV1PayrollDigestsEntityType, false) } }
17
+ # The UUID of a company that the partner is mapped to. Companies that the partner is not authorized to access will appear in the response's `exclusions` array.
18
+ field :uuid, ::String, { 'format_json': { 'letter_case': ::GustoEmbedded::Utils.field_name('uuid'), required: true } }
19
+
20
+ sig { params(entity_type: Models::Operations::PostV1PayrollDigestsEntityType, uuid: ::String).void }
21
+ def initialize(entity_type:, uuid:)
22
+ @entity_type = entity_type
23
+ @uuid = uuid
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @entity_type == other.entity_type
30
+ return false unless @uuid == other.uuid
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsBatch
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsBatch
11
+ def entity_type(); end
12
+ def entity_type=(str_); end
13
+ def uuid(); end
14
+ def uuid=(str_); end
15
+ end
@@ -7,11 +7,10 @@
7
7
  module GustoEmbedded
8
8
  module Models
9
9
  module Operations
10
- # SortBy - Field to sort employee compensations by
11
- class SortBy < T::Enum
10
+ # PostV1PayrollDigestsBatchAction - The action to perform on the batch.
11
+ class PostV1PayrollDigestsBatchAction < T::Enum
12
12
  enums do
13
- FIRST_NAME = new('first_name')
14
- LAST_NAME = new('last_name')
13
+ CREATE = new('create')
15
14
  end
16
15
  end
17
16
  end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsBatchAction
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsBatchAction
11
+ end
@@ -7,11 +7,10 @@
7
7
  module GustoEmbedded
8
8
  module Models
9
9
  module Operations
10
- # QueryParamSortBy - Sort employee compensations by name
11
- class QueryParamSortBy < T::Enum
10
+ # PostV1PayrollDigestsEntityType - The type of entity to look up.
11
+ class PostV1PayrollDigestsEntityType < T::Enum
12
12
  enums do
13
- FIRST_NAME = new('first_name')
14
- LAST_NAME = new('last_name')
13
+ COMPANY = new('company')
15
14
  end
16
15
  end
17
16
  end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsEntityType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsEntityType
11
+ end
@@ -0,0 +1,18 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+ # PostV1PayrollDigestsHeaderXGustoAPIVersion - Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used.
11
+ class PostV1PayrollDigestsHeaderXGustoAPIVersion < T::Enum
12
+ enums do
13
+ TWO_THOUSAND_AND_TWENTY_FIVE_MINUS_06_MINUS_15 = new('2025-06-15')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsHeaderXGustoAPIVersion
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsHeaderXGustoAPIVersion
11
+ end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class PostV1PayrollDigestsRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :request_body, Models::Operations::PostV1PayrollDigestsRequestBody, { 'request': { 'media_type': 'application/json' } }
17
+ # Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used.
18
+ field :x_gusto_api_version, Crystalline::Nilable.new(Models::Operations::PostV1PayrollDigestsHeaderXGustoAPIVersion), { 'header': { 'field_name': 'X-Gusto-API-Version', 'style': 'simple', 'explode': false } }
19
+
20
+ sig { params(request_body: Models::Operations::PostV1PayrollDigestsRequestBody, x_gusto_api_version: T.nilable(Models::Operations::PostV1PayrollDigestsHeaderXGustoAPIVersion)).void }
21
+ def initialize(request_body:, x_gusto_api_version: Models::Operations::PostV1PayrollDigestsHeaderXGustoAPIVersion::TWO_THOUSAND_AND_TWENTY_FIVE_MINUS_06_MINUS_15)
22
+ @request_body = request_body
23
+ @x_gusto_api_version = x_gusto_api_version
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @request_body == other.request_body
30
+ return false unless @x_gusto_api_version == other.x_gusto_api_version
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsRequest
11
+ def request_body(); end
12
+ def request_body=(str_); end
13
+ def x_gusto_api_version(); end
14
+ def x_gusto_api_version=(str_); end
15
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class PostV1PayrollDigestsRequestBody
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # A partner-generated unique identifier to ensure idempotency of the batch request. Scoped per partner.
16
+ field :idempotency_key, ::String, { 'format_json': { 'letter_case': ::GustoEmbedded::Utils.field_name('idempotency_key'), required: true } }
17
+ # The action to perform on the batch.
18
+ field :batch_action, Models::Operations::PostV1PayrollDigestsBatchAction, { 'format_json': { 'letter_case': ::GustoEmbedded::Utils.field_name('batch_action'), required: true, 'decoder': ::GustoEmbedded::Utils.enum_from_string(Models::Operations::PostV1PayrollDigestsBatchAction, false) } }
19
+ # Array of companies to fetch payroll digest data for. Maximum 25 companies per request.
20
+ field :batch, Crystalline::Array.new(Models::Operations::PostV1PayrollDigestsBatch), { 'format_json': { 'letter_case': ::GustoEmbedded::Utils.field_name('batch'), required: true } }
21
+
22
+ sig { params(idempotency_key: ::String, batch_action: Models::Operations::PostV1PayrollDigestsBatchAction, batch: T::Array[Models::Operations::PostV1PayrollDigestsBatch]).void }
23
+ def initialize(idempotency_key:, batch_action:, batch:)
24
+ @idempotency_key = idempotency_key
25
+ @batch_action = batch_action
26
+ @batch = batch
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @idempotency_key == other.idempotency_key
33
+ return false unless @batch_action == other.batch_action
34
+ return false unless @batch == other.batch
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsRequestBody
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsRequestBody
11
+ def idempotency_key(); end
12
+ def idempotency_key=(str_); end
13
+ def batch_action(); end
14
+ def batch_action=(str_); end
15
+ def batch(); end
16
+ def batch=(str_); end
17
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class PostV1PayrollDigestsResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+ # created
22
+ field :payroll_digest, Crystalline::Nilable.new(Models::Shared::PayrollDigest)
23
+
24
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, payroll_digest: T.nilable(Models::Shared::PayrollDigest)).void }
25
+ def initialize(content_type:, status_code:, raw_response:, payroll_digest: nil)
26
+ @content_type = content_type
27
+ @status_code = status_code
28
+ @raw_response = raw_response
29
+ @payroll_digest = payroll_digest
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @content_type == other.content_type
36
+ return false unless @status_code == other.status_code
37
+ return false unless @raw_response == other.raw_response
38
+ return false unless @payroll_digest == other.payroll_digest
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def payroll_digest(); end
18
+ def payroll_digest=(str_); end
19
+ end
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module GustoEmbedded
8
+ module Models
9
+ module Operations
10
+
11
+ class PostV1PayrollDigestsSecurity
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :system_access_auth, ::String, { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'bearer', 'field_name': 'Authorization' } }
17
+
18
+ sig { params(system_access_auth: ::String).void }
19
+ def initialize(system_access_auth:)
20
+ @system_access_auth = system_access_auth
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @system_access_auth == other.system_access_auth
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsSecurity
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class GustoEmbedded::Models::Operations::PostV1PayrollDigestsSecurity
11
+ def system_access_auth(); end
12
+ def system_access_auth=(str_); end
13
+ end
@@ -20,14 +20,14 @@ module GustoEmbedded
20
20
  field :page, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page', 'style': 'form', 'explode': true } }
21
21
  # Number of objects per page. For majority of endpoints will default to 25
22
22
  field :per, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'per', 'style': 'form', 'explode': true } }
23
- # Sort employee compensations by name
24
- field :sort_by, Crystalline::Nilable.new(Models::Operations::QueryParamSortBy), { 'query_param': { 'field_name': 'sort_by', 'style': 'form', 'explode': true } }
23
+ # Sort employee compensations by one or more fields. Options: first_name, last_name. Append `:asc` or `:desc` to specify direction (e.g., `last_name:asc` or `last_name:asc,first_name:asc`). Defaults to ascending.
24
+ field :sort_by, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'sort_by', 'style': 'form', 'explode': true } }
25
25
 
26
26
  field :request_body, Crystalline::Nilable.new(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareRequestBody), { 'request': { 'media_type': 'application/json' } }
27
27
  # Determines the date-based API version associated with your API call. If none is provided, your application's [minimum API version](https://docs.gusto.com/embedded-payroll/docs/api-versioning#minimum-api-version) is used.
28
28
  field :x_gusto_api_version, Crystalline::Nilable.new(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareHeaderXGustoAPIVersion), { 'header': { 'field_name': 'X-Gusto-API-Version', 'style': 'simple', 'explode': false } }
29
29
 
30
- sig { params(company_id: ::String, payroll_id: ::String, page: T.nilable(::Integer), per: T.nilable(::Integer), sort_by: T.nilable(Models::Operations::QueryParamSortBy), request_body: T.nilable(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareRequestBody), x_gusto_api_version: T.nilable(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareHeaderXGustoAPIVersion)).void }
30
+ sig { params(company_id: ::String, payroll_id: ::String, page: T.nilable(::Integer), per: T.nilable(::Integer), sort_by: T.nilable(::String), request_body: T.nilable(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareRequestBody), x_gusto_api_version: T.nilable(Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareHeaderXGustoAPIVersion)).void }
31
31
  def initialize(company_id:, payroll_id:, page: nil, per: nil, sort_by: nil, request_body: nil, x_gusto_api_version: Models::Operations::PutV1CompaniesCompanyIdPayrollsPayrollIdPrepareHeaderXGustoAPIVersion::TWO_THOUSAND_AND_TWENTY_FIVE_MINUS_06_MINUS_15)
32
32
  @company_id = company_id
33
33
  @payroll_id = payroll_id
@@ -7,7 +7,7 @@
7
7
  module GustoEmbedded
8
8
  module Models
9
9
  module Operations
10
- # SplitBy - How the payment will be split. If Percentage, split amounts must add up to exactly 100. If Amount, values are in cents and the last split amount must be null to capture the remainder.
10
+
11
11
  class SplitBy < T::Enum
12
12
  enums do
13
13
  PERCENTAGE = new('Percentage')