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,128 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class AuthIssueAccessTokenResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::AuthIssueAccessTokenResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The issued access token (vit*at*\*)
15
+ sig { returns(String) }
16
+ attr_accessor :access_token
17
+
18
+ # Token lifetime in seconds
19
+ sig { returns(Integer) }
20
+ attr_accessor :expires_in
21
+
22
+ # Token type, always 'Bearer'
23
+ sig { returns(String) }
24
+ attr_accessor :token_type
25
+
26
+ # Entity the token is bound to, if any
27
+ sig do
28
+ returns(
29
+ T.nilable(
30
+ VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity
31
+ )
32
+ )
33
+ end
34
+ attr_reader :bound_entity
35
+
36
+ sig do
37
+ params(
38
+ bound_entity:
39
+ T.nilable(
40
+ VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::OrHash
41
+ )
42
+ ).void
43
+ end
44
+ attr_writer :bound_entity
45
+
46
+ sig do
47
+ params(
48
+ access_token: String,
49
+ expires_in: Integer,
50
+ token_type: String,
51
+ bound_entity:
52
+ T.nilable(
53
+ VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::OrHash
54
+ )
55
+ ).returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+ # The issued access token (vit*at*\*)
59
+ access_token:,
60
+ # Token lifetime in seconds
61
+ expires_in:,
62
+ # Token type, always 'Bearer'
63
+ token_type:,
64
+ # Entity the token is bound to, if any
65
+ bound_entity: nil
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ access_token: String,
73
+ expires_in: Integer,
74
+ token_type: String,
75
+ bound_entity:
76
+ T.nilable(
77
+ VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity
78
+ )
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+
85
+ class BoundEntity < VitableConnect::Internal::Type::BaseModel
86
+ OrHash =
87
+ T.type_alias do
88
+ T.any(
89
+ VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity,
90
+ VitableConnect::Internal::AnyHash
91
+ )
92
+ end
93
+
94
+ # Prefixed entity ID the token is bound to (empr*\* or empl*\*)
95
+ sig { returns(String) }
96
+ attr_accessor :id
97
+
98
+ # - `employer` - employer
99
+ # - `employee` - employee
100
+ sig { returns(VitableConnect::Type::TaggedSymbol) }
101
+ attr_accessor :type
102
+
103
+ # Entity the token is bound to, if any
104
+ sig do
105
+ params(id: String, type: VitableConnect::Type::OrSymbol).returns(
106
+ T.attached_class
107
+ )
108
+ end
109
+ def self.new(
110
+ # Prefixed entity ID the token is bound to (empr*\* or empl*\*)
111
+ id:,
112
+ # - `employer` - employer
113
+ # - `employee` - employee
114
+ type:
115
+ )
116
+ end
117
+
118
+ sig do
119
+ override.returns(
120
+ { id: String, type: VitableConnect::Type::TaggedSymbol }
121
+ )
122
+ end
123
+ def to_hash
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,74 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class BenefitEligibilityPolicy < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::BenefitEligibilityPolicy,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T::Boolean) }
15
+ attr_accessor :active
16
+
17
+ sig { returns(Time) }
18
+ attr_accessor :created_at
19
+
20
+ sig { returns(Time) }
21
+ attr_accessor :updated_at
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :id
25
+
26
+ sig { returns(String) }
27
+ attr_accessor :classification
28
+
29
+ sig { returns(String) }
30
+ attr_accessor :employer_id
31
+
32
+ sig { returns(String) }
33
+ attr_accessor :waiting_period
34
+
35
+ sig do
36
+ params(
37
+ id: String,
38
+ active: T::Boolean,
39
+ classification: String,
40
+ created_at: Time,
41
+ employer_id: String,
42
+ updated_at: Time,
43
+ waiting_period: String
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ id:,
48
+ active:,
49
+ classification:,
50
+ created_at:,
51
+ employer_id:,
52
+ updated_at:,
53
+ waiting_period:
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ id: String,
61
+ active: T::Boolean,
62
+ classification: String,
63
+ created_at: Time,
64
+ employer_id: String,
65
+ updated_at: Time,
66
+ waiting_period: String
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class BenefitEligibilityPolicyResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::BenefitEligibilityPolicyResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(VitableConnect::BenefitEligibilityPolicy) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: VitableConnect::BenefitEligibilityPolicy::OrHash).void
19
+ end
20
+ attr_writer :data
21
+
22
+ # Response containing a single benefit eligibility policy resource.
23
+ sig do
24
+ params(data: VitableConnect::BenefitEligibilityPolicy::OrHash).returns(
25
+ T.attached_class
26
+ )
27
+ end
28
+ def self.new(data:)
29
+ end
30
+
31
+ sig do
32
+ override.returns({ data: VitableConnect::BenefitEligibilityPolicy })
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class BenefitEligibilityPolicyRetrieveParams < 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::BenefitEligibilityPolicyRetrieveParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique benefit eligibility policy identifier (epol\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :policy_id
20
+
21
+ sig do
22
+ params(
23
+ policy_id: String,
24
+ request_options: VitableConnect::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # Unique benefit eligibility policy identifier (epol\_\*)
29
+ policy_id:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { policy_id: String, request_options: VitableConnect::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,316 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class Employee < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(VitableConnect::Employee, VitableConnect::Internal::AnyHash)
9
+ end
10
+
11
+ # Timestamp when the employee was created
12
+ sig { returns(Time) }
13
+ attr_accessor :created_at
14
+
15
+ # Date of birth (YYYY-MM-DD)
16
+ sig { returns(Date) }
17
+ attr_accessor :date_of_birth
18
+
19
+ # Email address
20
+ sig { returns(String) }
21
+ attr_accessor :email
22
+
23
+ # Benefit enrollments for this employee
24
+ sig { returns(T::Array[VitableConnect::Employee::Enrollment]) }
25
+ attr_accessor :enrollments
26
+
27
+ # Employee's legal first name
28
+ sig { returns(String) }
29
+ attr_accessor :first_name
30
+
31
+ # Employee's legal last name
32
+ sig { returns(String) }
33
+ attr_accessor :last_name
34
+
35
+ # Timestamp when the employee was last updated
36
+ sig { returns(Time) }
37
+ attr_accessor :updated_at
38
+
39
+ # Employee's residential address
40
+ sig { returns(T.nilable(VitableConnect::Employee::Address)) }
41
+ attr_reader :address
42
+
43
+ sig do
44
+ params(
45
+ address: T.nilable(VitableConnect::Employee::Address::OrHash)
46
+ ).void
47
+ end
48
+ attr_writer :address
49
+
50
+ # - `Full Time` - Full Time
51
+ # - `Part Time` - Part Time
52
+ # - `Temporary` - Temporary
53
+ # - `Intern` - Intern
54
+ # - `Seasonal` - Seasonal
55
+ # - `Individual Contractor` - Individual Contractor
56
+ sig { returns(T.nilable(VitableConnect::EmployeeClass::TaggedSymbol)) }
57
+ attr_accessor :employee_class
58
+
59
+ # Gender identity, if provided
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :gender
62
+
63
+ # Employee's hire date with the employer
64
+ sig { returns(T.nilable(Date)) }
65
+ attr_accessor :hire_date
66
+
67
+ # Phone number (10-digit US domestic string)
68
+ sig { returns(T.nilable(String)) }
69
+ attr_accessor :phone
70
+
71
+ # Partner-assigned reference ID for the employee
72
+ sig { returns(T.nilable(String)) }
73
+ attr_accessor :reference_id
74
+
75
+ # Name suffix (e.g., Jr., Sr., III)
76
+ sig { returns(T.nilable(String)) }
77
+ attr_accessor :suffix
78
+
79
+ # Employee's termination date, if terminated
80
+ sig { returns(T.nilable(Date)) }
81
+ attr_accessor :termination_date
82
+
83
+ # Unique employee identifier with 'empl\_' prefix
84
+ sig { returns(String) }
85
+ attr_accessor :id
86
+
87
+ # Unique member identifier with 'mbr\_' prefix
88
+ sig { returns(String) }
89
+ attr_accessor :member_id
90
+
91
+ # Employee status (active or terminated)
92
+ sig { returns(String) }
93
+ attr_accessor :status
94
+
95
+ sig do
96
+ params(
97
+ id: String,
98
+ created_at: Time,
99
+ date_of_birth: Date,
100
+ email: String,
101
+ enrollments: T::Array[VitableConnect::Employee::Enrollment::OrHash],
102
+ first_name: String,
103
+ last_name: String,
104
+ member_id: String,
105
+ status: String,
106
+ updated_at: Time,
107
+ address: T.nilable(VitableConnect::Employee::Address::OrHash),
108
+ employee_class: T.nilable(VitableConnect::EmployeeClass::OrSymbol),
109
+ gender: T.nilable(String),
110
+ hire_date: T.nilable(Date),
111
+ phone: T.nilable(String),
112
+ reference_id: T.nilable(String),
113
+ suffix: T.nilable(String),
114
+ termination_date: T.nilable(Date)
115
+ ).returns(T.attached_class)
116
+ end
117
+ def self.new(
118
+ # Unique employee identifier with 'empl\_' prefix
119
+ id:,
120
+ # Timestamp when the employee was created
121
+ created_at:,
122
+ # Date of birth (YYYY-MM-DD)
123
+ date_of_birth:,
124
+ # Email address
125
+ email:,
126
+ # Benefit enrollments for this employee
127
+ enrollments:,
128
+ # Employee's legal first name
129
+ first_name:,
130
+ # Employee's legal last name
131
+ last_name:,
132
+ # Unique member identifier with 'mbr\_' prefix
133
+ member_id:,
134
+ # Employee status (active or terminated)
135
+ status:,
136
+ # Timestamp when the employee was last updated
137
+ updated_at:,
138
+ # Employee's residential address
139
+ address: nil,
140
+ # - `Full Time` - Full Time
141
+ # - `Part Time` - Part Time
142
+ # - `Temporary` - Temporary
143
+ # - `Intern` - Intern
144
+ # - `Seasonal` - Seasonal
145
+ # - `Individual Contractor` - Individual Contractor
146
+ employee_class: nil,
147
+ # Gender identity, if provided
148
+ gender: nil,
149
+ # Employee's hire date with the employer
150
+ hire_date: nil,
151
+ # Phone number (10-digit US domestic string)
152
+ phone: nil,
153
+ # Partner-assigned reference ID for the employee
154
+ reference_id: nil,
155
+ # Name suffix (e.g., Jr., Sr., III)
156
+ suffix: nil,
157
+ # Employee's termination date, if terminated
158
+ termination_date: nil
159
+ )
160
+ end
161
+
162
+ sig do
163
+ override.returns(
164
+ {
165
+ id: String,
166
+ created_at: Time,
167
+ date_of_birth: Date,
168
+ email: String,
169
+ enrollments: T::Array[VitableConnect::Employee::Enrollment],
170
+ first_name: String,
171
+ last_name: String,
172
+ member_id: String,
173
+ status: String,
174
+ updated_at: Time,
175
+ address: T.nilable(VitableConnect::Employee::Address),
176
+ employee_class:
177
+ T.nilable(VitableConnect::EmployeeClass::TaggedSymbol),
178
+ gender: T.nilable(String),
179
+ hire_date: T.nilable(Date),
180
+ phone: T.nilable(String),
181
+ reference_id: T.nilable(String),
182
+ suffix: T.nilable(String),
183
+ termination_date: T.nilable(Date)
184
+ }
185
+ )
186
+ end
187
+ def to_hash
188
+ end
189
+
190
+ class Enrollment < VitableConnect::Internal::Type::BaseModel
191
+ OrHash =
192
+ T.type_alias do
193
+ T.any(
194
+ VitableConnect::Employee::Enrollment,
195
+ VitableConnect::Internal::AnyHash
196
+ )
197
+ end
198
+
199
+ # - `pending` - Pending
200
+ # - `enrolled` - Enrolled
201
+ # - `waived` - Waived
202
+ # - `inactive` - Inactive
203
+ sig { returns(VitableConnect::EnrollmentStatus::TaggedSymbol) }
204
+ attr_accessor :status
205
+
206
+ # Timestamp when the enrollment decision was made
207
+ sig { returns(T.nilable(Time)) }
208
+ attr_accessor :answered_at
209
+
210
+ # Unique enrollment identifier with 'enrl\_' prefix
211
+ sig { returns(String) }
212
+ attr_accessor :id
213
+
214
+ sig do
215
+ params(
216
+ id: String,
217
+ status: VitableConnect::EnrollmentStatus::OrSymbol,
218
+ answered_at: T.nilable(Time)
219
+ ).returns(T.attached_class)
220
+ end
221
+ def self.new(
222
+ # Unique enrollment identifier with 'enrl\_' prefix
223
+ id:,
224
+ # - `pending` - Pending
225
+ # - `enrolled` - Enrolled
226
+ # - `waived` - Waived
227
+ # - `inactive` - Inactive
228
+ status:,
229
+ # Timestamp when the enrollment decision was made
230
+ answered_at: nil
231
+ )
232
+ end
233
+
234
+ sig do
235
+ override.returns(
236
+ {
237
+ id: String,
238
+ status: VitableConnect::EnrollmentStatus::TaggedSymbol,
239
+ answered_at: T.nilable(Time)
240
+ }
241
+ )
242
+ end
243
+ def to_hash
244
+ end
245
+ end
246
+
247
+ class Address < VitableConnect::Internal::Type::BaseModel
248
+ OrHash =
249
+ T.type_alias do
250
+ T.any(
251
+ VitableConnect::Employee::Address,
252
+ VitableConnect::Internal::AnyHash
253
+ )
254
+ end
255
+
256
+ # Primary street address
257
+ sig { returns(String) }
258
+ attr_accessor :address_line_1
259
+
260
+ # City name
261
+ sig { returns(String) }
262
+ attr_accessor :city
263
+
264
+ # Two-letter state code (e.g., CA, NY)
265
+ sig { returns(String) }
266
+ attr_accessor :state
267
+
268
+ # ZIP code (5 or 9 digit)
269
+ sig { returns(String) }
270
+ attr_accessor :zipcode
271
+
272
+ # Secondary street address (apt, suite, etc.)
273
+ sig { returns(T.nilable(String)) }
274
+ attr_accessor :address_line_2
275
+
276
+ # Employee's residential address
277
+ sig do
278
+ params(
279
+ address_line_1: String,
280
+ city: String,
281
+ state: String,
282
+ zipcode: String,
283
+ address_line_2: T.nilable(String)
284
+ ).returns(T.attached_class)
285
+ end
286
+ def self.new(
287
+ # Primary street address
288
+ address_line_1:,
289
+ # City name
290
+ city:,
291
+ # Two-letter state code (e.g., CA, NY)
292
+ state:,
293
+ # ZIP code (5 or 9 digit)
294
+ zipcode:,
295
+ # Secondary street address (apt, suite, etc.)
296
+ address_line_2: nil
297
+ )
298
+ end
299
+
300
+ sig do
301
+ override.returns(
302
+ {
303
+ address_line_1: String,
304
+ city: String,
305
+ state: String,
306
+ zipcode: String,
307
+ address_line_2: T.nilable(String)
308
+ }
309
+ )
310
+ end
311
+ def to_hash
312
+ end
313
+ end
314
+ end
315
+ end
316
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # - `Full Time` - Full Time
6
+ # - `Part Time` - Part Time
7
+ # - `Temporary` - Temporary
8
+ # - `Intern` - Intern
9
+ # - `Seasonal` - Seasonal
10
+ # - `Individual Contractor` - Individual Contractor
11
+ module EmployeeClass
12
+ extend VitableConnect::Internal::Type::Enum
13
+
14
+ TaggedSymbol =
15
+ T.type_alias { T.all(Symbol, VitableConnect::EmployeeClass) }
16
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
17
+
18
+ FULL_TIME =
19
+ T.let(:"Full Time", VitableConnect::EmployeeClass::TaggedSymbol)
20
+ PART_TIME =
21
+ T.let(:"Part Time", VitableConnect::EmployeeClass::TaggedSymbol)
22
+ TEMPORARY = T.let(:Temporary, VitableConnect::EmployeeClass::TaggedSymbol)
23
+ INTERN = T.let(:Intern, VitableConnect::EmployeeClass::TaggedSymbol)
24
+ SEASONAL = T.let(:Seasonal, VitableConnect::EmployeeClass::TaggedSymbol)
25
+ INDIVIDUAL_CONTRACTOR =
26
+ T.let(
27
+ :"Individual Contractor",
28
+ VitableConnect::EmployeeClass::TaggedSymbol
29
+ )
30
+
31
+ sig do
32
+ override.returns(T::Array[VitableConnect::EmployeeClass::TaggedSymbol])
33
+ end
34
+ def self.values
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployeeListEnrollmentsParams < 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::EmployeeListEnrollmentsParams,
13
+ VitableConnect::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique employee identifier (empl\_\*)
18
+ sig { returns(String) }
19
+ attr_accessor :employee_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
+ employee_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 employee identifier (empl\_\*)
45
+ employee_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
+ employee_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