vitable-connect 0.3.0 → 0.5.0

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +9 -9
  4. data/lib/vitable_connect/client.rb +23 -2
  5. data/lib/vitable_connect/internal/transport/base_client.rb +5 -0
  6. data/lib/vitable_connect/models/employee.rb +9 -53
  7. data/lib/vitable_connect/models/employer.rb +1 -9
  8. data/lib/vitable_connect/models/employer_update_settings_params.rb +52 -0
  9. data/lib/vitable_connect/models/employer_update_settings_response.rb +56 -0
  10. data/lib/vitable_connect/models/group.rb +57 -0
  11. data/lib/vitable_connect/models/group_create_params.rb +26 -0
  12. data/lib/vitable_connect/models/group_list_params.rb +30 -0
  13. data/lib/vitable_connect/models/group_response.rb +18 -0
  14. data/lib/vitable_connect/models/group_retrieve_params.rb +22 -0
  15. data/lib/vitable_connect/models/group_update_params.rb +36 -0
  16. data/lib/vitable_connect/models/groups/members/sync_retrieve_params.rb +33 -0
  17. data/lib/vitable_connect/models/groups/members/sync_retrieve_response.rb +128 -0
  18. data/lib/vitable_connect/models/groups/members/sync_submit_params.rb +121 -0
  19. data/lib/vitable_connect/models/groups/members/sync_submit_response.rb +45 -0
  20. data/lib/vitable_connect/models/plan_list_params.rb +30 -0
  21. data/lib/vitable_connect/models/plan_list_response.rb +22 -0
  22. data/lib/vitable_connect/models/webhook_event_list_params.rb +0 -3
  23. data/lib/vitable_connect/models.rb +18 -9
  24. data/lib/vitable_connect/resources/benefit_eligibility_policies.rb +0 -21
  25. data/lib/vitable_connect/resources/employers.rb +28 -30
  26. data/lib/vitable_connect/resources/groups/members/sync.rb +74 -0
  27. data/lib/vitable_connect/resources/groups/members.rb +20 -0
  28. data/lib/vitable_connect/resources/groups.rb +114 -0
  29. data/lib/vitable_connect/resources/plans.rb +41 -0
  30. data/lib/vitable_connect/version.rb +1 -1
  31. data/lib/vitable_connect.rb +18 -4
  32. data/rbi/vitable_connect/client.rbi +6 -1
  33. data/rbi/vitable_connect/models/employee.rbi +8 -73
  34. data/rbi/vitable_connect/models/employer.rbi +0 -8
  35. data/rbi/vitable_connect/models/employer_update_settings_params.rbi +114 -0
  36. data/rbi/vitable_connect/models/employer_update_settings_response.rbi +147 -0
  37. data/rbi/vitable_connect/models/group.rbi +77 -0
  38. data/rbi/vitable_connect/models/group_create_params.rbi +46 -0
  39. data/rbi/vitable_connect/models/group_list_params.rbi +60 -0
  40. data/rbi/vitable_connect/models/group_response.rbi +32 -0
  41. data/rbi/vitable_connect/models/{benefit_eligibility_policy_retrieve_params.rbi → group_retrieve_params.rbi} +8 -8
  42. data/rbi/vitable_connect/models/group_update_params.rbi +58 -0
  43. data/rbi/vitable_connect/models/groups/members/sync_retrieve_params.rbi +56 -0
  44. data/rbi/vitable_connect/models/groups/members/sync_retrieve_response.rbi +282 -0
  45. data/rbi/vitable_connect/models/groups/members/sync_submit_params.rbi +214 -0
  46. data/rbi/vitable_connect/models/groups/members/sync_submit_response.rbi +92 -0
  47. data/rbi/vitable_connect/models/plan_list_params.rbi +60 -0
  48. data/rbi/vitable_connect/models/plan_list_response.rbi +29 -0
  49. data/rbi/vitable_connect/models/webhook_event_list_params.rbi +0 -8
  50. data/rbi/vitable_connect/models.rbi +19 -11
  51. data/rbi/vitable_connect/resources/benefit_eligibility_policies.rbi +0 -15
  52. data/rbi/vitable_connect/resources/employers.rbi +22 -21
  53. data/rbi/vitable_connect/resources/groups/members/sync.rbi +62 -0
  54. data/rbi/vitable_connect/resources/groups/members.rbi +17 -0
  55. data/rbi/vitable_connect/resources/groups.rbi +79 -0
  56. data/rbi/vitable_connect/resources/plans.rbi +34 -0
  57. data/rbi/vitable_connect/resources/webhook_events.rbi +0 -1
  58. data/sig/vitable_connect/client.rbs +4 -0
  59. data/sig/vitable_connect/models/employee.rbs +5 -37
  60. data/sig/vitable_connect/models/employer.rbs +0 -5
  61. data/sig/vitable_connect/models/employer_update_settings_params.rbs +44 -0
  62. data/sig/vitable_connect/models/employer_update_settings_response.rbs +48 -0
  63. data/sig/vitable_connect/models/group.rbs +45 -0
  64. data/sig/vitable_connect/models/group_create_params.rbs +28 -0
  65. data/sig/vitable_connect/models/group_list_params.rbs +32 -0
  66. data/sig/vitable_connect/models/group_response.rbs +13 -0
  67. data/sig/vitable_connect/models/{benefit_eligibility_policy_retrieve_params.rbs → group_retrieve_params.rbs} +6 -6
  68. data/sig/vitable_connect/models/group_update_params.rbs +32 -0
  69. data/sig/vitable_connect/models/groups/members/sync_retrieve_params.rbs +32 -0
  70. data/sig/vitable_connect/models/groups/members/sync_retrieve_response.rbs +126 -0
  71. data/sig/vitable_connect/models/groups/members/sync_submit_params.rbs +124 -0
  72. data/sig/vitable_connect/models/groups/members/sync_submit_response.rbs +47 -0
  73. data/sig/vitable_connect/models/plan_list_params.rbs +32 -0
  74. data/sig/vitable_connect/models/plan_list_response.rbs +15 -0
  75. data/sig/vitable_connect/models/webhook_event_list_params.rbs +0 -2
  76. data/sig/vitable_connect/models.rbs +18 -8
  77. data/sig/vitable_connect/resources/benefit_eligibility_policies.rbs +0 -5
  78. data/sig/vitable_connect/resources/employers.rbs +6 -7
  79. data/sig/vitable_connect/resources/groups/members/sync.rbs +23 -0
  80. data/sig/vitable_connect/resources/groups/members.rbs +11 -0
  81. data/sig/vitable_connect/resources/groups.rbs +33 -0
  82. data/sig/vitable_connect/resources/plans.rbs +13 -0
  83. metadata +56 -14
  84. data/lib/vitable_connect/models/benefit_eligibility_policy.rb +0 -53
  85. data/lib/vitable_connect/models/benefit_eligibility_policy_response.rb +0 -18
  86. data/lib/vitable_connect/models/benefit_eligibility_policy_retrieve_params.rb +0 -22
  87. data/lib/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rb +0 -43
  88. data/rbi/vitable_connect/models/benefit_eligibility_policy.rbi +0 -74
  89. data/rbi/vitable_connect/models/benefit_eligibility_policy_response.rbi +0 -38
  90. data/rbi/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rbi +0 -64
  91. data/sig/vitable_connect/models/benefit_eligibility_policy.rbs +0 -50
  92. data/sig/vitable_connect/models/benefit_eligibility_policy_response.rbs +0 -14
  93. data/sig/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rbs +0 -32
@@ -0,0 +1,214 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ module Groups
6
+ module Members
7
+ class SyncSubmitParams < VitableConnect::Internal::Type::BaseModel
8
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
9
+ include VitableConnect::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ VitableConnect::Groups::Members::SyncSubmitParams,
15
+ VitableConnect::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # Unique group identifier (grp\_\*)
20
+ sig { returns(String) }
21
+ attr_accessor :group_id
22
+
23
+ sig do
24
+ returns(
25
+ T::Array[
26
+ VitableConnect::Groups::Members::SyncSubmitParams::Member
27
+ ]
28
+ )
29
+ end
30
+ attr_accessor :members
31
+
32
+ sig do
33
+ params(
34
+ group_id: String,
35
+ members:
36
+ T::Array[
37
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::OrHash
38
+ ],
39
+ request_options: VitableConnect::RequestOptions::OrHash
40
+ ).returns(T.attached_class)
41
+ end
42
+ def self.new(
43
+ # Unique group identifier (grp\_\*)
44
+ group_id:,
45
+ members:,
46
+ request_options: {}
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ group_id: String,
54
+ members:
55
+ T::Array[
56
+ VitableConnect::Groups::Members::SyncSubmitParams::Member
57
+ ],
58
+ request_options: VitableConnect::RequestOptions
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+
65
+ class Member < VitableConnect::Internal::Type::BaseModel
66
+ OrHash =
67
+ T.type_alias do
68
+ T.any(
69
+ VitableConnect::Groups::Members::SyncSubmitParams::Member,
70
+ VitableConnect::Internal::AnyHash
71
+ )
72
+ end
73
+
74
+ sig do
75
+ returns(
76
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::Address
77
+ )
78
+ end
79
+ attr_reader :address
80
+
81
+ sig do
82
+ params(
83
+ address:
84
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::Address::OrHash
85
+ ).void
86
+ end
87
+ attr_writer :address
88
+
89
+ sig { returns(Date) }
90
+ attr_accessor :date_of_birth
91
+
92
+ sig { returns(String) }
93
+ attr_accessor :first_name
94
+
95
+ sig { returns(String) }
96
+ attr_accessor :last_name
97
+
98
+ sig { returns(String) }
99
+ attr_accessor :phone
100
+
101
+ sig { returns(String) }
102
+ attr_accessor :plan_id
103
+
104
+ sig { returns(String) }
105
+ attr_accessor :reference_id
106
+
107
+ sig { returns(T.nilable(String)) }
108
+ attr_accessor :email
109
+
110
+ sig do
111
+ params(
112
+ address:
113
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::Address::OrHash,
114
+ date_of_birth: Date,
115
+ first_name: String,
116
+ last_name: String,
117
+ phone: String,
118
+ plan_id: String,
119
+ reference_id: String,
120
+ email: T.nilable(String)
121
+ ).returns(T.attached_class)
122
+ end
123
+ def self.new(
124
+ address:,
125
+ date_of_birth:,
126
+ first_name:,
127
+ last_name:,
128
+ phone:,
129
+ plan_id:,
130
+ reference_id:,
131
+ email: nil
132
+ )
133
+ end
134
+
135
+ sig do
136
+ override.returns(
137
+ {
138
+ address:
139
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::Address,
140
+ date_of_birth: Date,
141
+ first_name: String,
142
+ last_name: String,
143
+ phone: String,
144
+ plan_id: String,
145
+ reference_id: String,
146
+ email: T.nilable(String)
147
+ }
148
+ )
149
+ end
150
+ def to_hash
151
+ end
152
+
153
+ class Address < VitableConnect::Internal::Type::BaseModel
154
+ OrHash =
155
+ T.type_alias do
156
+ T.any(
157
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::Address,
158
+ VitableConnect::Internal::AnyHash
159
+ )
160
+ end
161
+
162
+ sig { returns(String) }
163
+ attr_accessor :address_line_1
164
+
165
+ sig { returns(String) }
166
+ attr_accessor :city
167
+
168
+ sig { returns(String) }
169
+ attr_accessor :state
170
+
171
+ sig { returns(String) }
172
+ attr_accessor :zipcode
173
+
174
+ sig { returns(T.nilable(String)) }
175
+ attr_accessor :address_line_2
176
+
177
+ sig do
178
+ params(
179
+ address_line_1: String,
180
+ city: String,
181
+ state: String,
182
+ zipcode: String,
183
+ address_line_2: T.nilable(String)
184
+ ).returns(T.attached_class)
185
+ end
186
+ def self.new(
187
+ address_line_1:,
188
+ city:,
189
+ state:,
190
+ zipcode:,
191
+ address_line_2: nil
192
+ )
193
+ end
194
+
195
+ sig do
196
+ override.returns(
197
+ {
198
+ address_line_1: String,
199
+ city: String,
200
+ state: String,
201
+ zipcode: String,
202
+ address_line_2: T.nilable(String)
203
+ }
204
+ )
205
+ end
206
+ def to_hash
207
+ end
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
@@ -0,0 +1,92 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ module Groups
6
+ module Members
7
+ class SyncSubmitResponse < VitableConnect::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse,
12
+ VitableConnect::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ sig do
17
+ returns(
18
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data
19
+ )
20
+ end
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(
25
+ data:
26
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data::OrHash
27
+ ).void
28
+ end
29
+ attr_writer :data
30
+
31
+ # Response containing a single group member sync detail resource.
32
+ sig do
33
+ params(
34
+ data:
35
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data::OrHash
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(data:)
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {
44
+ data:
45
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data
46
+ }
47
+ )
48
+ end
49
+ def to_hash
50
+ end
51
+
52
+ class Data < VitableConnect::Internal::Type::BaseModel
53
+ OrHash =
54
+ T.type_alias do
55
+ T.any(
56
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data,
57
+ VitableConnect::Internal::AnyHash
58
+ )
59
+ end
60
+
61
+ sig { returns(Time) }
62
+ attr_accessor :accepted_at
63
+
64
+ sig { returns(String) }
65
+ attr_accessor :group_id
66
+
67
+ sig { returns(String) }
68
+ attr_accessor :request_id
69
+
70
+ sig do
71
+ params(
72
+ accepted_at: Time,
73
+ group_id: String,
74
+ request_id: String
75
+ ).returns(T.attached_class)
76
+ end
77
+ def self.new(accepted_at:, group_id:, request_id:)
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ { accepted_at: Time, group_id: String, request_id: String }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class PlanListParams < VitableConnect::Internal::Type::BaseModel
6
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
7
+ include VitableConnect::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ VitableConnect::PlanListParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Items per page (default: 20, max: 100)
18
+ sig { returns(T.nilable(Integer)) }
19
+ attr_reader :limit
20
+
21
+ sig { params(limit: Integer).void }
22
+ attr_writer :limit
23
+
24
+ # Page number (default: 1)
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :page
27
+
28
+ sig { params(page: Integer).void }
29
+ attr_writer :page
30
+
31
+ sig do
32
+ params(
33
+ limit: Integer,
34
+ page: Integer,
35
+ request_options: VitableConnect::RequestOptions::OrHash
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Items per page (default: 20, max: 100)
40
+ limit: nil,
41
+ # Page number (default: 1)
42
+ page: nil,
43
+ request_options: {}
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ limit: Integer,
51
+ page: Integer,
52
+ request_options: VitableConnect::RequestOptions
53
+ }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,29 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class PlanListResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::PlanListResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :name
19
+
20
+ sig { params(id: String, name: String).returns(T.attached_class) }
21
+ def self.new(id:, name:)
22
+ end
23
+
24
+ sig { override.returns({ id: String, name: String }) }
25
+ def to_hash
26
+ end
27
+ end
28
+ end
29
+ end
@@ -35,7 +35,6 @@ module VitableConnect
35
35
  # - `employee.eligibility_granted` - Employee Eligibility Granted
36
36
  # - `employee.eligibility_terminated` - Employee Eligibility Terminated
37
37
  # - `employee.deactivated` - Employee Deactivated
38
- # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
39
38
  # - `employee.deduction_created` - Employee Deduction Created
40
39
  sig do
41
40
  returns(
@@ -121,7 +120,6 @@ module VitableConnect
121
120
  # - `employee.eligibility_granted` - Employee Eligibility Granted
122
121
  # - `employee.eligibility_terminated` - Employee Eligibility Terminated
123
122
  # - `employee.deactivated` - Employee Deactivated
124
- # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
125
123
  # - `employee.deduction_created` - Employee Deduction Created
126
124
  event_name: nil,
127
125
  # Items per page (default: 20, max: 100)
@@ -168,7 +166,6 @@ module VitableConnect
168
166
  # - `employee.eligibility_granted` - Employee Eligibility Granted
169
167
  # - `employee.eligibility_terminated` - Employee Eligibility Terminated
170
168
  # - `employee.deactivated` - Employee Deactivated
171
- # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
172
169
  # - `employee.deduction_created` - Employee Deduction Created
173
170
  module EventName
174
171
  extend VitableConnect::Internal::Type::Enum
@@ -224,11 +221,6 @@ module VitableConnect
224
221
  :"employee.deactivated",
225
222
  VitableConnect::WebhookEventListParams::EventName::TaggedSymbol
226
223
  )
227
- EMPLOYER_ELIGIBILITY_POLICY_CREATED =
228
- T.let(
229
- :"employer.eligibility_policy_created",
230
- VitableConnect::WebhookEventListParams::EventName::TaggedSymbol
231
- )
232
224
  EMPLOYEE_DEDUCTION_CREATED =
233
225
  T.let(
234
226
  :"employee.deduction_created",
@@ -4,14 +4,6 @@ module VitableConnect
4
4
  AuthIssueAccessTokenParams =
5
5
  VitableConnect::Models::AuthIssueAccessTokenParams
6
6
 
7
- BenefitEligibilityPolicy = VitableConnect::Models::BenefitEligibilityPolicy
8
-
9
- BenefitEligibilityPolicyResponse =
10
- VitableConnect::Models::BenefitEligibilityPolicyResponse
11
-
12
- BenefitEligibilityPolicyRetrieveParams =
13
- VitableConnect::Models::BenefitEligibilityPolicyRetrieveParams
14
-
15
7
  Employee = VitableConnect::Models::Employee
16
8
 
17
9
  EmployeeClass = VitableConnect::Models::EmployeeClass
@@ -23,9 +15,6 @@ module VitableConnect
23
15
 
24
16
  Employer = VitableConnect::Models::Employer
25
17
 
26
- EmployerCreateBenefitEligibilityPolicyParams =
27
- VitableConnect::Models::EmployerCreateBenefitEligibilityPolicyParams
28
-
29
18
  EmployerCreateParams = VitableConnect::Models::EmployerCreateParams
30
19
 
31
20
  EmployerListEmployeesParams =
@@ -40,14 +29,33 @@ module VitableConnect
40
29
  EmployerSubmitCensusSyncParams =
41
30
  VitableConnect::Models::EmployerSubmitCensusSyncParams
42
31
 
32
+ EmployerUpdateSettingsParams =
33
+ VitableConnect::Models::EmployerUpdateSettingsParams
34
+
43
35
  Enrollment = VitableConnect::Models::Enrollment
44
36
 
45
37
  EnrollmentRetrieveParams = VitableConnect::Models::EnrollmentRetrieveParams
46
38
 
47
39
  EnrollmentStatus = VitableConnect::Models::EnrollmentStatus
48
40
 
41
+ Group = VitableConnect::Models::Group
42
+
43
+ GroupCreateParams = VitableConnect::Models::GroupCreateParams
44
+
45
+ GroupListParams = VitableConnect::Models::GroupListParams
46
+
47
+ GroupResponse = VitableConnect::Models::GroupResponse
48
+
49
+ GroupRetrieveParams = VitableConnect::Models::GroupRetrieveParams
50
+
51
+ Groups = VitableConnect::Models::Groups
52
+
53
+ GroupUpdateParams = VitableConnect::Models::GroupUpdateParams
54
+
49
55
  Pagination = VitableConnect::Models::Pagination
50
56
 
57
+ PlanListParams = VitableConnect::Models::PlanListParams
58
+
51
59
  Type = VitableConnect::Models::Type
52
60
 
53
61
  WebhookEvent = VitableConnect::Models::WebhookEvent
@@ -2,22 +2,7 @@
2
2
 
3
3
  module VitableConnect
4
4
  module Resources
5
- # Define rules that determine which employees qualify for benefits
6
5
  class BenefitEligibilityPolicies
7
- # Retrieves a benefit eligibility policy by ID.
8
- sig do
9
- params(
10
- policy_id: String,
11
- request_options: VitableConnect::RequestOptions::OrHash
12
- ).returns(VitableConnect::BenefitEligibilityPolicyResponse)
13
- end
14
- def retrieve(
15
- # Unique benefit eligibility policy identifier (epol\_\*)
16
- policy_id,
17
- request_options: {}
18
- )
19
- end
20
-
21
6
  # @api private
22
7
  sig { params(client: VitableConnect::Client).returns(T.attached_class) }
23
8
  def self.new(client:)
@@ -73,27 +73,6 @@ module VitableConnect
73
73
  )
74
74
  end
75
75
 
76
- # Creates a benefit eligibility policy for the specified employer.
77
- sig do
78
- params(
79
- employer_id: String,
80
- classification: String,
81
- waiting_period: String,
82
- request_options: VitableConnect::RequestOptions::OrHash
83
- ).returns(VitableConnect::BenefitEligibilityPolicyResponse)
84
- end
85
- def create_benefit_eligibility_policy(
86
- # Unique employer identifier (empr\_\*)
87
- employer_id,
88
- # Which employee classifications are eligible. One of: full_time, part_time, all
89
- classification:,
90
- # Waiting period before eligibility. One of: first_of_following_month, 30_days,
91
- # 60_days, none
92
- waiting_period:,
93
- request_options: {}
94
- )
95
- end
96
-
97
76
  # Retrieves a paginated list of all employees for a specific employer. Results are
98
77
  # paginated using page and limit parameters. Each employee includes payroll
99
78
  # deductions from the most recent statement period. When a new deduction statement
@@ -140,6 +119,28 @@ module VitableConnect
140
119
  )
141
120
  end
142
121
 
122
+ # Updates configuration settings for a specific employer. The employer must belong
123
+ # to the authenticated organization.
124
+ sig do
125
+ params(
126
+ employer_id: String,
127
+ pay_frequency:
128
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::OrSymbol,
129
+ request_options: VitableConnect::RequestOptions::OrHash
130
+ ).returns(VitableConnect::Models::EmployerUpdateSettingsResponse)
131
+ end
132
+ def update_settings(
133
+ # Unique employer identifier (empr\_\*)
134
+ employer_id,
135
+ # - `weekly` - weekly
136
+ # - `bi_weekly` - bi_weekly
137
+ # - `semi_monthly` - semi_monthly
138
+ # - `monthly` - monthly
139
+ pay_frequency:,
140
+ request_options: {}
141
+ )
142
+ end
143
+
143
144
  # @api private
144
145
  sig { params(client: VitableConnect::Client).returns(T.attached_class) }
145
146
  def self.new(client:)
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ class Groups
6
+ class Members
7
+ class Sync
8
+ # Retrieves a previously-submitted group member sync request by its `grpmsr_` ID.
9
+ # Returns the acceptance timestamp, completion timestamp (if processing has
10
+ # finished), and the per-member `results` once available. While processing is in
11
+ # flight, `completed_at` and `results` are `null`.
12
+ sig do
13
+ params(
14
+ request_id: String,
15
+ group_id: String,
16
+ request_options: VitableConnect::RequestOptions::OrHash
17
+ ).returns(
18
+ VitableConnect::Models::Groups::Members::SyncRetrieveResponse
19
+ )
20
+ end
21
+ def retrieve(
22
+ request_id,
23
+ # Unique group identifier (grp\_\*)
24
+ group_id:,
25
+ request_options: {}
26
+ )
27
+ end
28
+
29
+ # Submits a member sync payload for the specified group. Members in the payload
30
+ # will be queued for processing asynchronously. Returns HTTP 202 with the batch ID
31
+ # and acceptance timestamp.
32
+ sig do
33
+ params(
34
+ group_id: String,
35
+ members:
36
+ T::Array[
37
+ VitableConnect::Groups::Members::SyncSubmitParams::Member::OrHash
38
+ ],
39
+ request_options: VitableConnect::RequestOptions::OrHash
40
+ ).returns(
41
+ VitableConnect::Models::Groups::Members::SyncSubmitResponse
42
+ )
43
+ end
44
+ def submit(
45
+ # Unique group identifier (grp\_\*)
46
+ group_id,
47
+ members:,
48
+ request_options: {}
49
+ )
50
+ end
51
+
52
+ # @api private
53
+ sig do
54
+ params(client: VitableConnect::Client).returns(T.attached_class)
55
+ end
56
+ def self.new(client:)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,17 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ class Groups
6
+ class Members
7
+ sig { returns(VitableConnect::Resources::Groups::Members::Sync) }
8
+ attr_reader :sync
9
+
10
+ # @api private
11
+ sig { params(client: VitableConnect::Client).returns(T.attached_class) }
12
+ def self.new(client:)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end