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,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ class Groups
6
+ # @return [VitableConnect::Resources::Groups::Members]
7
+ attr_reader :members
8
+
9
+ # Creates a new group scoped to the authenticated organization.
10
+ #
11
+ # @overload create(external_reference_id:, name:, request_options: {})
12
+ #
13
+ # @param external_reference_id [String]
14
+ # @param name [String]
15
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [VitableConnect::Models::GroupResponse]
18
+ #
19
+ # @see VitableConnect::Models::GroupCreateParams
20
+ def create(params)
21
+ parsed, options = VitableConnect::GroupCreateParams.dump_request(params)
22
+ @client.request(
23
+ method: :post,
24
+ path: "v1/groups",
25
+ body: parsed,
26
+ model: VitableConnect::GroupResponse,
27
+ options: options
28
+ )
29
+ end
30
+
31
+ # Retrieves a single group by its prefixed ID. Returns 404 if the group does not
32
+ # belong to the authenticated organization.
33
+ #
34
+ # @overload retrieve(group_id, request_options: {})
35
+ #
36
+ # @param group_id [String] Unique group identifier (grp\_\*)
37
+ #
38
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
39
+ #
40
+ # @return [VitableConnect::Models::GroupResponse]
41
+ #
42
+ # @see VitableConnect::Models::GroupRetrieveParams
43
+ def retrieve(group_id, params = {})
44
+ @client.request(
45
+ method: :get,
46
+ path: ["v1/groups/%1$s", group_id],
47
+ model: VitableConnect::GroupResponse,
48
+ options: params[:request_options]
49
+ )
50
+ end
51
+
52
+ # Partially updates a group's name or external reference ID. Returns 404 if the
53
+ # group does not belong to the authenticated organization.
54
+ #
55
+ # @overload update(group_id, external_reference_id: nil, name: nil, request_options: {})
56
+ #
57
+ # @param group_id [String] Unique group identifier (grp\_\*)
58
+ #
59
+ # @param external_reference_id [String, nil]
60
+ #
61
+ # @param name [String, nil]
62
+ #
63
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
64
+ #
65
+ # @return [VitableConnect::Models::GroupResponse]
66
+ #
67
+ # @see VitableConnect::Models::GroupUpdateParams
68
+ def update(group_id, params = {})
69
+ parsed, options = VitableConnect::GroupUpdateParams.dump_request(params)
70
+ @client.request(
71
+ method: :patch,
72
+ path: ["v1/groups/%1$s", group_id],
73
+ body: parsed,
74
+ model: VitableConnect::GroupResponse,
75
+ options: options
76
+ )
77
+ end
78
+
79
+ # Returns a paginated list of groups belonging to the authenticated organization.
80
+ #
81
+ # @overload list(limit: nil, page: nil, request_options: {})
82
+ #
83
+ # @param limit [Integer] Items per page (default: 20, max: 100)
84
+ #
85
+ # @param page [Integer] Page number (default: 1)
86
+ #
87
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
88
+ #
89
+ # @return [VitableConnect::Internal::PageNumberPage<VitableConnect::Models::Group>]
90
+ #
91
+ # @see VitableConnect::Models::GroupListParams
92
+ def list(params = {})
93
+ parsed, options = VitableConnect::GroupListParams.dump_request(params)
94
+ query = VitableConnect::Internal::Util.encode_query_params(parsed)
95
+ @client.request(
96
+ method: :get,
97
+ path: "v1/groups",
98
+ query: query,
99
+ page: VitableConnect::Internal::PageNumberPage,
100
+ model: VitableConnect::Group,
101
+ options: options
102
+ )
103
+ end
104
+
105
+ # @api private
106
+ #
107
+ # @param client [VitableConnect::Client]
108
+ def initialize(client:)
109
+ @client = client
110
+ @members = VitableConnect::Resources::Groups::Members.new(client: client)
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ class Plans
6
+ # Returns a paginated list of benefit plans linked to the authenticated
7
+ # organization.
8
+ #
9
+ # @overload list(limit: nil, page: nil, request_options: {})
10
+ #
11
+ # @param limit [Integer] Items per page (default: 20, max: 100)
12
+ #
13
+ # @param page [Integer] Page number (default: 1)
14
+ #
15
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [VitableConnect::Internal::PageNumberPage<VitableConnect::Models::PlanListResponse>]
18
+ #
19
+ # @see VitableConnect::Models::PlanListParams
20
+ def list(params = {})
21
+ parsed, options = VitableConnect::PlanListParams.dump_request(params)
22
+ query = VitableConnect::Internal::Util.encode_query_params(parsed)
23
+ @client.request(
24
+ method: :get,
25
+ path: "v1/plans",
26
+ query: query,
27
+ page: VitableConnect::Internal::PageNumberPage,
28
+ model: VitableConnect::Models::PlanListResponse,
29
+ options: options
30
+ )
31
+ end
32
+
33
+ # @api private
34
+ #
35
+ # @param client [VitableConnect::Client]
36
+ def initialize(client:)
37
+ @client = client
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VitableConnect
4
- VERSION = "0.3.0"
4
+ VERSION = "0.5.0"
5
5
  end
@@ -55,16 +55,12 @@ require_relative "vitable_connect/client"
55
55
  require_relative "vitable_connect/internal/page_number_page"
56
56
  require_relative "vitable_connect/models/auth_issue_access_token_params"
57
57
  require_relative "vitable_connect/models/auth_issue_access_token_response"
58
- require_relative "vitable_connect/models/benefit_eligibility_policy"
59
- require_relative "vitable_connect/models/benefit_eligibility_policy_response"
60
- require_relative "vitable_connect/models/benefit_eligibility_policy_retrieve_params"
61
58
  require_relative "vitable_connect/models/employee"
62
59
  require_relative "vitable_connect/models/employee_class"
63
60
  require_relative "vitable_connect/models/employee_list_enrollments_params"
64
61
  require_relative "vitable_connect/models/employee_retrieve_params"
65
62
  require_relative "vitable_connect/models/employee_retrieve_response"
66
63
  require_relative "vitable_connect/models/employer"
67
- require_relative "vitable_connect/models/employer_create_benefit_eligibility_policy_params"
68
64
  require_relative "vitable_connect/models/employer_create_params"
69
65
  require_relative "vitable_connect/models/employer_list_employees_params"
70
66
  require_relative "vitable_connect/models/employer_list_params"
@@ -72,11 +68,25 @@ require_relative "vitable_connect/models/employer_response"
72
68
  require_relative "vitable_connect/models/employer_retrieve_params"
73
69
  require_relative "vitable_connect/models/employer_submit_census_sync_params"
74
70
  require_relative "vitable_connect/models/employer_submit_census_sync_response"
71
+ require_relative "vitable_connect/models/employer_update_settings_params"
72
+ require_relative "vitable_connect/models/employer_update_settings_response"
75
73
  require_relative "vitable_connect/models/enrollment"
76
74
  require_relative "vitable_connect/models/enrollment_retrieve_params"
77
75
  require_relative "vitable_connect/models/enrollment_retrieve_response"
78
76
  require_relative "vitable_connect/models/enrollment_status"
77
+ require_relative "vitable_connect/models/group"
78
+ require_relative "vitable_connect/models/group_create_params"
79
+ require_relative "vitable_connect/models/group_list_params"
80
+ require_relative "vitable_connect/models/group_response"
81
+ require_relative "vitable_connect/models/group_retrieve_params"
82
+ require_relative "vitable_connect/models/groups/members/sync_retrieve_params"
83
+ require_relative "vitable_connect/models/groups/members/sync_retrieve_response"
84
+ require_relative "vitable_connect/models/groups/members/sync_submit_params"
85
+ require_relative "vitable_connect/models/groups/members/sync_submit_response"
86
+ require_relative "vitable_connect/models/group_update_params"
79
87
  require_relative "vitable_connect/models/pagination"
88
+ require_relative "vitable_connect/models/plan_list_params"
89
+ require_relative "vitable_connect/models/plan_list_response"
80
90
  require_relative "vitable_connect/models/type"
81
91
  require_relative "vitable_connect/models/webhook_event"
82
92
  require_relative "vitable_connect/models/webhook_event_list_deliveries_params"
@@ -90,4 +100,8 @@ require_relative "vitable_connect/resources/benefit_eligibility_policies"
90
100
  require_relative "vitable_connect/resources/employees"
91
101
  require_relative "vitable_connect/resources/employers"
92
102
  require_relative "vitable_connect/resources/enrollments"
103
+ require_relative "vitable_connect/resources/groups"
104
+ require_relative "vitable_connect/resources/groups/members"
105
+ require_relative "vitable_connect/resources/groups/members/sync"
106
+ require_relative "vitable_connect/resources/plans"
93
107
  require_relative "vitable_connect/resources/webhook_events"
@@ -28,7 +28,6 @@ module VitableConnect
28
28
  sig { returns(VitableConnect::Resources::Auth) }
29
29
  attr_reader :auth
30
30
 
31
- # Define rules that determine which employees qualify for benefits
32
31
  sig { returns(VitableConnect::Resources::BenefitEligibilityPolicies) }
33
32
  attr_reader :benefit_eligibility_policies
34
33
 
@@ -45,6 +44,12 @@ module VitableConnect
45
44
  sig { returns(VitableConnect::Resources::WebhookEvents) }
46
45
  attr_reader :webhook_events
47
46
 
47
+ sig { returns(VitableConnect::Resources::Groups) }
48
+ attr_reader :groups
49
+
50
+ sig { returns(VitableConnect::Resources::Plans) }
51
+ attr_reader :plans
52
+
48
53
  # @api private
49
54
  sig { override.returns(T::Hash[String, String]) }
50
55
  private def auth_headers
@@ -25,10 +25,6 @@ module VitableConnect
25
25
  sig { returns(String) }
26
26
  attr_accessor :email
27
27
 
28
- # Benefit enrollments for this employee
29
- sig { returns(T::Array[VitableConnect::Employee::Enrollment]) }
30
- attr_accessor :enrollments
31
-
32
28
  # Employee's legal first name
33
29
  sig { returns(String) }
34
30
  attr_accessor :first_name
@@ -69,10 +65,6 @@ module VitableConnect
69
65
  sig { returns(T.nilable(Date)) }
70
66
  attr_accessor :hire_date
71
67
 
72
- # Phone number (10-digit US domestic string)
73
- sig { returns(T.nilable(String)) }
74
- attr_accessor :phone
75
-
76
68
  # Partner-assigned reference ID for the employee
77
69
  sig { returns(T.nilable(String)) }
78
70
  attr_accessor :reference_id
@@ -93,6 +85,10 @@ module VitableConnect
93
85
  sig { returns(String) }
94
86
  attr_accessor :member_id
95
87
 
88
+ # Phone number (10-digit US domestic string)
89
+ sig { returns(T.nilable(String)) }
90
+ attr_accessor :phone
91
+
96
92
  # Employee status (active or terminated)
97
93
  sig { returns(String) }
98
94
  attr_accessor :status
@@ -104,17 +100,16 @@ module VitableConnect
104
100
  date_of_birth: Date,
105
101
  deductions: T::Array[VitableConnect::Employee::Deduction::OrHash],
106
102
  email: String,
107
- enrollments: T::Array[VitableConnect::Employee::Enrollment::OrHash],
108
103
  first_name: String,
109
104
  last_name: String,
110
105
  member_id: String,
106
+ phone: T.nilable(String),
111
107
  status: String,
112
108
  updated_at: Time,
113
109
  address: T.nilable(VitableConnect::Employee::Address::OrHash),
114
110
  employee_class: T.nilable(VitableConnect::EmployeeClass::OrSymbol),
115
111
  gender: T.nilable(String),
116
112
  hire_date: T.nilable(Date),
117
- phone: T.nilable(String),
118
113
  reference_id: T.nilable(String),
119
114
  suffix: T.nilable(String),
120
115
  termination_date: T.nilable(Date)
@@ -132,14 +127,14 @@ module VitableConnect
132
127
  deductions:,
133
128
  # Email address
134
129
  email:,
135
- # Benefit enrollments for this employee
136
- enrollments:,
137
130
  # Employee's legal first name
138
131
  first_name:,
139
132
  # Employee's legal last name
140
133
  last_name:,
141
134
  # Unique member identifier with 'mbr\_' prefix
142
135
  member_id:,
136
+ # Phone number (10-digit US domestic string)
137
+ phone:,
143
138
  # Employee status (active or terminated)
144
139
  status:,
145
140
  # Timestamp when the employee was last updated
@@ -157,8 +152,6 @@ module VitableConnect
157
152
  gender: nil,
158
153
  # Employee's hire date with the employer
159
154
  hire_date: nil,
160
- # Phone number (10-digit US domestic string)
161
- phone: nil,
162
155
  # Partner-assigned reference ID for the employee
163
156
  reference_id: nil,
164
157
  # Name suffix (e.g., Jr., Sr., III)
@@ -176,10 +169,10 @@ module VitableConnect
176
169
  date_of_birth: Date,
177
170
  deductions: T::Array[VitableConnect::Employee::Deduction],
178
171
  email: String,
179
- enrollments: T::Array[VitableConnect::Employee::Enrollment],
180
172
  first_name: String,
181
173
  last_name: String,
182
174
  member_id: String,
175
+ phone: T.nilable(String),
183
176
  status: String,
184
177
  updated_at: Time,
185
178
  address: T.nilable(VitableConnect::Employee::Address),
@@ -187,7 +180,6 @@ module VitableConnect
187
180
  T.nilable(VitableConnect::EmployeeClass::TaggedSymbol),
188
181
  gender: T.nilable(String),
189
182
  hire_date: T.nilable(Date),
190
- phone: T.nilable(String),
191
183
  reference_id: T.nilable(String),
192
184
  suffix: T.nilable(String),
193
185
  termination_date: T.nilable(Date)
@@ -386,63 +378,6 @@ module VitableConnect
386
378
  end
387
379
  end
388
380
 
389
- class Enrollment < VitableConnect::Internal::Type::BaseModel
390
- OrHash =
391
- T.type_alias do
392
- T.any(
393
- VitableConnect::Employee::Enrollment,
394
- VitableConnect::Internal::AnyHash
395
- )
396
- end
397
-
398
- # - `pending` - Pending
399
- # - `enrolled` - Enrolled
400
- # - `waived` - Waived
401
- # - `inactive` - Inactive
402
- sig { returns(VitableConnect::EnrollmentStatus::TaggedSymbol) }
403
- attr_accessor :status
404
-
405
- # Timestamp when the enrollment decision was made
406
- sig { returns(T.nilable(Time)) }
407
- attr_accessor :answered_at
408
-
409
- # Unique enrollment identifier with 'enrl\_' prefix
410
- sig { returns(String) }
411
- attr_accessor :id
412
-
413
- sig do
414
- params(
415
- id: String,
416
- status: VitableConnect::EnrollmentStatus::OrSymbol,
417
- answered_at: T.nilable(Time)
418
- ).returns(T.attached_class)
419
- end
420
- def self.new(
421
- # Unique enrollment identifier with 'enrl\_' prefix
422
- id:,
423
- # - `pending` - Pending
424
- # - `enrolled` - Enrolled
425
- # - `waived` - Waived
426
- # - `inactive` - Inactive
427
- status:,
428
- # Timestamp when the enrollment decision was made
429
- answered_at: nil
430
- )
431
- end
432
-
433
- sig do
434
- override.returns(
435
- {
436
- id: String,
437
- status: VitableConnect::EnrollmentStatus::TaggedSymbol,
438
- answered_at: T.nilable(Time)
439
- }
440
- )
441
- end
442
- def to_hash
443
- end
444
- end
445
-
446
381
  class Address < VitableConnect::Internal::Type::BaseModel
447
382
  OrHash =
448
383
  T.type_alias do
@@ -55,10 +55,6 @@ module VitableConnect
55
55
  sig { returns(T.nilable(String)) }
56
56
  attr_accessor :ein
57
57
 
58
- # ID of the benefit eligibility policy (epol\_\*), if assigned
59
- sig { returns(T.nilable(String)) }
60
- attr_accessor :eligibility_policy_id
61
-
62
58
  # ID of the parent organization (org\_\*)
63
59
  sig { returns(T.nilable(String)) }
64
60
  attr_accessor :organization_id
@@ -71,7 +67,6 @@ module VitableConnect
71
67
  address: VitableConnect::Employer::Address::OrHash,
72
68
  created_at: Time,
73
69
  ein: T.nilable(String),
74
- eligibility_policy_id: T.nilable(String),
75
70
  legal_name: String,
76
71
  name: String,
77
72
  organization_id: T.nilable(String),
@@ -92,8 +87,6 @@ module VitableConnect
92
87
  created_at:,
93
88
  # Employer Identification Number (masked in responses)
94
89
  ein:,
95
- # ID of the benefit eligibility policy (epol\_\*), if assigned
96
- eligibility_policy_id:,
97
90
  # Legal business name for compliance and tax purposes
98
91
  legal_name:,
99
92
  # Display name of the employer
@@ -119,7 +112,6 @@ module VitableConnect
119
112
  address: VitableConnect::Employer::Address,
120
113
  created_at: Time,
121
114
  ein: T.nilable(String),
122
- eligibility_policy_id: T.nilable(String),
123
115
  legal_name: String,
124
116
  name: String,
125
117
  organization_id: T.nilable(String),
@@ -0,0 +1,114 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerUpdateSettingsParams < 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::EmployerUpdateSettingsParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique employer identifier (empr\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :employer_id
20
+
21
+ # - `weekly` - weekly
22
+ # - `bi_weekly` - bi_weekly
23
+ # - `semi_monthly` - semi_monthly
24
+ # - `monthly` - monthly
25
+ sig do
26
+ returns(
27
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::OrSymbol
28
+ )
29
+ end
30
+ attr_accessor :pay_frequency
31
+
32
+ sig do
33
+ params(
34
+ employer_id: String,
35
+ pay_frequency:
36
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::OrSymbol,
37
+ request_options: VitableConnect::RequestOptions::OrHash
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+ # Unique employer identifier (empr\_\*)
42
+ employer_id:,
43
+ # - `weekly` - weekly
44
+ # - `bi_weekly` - bi_weekly
45
+ # - `semi_monthly` - semi_monthly
46
+ # - `monthly` - monthly
47
+ pay_frequency:,
48
+ request_options: {}
49
+ )
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ employer_id: String,
56
+ pay_frequency:
57
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::OrSymbol,
58
+ request_options: VitableConnect::RequestOptions
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+
65
+ # - `weekly` - weekly
66
+ # - `bi_weekly` - bi_weekly
67
+ # - `semi_monthly` - semi_monthly
68
+ # - `monthly` - monthly
69
+ module PayFrequency
70
+ extend VitableConnect::Internal::Type::Enum
71
+
72
+ TaggedSymbol =
73
+ T.type_alias do
74
+ T.all(
75
+ Symbol,
76
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency
77
+ )
78
+ end
79
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
80
+
81
+ WEEKLY =
82
+ T.let(
83
+ :weekly,
84
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::TaggedSymbol
85
+ )
86
+ BI_WEEKLY =
87
+ T.let(
88
+ :bi_weekly,
89
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::TaggedSymbol
90
+ )
91
+ SEMI_MONTHLY =
92
+ T.let(
93
+ :semi_monthly,
94
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::TaggedSymbol
95
+ )
96
+ MONTHLY =
97
+ T.let(
98
+ :monthly,
99
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::TaggedSymbol
100
+ )
101
+
102
+ sig do
103
+ override.returns(
104
+ T::Array[
105
+ VitableConnect::EmployerUpdateSettingsParams::PayFrequency::TaggedSymbol
106
+ ]
107
+ )
108
+ end
109
+ def self.values
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,147 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerUpdateSettingsResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::EmployerUpdateSettingsResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(VitableConnect::Models::EmployerUpdateSettingsResponse::Data)
16
+ end
17
+ attr_reader :data
18
+
19
+ sig do
20
+ params(
21
+ data:
22
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::OrHash
23
+ ).void
24
+ end
25
+ attr_writer :data
26
+
27
+ # Response containing a single employer settings resource.
28
+ sig do
29
+ params(
30
+ data:
31
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::OrHash
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(data:)
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ { data: VitableConnect::Models::EmployerUpdateSettingsResponse::Data }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ class Data < VitableConnect::Internal::Type::BaseModel
46
+ OrHash =
47
+ T.type_alias do
48
+ T.any(
49
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data,
50
+ VitableConnect::Internal::AnyHash
51
+ )
52
+ end
53
+
54
+ # - `weekly` - Weekly
55
+ # - `bi_weekly` - Bi-Weekly
56
+ # - `semi_monthly` - Semi-Monthly
57
+ # - `monthly` - Monthly
58
+ sig do
59
+ returns(
60
+ T.nilable(
61
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
62
+ )
63
+ )
64
+ end
65
+ attr_accessor :pay_frequency
66
+
67
+ sig do
68
+ params(
69
+ pay_frequency:
70
+ T.nilable(
71
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::OrSymbol
72
+ )
73
+ ).returns(T.attached_class)
74
+ end
75
+ def self.new(
76
+ # - `weekly` - Weekly
77
+ # - `bi_weekly` - Bi-Weekly
78
+ # - `semi_monthly` - Semi-Monthly
79
+ # - `monthly` - Monthly
80
+ pay_frequency:
81
+ )
82
+ end
83
+
84
+ sig do
85
+ override.returns(
86
+ {
87
+ pay_frequency:
88
+ T.nilable(
89
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
90
+ )
91
+ }
92
+ )
93
+ end
94
+ def to_hash
95
+ end
96
+
97
+ # - `weekly` - Weekly
98
+ # - `bi_weekly` - Bi-Weekly
99
+ # - `semi_monthly` - Semi-Monthly
100
+ # - `monthly` - Monthly
101
+ module PayFrequency
102
+ extend VitableConnect::Internal::Type::Enum
103
+
104
+ TaggedSymbol =
105
+ T.type_alias do
106
+ T.all(
107
+ Symbol,
108
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency
109
+ )
110
+ end
111
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
112
+
113
+ WEEKLY =
114
+ T.let(
115
+ :weekly,
116
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
117
+ )
118
+ BI_WEEKLY =
119
+ T.let(
120
+ :bi_weekly,
121
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
122
+ )
123
+ SEMI_MONTHLY =
124
+ T.let(
125
+ :semi_monthly,
126
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
127
+ )
128
+ MONTHLY =
129
+ T.let(
130
+ :monthly,
131
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
132
+ )
133
+
134
+ sig do
135
+ override.returns(
136
+ T::Array[
137
+ VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency::TaggedSymbol
138
+ ]
139
+ )
140
+ end
141
+ def self.values
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end