vitable-connect 0.1.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 (185) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +39 -0
  4. data/README.md +267 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/vitable_connect/client.rb +118 -0
  7. data/lib/vitable_connect/errors.rb +228 -0
  8. data/lib/vitable_connect/file_part.rb +58 -0
  9. data/lib/vitable_connect/internal/page_number_page.rb +113 -0
  10. data/lib/vitable_connect/internal/transport/base_client.rb +577 -0
  11. data/lib/vitable_connect/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/vitable_connect/internal/type/array_of.rb +168 -0
  13. data/lib/vitable_connect/internal/type/base_model.rb +534 -0
  14. data/lib/vitable_connect/internal/type/base_page.rb +55 -0
  15. data/lib/vitable_connect/internal/type/boolean.rb +77 -0
  16. data/lib/vitable_connect/internal/type/converter.rb +327 -0
  17. data/lib/vitable_connect/internal/type/enum.rb +152 -0
  18. data/lib/vitable_connect/internal/type/file_input.rb +111 -0
  19. data/lib/vitable_connect/internal/type/hash_of.rb +188 -0
  20. data/lib/vitable_connect/internal/type/request_parameters.rb +42 -0
  21. data/lib/vitable_connect/internal/type/union.rb +245 -0
  22. data/lib/vitable_connect/internal/type/unknown.rb +81 -0
  23. data/lib/vitable_connect/internal/util.rb +951 -0
  24. data/lib/vitable_connect/internal.rb +20 -0
  25. data/lib/vitable_connect/models/auth_issue_access_token_params.rb +68 -0
  26. data/lib/vitable_connect/models/auth_issue_access_token_response.rb +70 -0
  27. data/lib/vitable_connect/models/benefit_eligibility_policy.rb +53 -0
  28. data/lib/vitable_connect/models/benefit_eligibility_policy_response.rb +18 -0
  29. data/lib/vitable_connect/models/benefit_eligibility_policy_retrieve_params.rb +22 -0
  30. data/lib/vitable_connect/models/employee.rb +244 -0
  31. data/lib/vitable_connect/models/employee_class.rb +25 -0
  32. data/lib/vitable_connect/models/employee_list_enrollments_params.rb +38 -0
  33. data/lib/vitable_connect/models/employee_retrieve_params.rb +22 -0
  34. data/lib/vitable_connect/models/employee_retrieve_response.rb +18 -0
  35. data/lib/vitable_connect/models/employer.rb +163 -0
  36. data/lib/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rb +43 -0
  37. data/lib/vitable_connect/models/employer_create_params.rb +115 -0
  38. data/lib/vitable_connect/models/employer_list_employees_params.rb +38 -0
  39. data/lib/vitable_connect/models/employer_list_params.rb +30 -0
  40. data/lib/vitable_connect/models/employer_response.rb +19 -0
  41. data/lib/vitable_connect/models/employer_retrieve_params.rb +22 -0
  42. data/lib/vitable_connect/models/employer_submit_census_sync_params.rb +374 -0
  43. data/lib/vitable_connect/models/employer_submit_census_sync_response.rb +35 -0
  44. data/lib/vitable_connect/models/enrollment.rb +234 -0
  45. data/lib/vitable_connect/models/enrollment_retrieve_params.rb +22 -0
  46. data/lib/vitable_connect/models/enrollment_retrieve_response.rb +18 -0
  47. data/lib/vitable_connect/models/enrollment_status.rb +21 -0
  48. data/lib/vitable_connect/models/pagination.rb +42 -0
  49. data/lib/vitable_connect/models/type.rb +17 -0
  50. data/lib/vitable_connect/models/webhook_event.rb +62 -0
  51. data/lib/vitable_connect/models/webhook_event_list_deliveries_params.rb +20 -0
  52. data/lib/vitable_connect/models/webhook_event_list_deliveries_response.rb +92 -0
  53. data/lib/vitable_connect/models/webhook_event_list_params.rb +135 -0
  54. data/lib/vitable_connect/models/webhook_event_retrieve_params.rb +20 -0
  55. data/lib/vitable_connect/models/webhook_event_retrieve_response.rb +18 -0
  56. data/lib/vitable_connect/models.rb +95 -0
  57. data/lib/vitable_connect/request_options.rb +78 -0
  58. data/lib/vitable_connect/resources/auth.rb +41 -0
  59. data/lib/vitable_connect/resources/benefit_eligibility_policies.rb +35 -0
  60. data/lib/vitable_connect/resources/employees.rb +63 -0
  61. data/lib/vitable_connect/resources/employers.rb +184 -0
  62. data/lib/vitable_connect/resources/enrollments.rb +35 -0
  63. data/lib/vitable_connect/resources/webhook_events.rb +95 -0
  64. data/lib/vitable_connect/version.rb +5 -0
  65. data/lib/vitable_connect.rb +93 -0
  66. data/manifest.yaml +17 -0
  67. data/rbi/vitable_connect/client.rbi +88 -0
  68. data/rbi/vitable_connect/errors.rbi +205 -0
  69. data/rbi/vitable_connect/file_part.rbi +37 -0
  70. data/rbi/vitable_connect/internal/page_number_page.rbi +49 -0
  71. data/rbi/vitable_connect/internal/transport/base_client.rbi +307 -0
  72. data/rbi/vitable_connect/internal/transport/pooled_net_requester.rbi +84 -0
  73. data/rbi/vitable_connect/internal/type/array_of.rbi +108 -0
  74. data/rbi/vitable_connect/internal/type/base_model.rbi +314 -0
  75. data/rbi/vitable_connect/internal/type/base_page.rbi +43 -0
  76. data/rbi/vitable_connect/internal/type/boolean.rbi +58 -0
  77. data/rbi/vitable_connect/internal/type/converter.rbi +225 -0
  78. data/rbi/vitable_connect/internal/type/enum.rbi +82 -0
  79. data/rbi/vitable_connect/internal/type/file_input.rbi +59 -0
  80. data/rbi/vitable_connect/internal/type/hash_of.rbi +108 -0
  81. data/rbi/vitable_connect/internal/type/request_parameters.rbi +31 -0
  82. data/rbi/vitable_connect/internal/type/union.rbi +130 -0
  83. data/rbi/vitable_connect/internal/type/unknown.rbi +58 -0
  84. data/rbi/vitable_connect/internal/util.rbi +507 -0
  85. data/rbi/vitable_connect/internal.rbi +18 -0
  86. data/rbi/vitable_connect/models/auth_issue_access_token_params.rbi +147 -0
  87. data/rbi/vitable_connect/models/auth_issue_access_token_response.rbi +128 -0
  88. data/rbi/vitable_connect/models/benefit_eligibility_policy.rbi +74 -0
  89. data/rbi/vitable_connect/models/benefit_eligibility_policy_response.rbi +38 -0
  90. data/rbi/vitable_connect/models/benefit_eligibility_policy_retrieve_params.rbi +43 -0
  91. data/rbi/vitable_connect/models/employee.rbi +316 -0
  92. data/rbi/vitable_connect/models/employee_class.rbi +38 -0
  93. data/rbi/vitable_connect/models/employee_list_enrollments_params.rbi +68 -0
  94. data/rbi/vitable_connect/models/employee_retrieve_params.rbi +46 -0
  95. data/rbi/vitable_connect/models/employee_retrieve_response.rbi +32 -0
  96. data/rbi/vitable_connect/models/employer.rbi +205 -0
  97. data/rbi/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rbi +64 -0
  98. data/rbi/vitable_connect/models/employer_create_params.rbi +169 -0
  99. data/rbi/vitable_connect/models/employer_list_employees_params.rbi +68 -0
  100. data/rbi/vitable_connect/models/employer_list_params.rbi +60 -0
  101. data/rbi/vitable_connect/models/employer_response.rbi +36 -0
  102. data/rbi/vitable_connect/models/employer_retrieve_params.rbi +46 -0
  103. data/rbi/vitable_connect/models/employer_submit_census_sync_params.rbi +819 -0
  104. data/rbi/vitable_connect/models/employer_submit_census_sync_response.rbi +76 -0
  105. data/rbi/vitable_connect/models/enrollment.rbi +401 -0
  106. data/rbi/vitable_connect/models/enrollment_retrieve_params.rbi +46 -0
  107. data/rbi/vitable_connect/models/enrollment_retrieve_response.rbi +34 -0
  108. data/rbi/vitable_connect/models/enrollment_status.rbi +32 -0
  109. data/rbi/vitable_connect/models/pagination.rbi +62 -0
  110. data/rbi/vitable_connect/models/type.rbi +21 -0
  111. data/rbi/vitable_connect/models/webhook_event.rbi +81 -0
  112. data/rbi/vitable_connect/models/webhook_event_list_deliveries_params.rbi +38 -0
  113. data/rbi/vitable_connect/models/webhook_event_list_deliveries_response.rbi +147 -0
  114. data/rbi/vitable_connect/models/webhook_event_list_params.rbi +307 -0
  115. data/rbi/vitable_connect/models/webhook_event_retrieve_params.rbi +38 -0
  116. data/rbi/vitable_connect/models/webhook_event_retrieve_response.rbi +34 -0
  117. data/rbi/vitable_connect/models.rbi +62 -0
  118. data/rbi/vitable_connect/request_options.rbi +61 -0
  119. data/rbi/vitable_connect/resources/auth.rbi +36 -0
  120. data/rbi/vitable_connect/resources/benefit_eligibility_policies.rbi +27 -0
  121. data/rbi/vitable_connect/resources/employees.rbi +49 -0
  122. data/rbi/vitable_connect/resources/employers.rbi +147 -0
  123. data/rbi/vitable_connect/resources/enrollments.rbi +27 -0
  124. data/rbi/vitable_connect/resources/webhook_events.rbi +84 -0
  125. data/rbi/vitable_connect/version.rbi +5 -0
  126. data/sig/vitable_connect/client.rbs +42 -0
  127. data/sig/vitable_connect/errors.rbs +117 -0
  128. data/sig/vitable_connect/file_part.rbs +21 -0
  129. data/sig/vitable_connect/internal/page_number_page.rbs +28 -0
  130. data/sig/vitable_connect/internal/transport/base_client.rbs +133 -0
  131. data/sig/vitable_connect/internal/transport/pooled_net_requester.rbs +48 -0
  132. data/sig/vitable_connect/internal/type/array_of.rbs +48 -0
  133. data/sig/vitable_connect/internal/type/base_model.rbs +104 -0
  134. data/sig/vitable_connect/internal/type/base_page.rbs +24 -0
  135. data/sig/vitable_connect/internal/type/boolean.rbs +26 -0
  136. data/sig/vitable_connect/internal/type/converter.rbs +79 -0
  137. data/sig/vitable_connect/internal/type/enum.rbs +32 -0
  138. data/sig/vitable_connect/internal/type/file_input.rbs +25 -0
  139. data/sig/vitable_connect/internal/type/hash_of.rbs +48 -0
  140. data/sig/vitable_connect/internal/type/request_parameters.rbs +20 -0
  141. data/sig/vitable_connect/internal/type/union.rbs +52 -0
  142. data/sig/vitable_connect/internal/type/unknown.rbs +26 -0
  143. data/sig/vitable_connect/internal/util.rbs +195 -0
  144. data/sig/vitable_connect/internal.rbs +10 -0
  145. data/sig/vitable_connect/models/auth_issue_access_token_params.rbs +56 -0
  146. data/sig/vitable_connect/models/auth_issue_access_token_response.rbs +50 -0
  147. data/sig/vitable_connect/models/benefit_eligibility_policy.rbs +50 -0
  148. data/sig/vitable_connect/models/benefit_eligibility_policy_response.rbs +14 -0
  149. data/sig/vitable_connect/models/benefit_eligibility_policy_retrieve_params.rbs +23 -0
  150. data/sig/vitable_connect/models/employee.rbs +169 -0
  151. data/sig/vitable_connect/models/employee_class.rbs +24 -0
  152. data/sig/vitable_connect/models/employee_list_enrollments_params.rbs +36 -0
  153. data/sig/vitable_connect/models/employee_retrieve_params.rbs +24 -0
  154. data/sig/vitable_connect/models/employee_retrieve_response.rbs +13 -0
  155. data/sig/vitable_connect/models/employer.rbs +117 -0
  156. data/sig/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rbs +32 -0
  157. data/sig/vitable_connect/models/employer_create_params.rbs +93 -0
  158. data/sig/vitable_connect/models/employer_list_employees_params.rbs +36 -0
  159. data/sig/vitable_connect/models/employer_list_params.rbs +32 -0
  160. data/sig/vitable_connect/models/employer_response.rbs +13 -0
  161. data/sig/vitable_connect/models/employer_retrieve_params.rbs +24 -0
  162. data/sig/vitable_connect/models/employer_submit_census_sync_params.rbs +274 -0
  163. data/sig/vitable_connect/models/employer_submit_census_sync_response.rbs +30 -0
  164. data/sig/vitable_connect/models/enrollment.rbs +164 -0
  165. data/sig/vitable_connect/models/enrollment_retrieve_params.rbs +24 -0
  166. data/sig/vitable_connect/models/enrollment_retrieve_response.rbs +13 -0
  167. data/sig/vitable_connect/models/enrollment_status.rbs +16 -0
  168. data/sig/vitable_connect/models/pagination.rbs +30 -0
  169. data/sig/vitable_connect/models/type.rbs +14 -0
  170. data/sig/vitable_connect/models/webhook_event.rbs +45 -0
  171. data/sig/vitable_connect/models/webhook_event_list_deliveries_params.rbs +23 -0
  172. data/sig/vitable_connect/models/webhook_event_list_deliveries_response.rbs +77 -0
  173. data/sig/vitable_connect/models/webhook_event_list_params.rbs +126 -0
  174. data/sig/vitable_connect/models/webhook_event_retrieve_params.rbs +23 -0
  175. data/sig/vitable_connect/models/webhook_event_retrieve_response.rbs +14 -0
  176. data/sig/vitable_connect/models.rbs +51 -0
  177. data/sig/vitable_connect/request_options.rbs +36 -0
  178. data/sig/vitable_connect/resources/auth.rbs +13 -0
  179. data/sig/vitable_connect/resources/benefit_eligibility_policies.rbs +12 -0
  180. data/sig/vitable_connect/resources/employees.rbs +19 -0
  181. data/sig/vitable_connect/resources/employers.rbs +49 -0
  182. data/sig/vitable_connect/resources/enrollments.rbs +12 -0
  183. data/sig/vitable_connect/resources/webhook_events.rbs +28 -0
  184. data/sig/vitable_connect/version.rbs +3 -0
  185. metadata +256 -0
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployeeRetrieveParams < 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::EmployeeRetrieveParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique employee identifier (empl\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :employee_id
20
+
21
+ sig do
22
+ params(
23
+ employee_id: String,
24
+ request_options: VitableConnect::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # Unique employee identifier (empl\_\*)
29
+ employee_id:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ employee_id: String,
38
+ request_options: VitableConnect::RequestOptions
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployeeRetrieveResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::EmployeeRetrieveResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(VitableConnect::Employee) }
15
+ attr_reader :data
16
+
17
+ sig { params(data: VitableConnect::Employee::OrHash).void }
18
+ attr_writer :data
19
+
20
+ # Response containing a single employee resource.
21
+ sig do
22
+ params(data: VitableConnect::Employee::OrHash).returns(T.attached_class)
23
+ end
24
+ def self.new(data:)
25
+ end
26
+
27
+ sig { override.returns({ data: VitableConnect::Employee }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,205 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class Employer < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(VitableConnect::Employer, VitableConnect::Internal::AnyHash)
9
+ end
10
+
11
+ # Whether the employer is currently active in the system
12
+ sig { returns(T::Boolean) }
13
+ attr_accessor :active
14
+
15
+ # Nested address within EmployerSerializer.
16
+ sig { returns(VitableConnect::Employer::Address) }
17
+ attr_reader :address
18
+
19
+ sig { params(address: VitableConnect::Employer::Address::OrHash).void }
20
+ attr_writer :address
21
+
22
+ # Timestamp when the employer was created
23
+ sig { returns(Time) }
24
+ attr_accessor :created_at
25
+
26
+ # Legal business name for compliance and tax purposes
27
+ sig { returns(String) }
28
+ attr_accessor :legal_name
29
+
30
+ # Display name of the employer
31
+ sig { returns(String) }
32
+ attr_accessor :name
33
+
34
+ # Timestamp when the employer was last updated
35
+ sig { returns(Time) }
36
+ attr_accessor :updated_at
37
+
38
+ # Email address for billing and communications
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :email
41
+
42
+ # Employer phone number (E.164 format recommended)
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :phone_number
45
+
46
+ # Partner-assigned reference ID for the employer
47
+ sig { returns(T.nilable(String)) }
48
+ attr_accessor :reference_id
49
+
50
+ # Unique employer identifier with 'empr\_' prefix
51
+ sig { returns(String) }
52
+ attr_accessor :id
53
+
54
+ # Employer Identification Number (masked in responses)
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :ein
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
+ # ID of the parent organization (org\_\*)
63
+ sig { returns(T.nilable(String)) }
64
+ attr_accessor :organization_id
65
+
66
+ # Serializer for Employer entity in public API responses.
67
+ sig do
68
+ params(
69
+ id: String,
70
+ active: T::Boolean,
71
+ address: VitableConnect::Employer::Address::OrHash,
72
+ created_at: Time,
73
+ ein: T.nilable(String),
74
+ eligibility_policy_id: T.nilable(String),
75
+ legal_name: String,
76
+ name: String,
77
+ organization_id: T.nilable(String),
78
+ updated_at: Time,
79
+ email: T.nilable(String),
80
+ phone_number: T.nilable(String),
81
+ reference_id: T.nilable(String)
82
+ ).returns(T.attached_class)
83
+ end
84
+ def self.new(
85
+ # Unique employer identifier with 'empr\_' prefix
86
+ id:,
87
+ # Whether the employer is currently active in the system
88
+ active:,
89
+ # Nested address within EmployerSerializer.
90
+ address:,
91
+ # Timestamp when the employer was created
92
+ created_at:,
93
+ # Employer Identification Number (masked in responses)
94
+ ein:,
95
+ # ID of the benefit eligibility policy (epol\_\*), if assigned
96
+ eligibility_policy_id:,
97
+ # Legal business name for compliance and tax purposes
98
+ legal_name:,
99
+ # Display name of the employer
100
+ name:,
101
+ # ID of the parent organization (org\_\*)
102
+ organization_id:,
103
+ # Timestamp when the employer was last updated
104
+ updated_at:,
105
+ # Email address for billing and communications
106
+ email: nil,
107
+ # Employer phone number (E.164 format recommended)
108
+ phone_number: nil,
109
+ # Partner-assigned reference ID for the employer
110
+ reference_id: nil
111
+ )
112
+ end
113
+
114
+ sig do
115
+ override.returns(
116
+ {
117
+ id: String,
118
+ active: T::Boolean,
119
+ address: VitableConnect::Employer::Address,
120
+ created_at: Time,
121
+ ein: T.nilable(String),
122
+ eligibility_policy_id: T.nilable(String),
123
+ legal_name: String,
124
+ name: String,
125
+ organization_id: T.nilable(String),
126
+ updated_at: Time,
127
+ email: T.nilable(String),
128
+ phone_number: T.nilable(String),
129
+ reference_id: T.nilable(String)
130
+ }
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+
136
+ class Address < VitableConnect::Internal::Type::BaseModel
137
+ OrHash =
138
+ T.type_alias do
139
+ T.any(
140
+ VitableConnect::Employer::Address,
141
+ VitableConnect::Internal::AnyHash
142
+ )
143
+ end
144
+
145
+ # Primary street address
146
+ sig { returns(String) }
147
+ attr_accessor :address_line_1
148
+
149
+ # City name
150
+ sig { returns(String) }
151
+ attr_accessor :city
152
+
153
+ # Two-letter state code (e.g., CA, NY)
154
+ sig { returns(String) }
155
+ attr_accessor :state
156
+
157
+ # ZIP code (5 or 9 digit)
158
+ sig { returns(String) }
159
+ attr_accessor :zipcode
160
+
161
+ # Secondary street address (apt, suite, etc.)
162
+ sig { returns(T.nilable(String)) }
163
+ attr_accessor :address_line_2
164
+
165
+ # Nested address within EmployerSerializer.
166
+ sig do
167
+ params(
168
+ address_line_1: String,
169
+ city: String,
170
+ state: String,
171
+ zipcode: String,
172
+ address_line_2: T.nilable(String)
173
+ ).returns(T.attached_class)
174
+ end
175
+ def self.new(
176
+ # Primary street address
177
+ address_line_1:,
178
+ # City name
179
+ city:,
180
+ # Two-letter state code (e.g., CA, NY)
181
+ state:,
182
+ # ZIP code (5 or 9 digit)
183
+ zipcode:,
184
+ # Secondary street address (apt, suite, etc.)
185
+ address_line_2: nil
186
+ )
187
+ end
188
+
189
+ sig do
190
+ override.returns(
191
+ {
192
+ address_line_1: String,
193
+ city: String,
194
+ state: String,
195
+ zipcode: String,
196
+ address_line_2: T.nilable(String)
197
+ }
198
+ )
199
+ end
200
+ def to_hash
201
+ end
202
+ end
203
+ end
204
+ end
205
+ end
@@ -0,0 +1,64 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerCreateBenefitEligibilityPolicyParams < 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::EmployerCreateBenefitEligibilityPolicyParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique employer identifier (empr\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :employer_id
20
+
21
+ # Which employee classifications are eligible. One of: full_time, part_time, all
22
+ sig { returns(String) }
23
+ attr_accessor :classification
24
+
25
+ # Waiting period before eligibility. One of: first_of_following_month, 30_days,
26
+ # 60_days, none
27
+ sig { returns(String) }
28
+ attr_accessor :waiting_period
29
+
30
+ sig do
31
+ params(
32
+ employer_id: String,
33
+ classification: String,
34
+ waiting_period: String,
35
+ request_options: VitableConnect::RequestOptions::OrHash
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Unique employer identifier (empr\_\*)
40
+ employer_id:,
41
+ # Which employee classifications are eligible. One of: full_time, part_time, all
42
+ classification:,
43
+ # Waiting period before eligibility. One of: first_of_following_month, 30_days,
44
+ # 60_days, none
45
+ waiting_period:,
46
+ request_options: {}
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ employer_id: String,
54
+ classification: String,
55
+ waiting_period: String,
56
+ request_options: VitableConnect::RequestOptions
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,169 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerCreateParams < 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::EmployerCreateParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Employer address
18
+ sig { returns(VitableConnect::EmployerCreateParams::Address) }
19
+ attr_reader :address
20
+
21
+ sig do
22
+ params(
23
+ address: VitableConnect::EmployerCreateParams::Address::OrHash
24
+ ).void
25
+ end
26
+ attr_writer :address
27
+
28
+ # Employer Identification Number (format: XX-XXXXXXX)
29
+ sig { returns(String) }
30
+ attr_accessor :ein
31
+
32
+ # Email address for billing and communications
33
+ sig { returns(String) }
34
+ attr_accessor :email
35
+
36
+ # Legal business name
37
+ sig { returns(String) }
38
+ attr_accessor :legal_name
39
+
40
+ # Employer display name
41
+ sig { returns(String) }
42
+ attr_accessor :name
43
+
44
+ # Employer phone number (10-digit US format, e.g. 5551234567)
45
+ sig { returns(T.nilable(String)) }
46
+ attr_accessor :phone_number
47
+
48
+ # External reference ID for this employer
49
+ sig { returns(T.nilable(String)) }
50
+ attr_accessor :reference_id
51
+
52
+ sig do
53
+ params(
54
+ address: VitableConnect::EmployerCreateParams::Address::OrHash,
55
+ ein: String,
56
+ email: String,
57
+ legal_name: String,
58
+ name: String,
59
+ phone_number: T.nilable(String),
60
+ reference_id: T.nilable(String),
61
+ request_options: VitableConnect::RequestOptions::OrHash
62
+ ).returns(T.attached_class)
63
+ end
64
+ def self.new(
65
+ # Employer address
66
+ address:,
67
+ # Employer Identification Number (format: XX-XXXXXXX)
68
+ ein:,
69
+ # Email address for billing and communications
70
+ email:,
71
+ # Legal business name
72
+ legal_name:,
73
+ # Employer display name
74
+ name:,
75
+ # Employer phone number (10-digit US format, e.g. 5551234567)
76
+ phone_number: nil,
77
+ # External reference ID for this employer
78
+ reference_id: nil,
79
+ request_options: {}
80
+ )
81
+ end
82
+
83
+ sig do
84
+ override.returns(
85
+ {
86
+ address: VitableConnect::EmployerCreateParams::Address,
87
+ ein: String,
88
+ email: String,
89
+ legal_name: String,
90
+ name: String,
91
+ phone_number: T.nilable(String),
92
+ reference_id: T.nilable(String),
93
+ request_options: VitableConnect::RequestOptions
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+
100
+ class Address < VitableConnect::Internal::Type::BaseModel
101
+ OrHash =
102
+ T.type_alias do
103
+ T.any(
104
+ VitableConnect::EmployerCreateParams::Address,
105
+ VitableConnect::Internal::AnyHash
106
+ )
107
+ end
108
+
109
+ # Primary street address
110
+ sig { returns(String) }
111
+ attr_accessor :address_line_1
112
+
113
+ # City name
114
+ sig { returns(String) }
115
+ attr_accessor :city
116
+
117
+ # Two-letter state code
118
+ sig { returns(String) }
119
+ attr_accessor :state
120
+
121
+ # ZIP code
122
+ sig { returns(String) }
123
+ attr_accessor :zipcode
124
+
125
+ # Secondary street address
126
+ sig { returns(T.nilable(String)) }
127
+ attr_accessor :address_line_2
128
+
129
+ # Employer address
130
+ sig do
131
+ params(
132
+ address_line_1: String,
133
+ city: String,
134
+ state: String,
135
+ zipcode: String,
136
+ address_line_2: T.nilable(String)
137
+ ).returns(T.attached_class)
138
+ end
139
+ def self.new(
140
+ # Primary street address
141
+ address_line_1:,
142
+ # City name
143
+ city:,
144
+ # Two-letter state code
145
+ state:,
146
+ # ZIP code
147
+ zipcode:,
148
+ # Secondary street address
149
+ address_line_2: nil
150
+ )
151
+ end
152
+
153
+ sig do
154
+ override.returns(
155
+ {
156
+ address_line_1: String,
157
+ city: String,
158
+ state: String,
159
+ zipcode: String,
160
+ address_line_2: T.nilable(String)
161
+ }
162
+ )
163
+ end
164
+ def to_hash
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerListEmployeesParams < 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::EmployerListEmployeesParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique employer identifier (empr\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :employer_id
20
+
21
+ # Items per page (default: 20, max: 100)
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_reader :limit
24
+
25
+ sig { params(limit: Integer).void }
26
+ attr_writer :limit
27
+
28
+ # Page number (default: 1)
29
+ sig { returns(T.nilable(Integer)) }
30
+ attr_reader :page
31
+
32
+ sig { params(page: Integer).void }
33
+ attr_writer :page
34
+
35
+ sig do
36
+ params(
37
+ employer_id: String,
38
+ limit: Integer,
39
+ page: Integer,
40
+ request_options: VitableConnect::RequestOptions::OrHash
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ # Unique employer identifier (empr\_\*)
45
+ employer_id:,
46
+ # Items per page (default: 20, max: 100)
47
+ limit: nil,
48
+ # Page number (default: 1)
49
+ page: nil,
50
+ request_options: {}
51
+ )
52
+ end
53
+
54
+ sig do
55
+ override.returns(
56
+ {
57
+ employer_id: String,
58
+ limit: Integer,
59
+ page: Integer,
60
+ request_options: VitableConnect::RequestOptions
61
+ }
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerListParams < 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::EmployerListParams,
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,36 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::EmployerResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Serializer for Employer entity in public API responses.
15
+ sig { returns(VitableConnect::Employer) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: VitableConnect::Employer::OrHash).void }
19
+ attr_writer :data
20
+
21
+ # Response containing a single employer resource.
22
+ sig do
23
+ params(data: VitableConnect::Employer::OrHash).returns(T.attached_class)
24
+ end
25
+ def self.new(
26
+ # Serializer for Employer entity in public API responses.
27
+ data:
28
+ )
29
+ end
30
+
31
+ sig { override.returns({ data: VitableConnect::Employer }) }
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end