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,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class Pagination < VitableConnect::Internal::Type::BaseModel
6
+ # @!attribute limit
7
+ # Items per page
8
+ #
9
+ # @return [Integer]
10
+ required :limit, Integer
11
+
12
+ # @!attribute page
13
+ # Current page number
14
+ #
15
+ # @return [Integer]
16
+ required :page, Integer
17
+
18
+ # @!attribute total
19
+ # Total number of items
20
+ #
21
+ # @return [Integer]
22
+ required :total, Integer
23
+
24
+ # @!attribute total_pages
25
+ # Total number of pages
26
+ #
27
+ # @return [Integer]
28
+ required :total_pages, Integer
29
+
30
+ # @!method initialize(limit:, page:, total:, total_pages:)
31
+ # Pagination metadata for list responses.
32
+ #
33
+ # @param limit [Integer] Items per page
34
+ #
35
+ # @param page [Integer] Current page number
36
+ #
37
+ # @param total [Integer] Total number of items
38
+ #
39
+ # @param total_pages [Integer] Total number of pages
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # - `employer` - employer
6
+ # - `employee` - employee
7
+ module Type
8
+ extend VitableConnect::Internal::Type::Enum
9
+
10
+ EMPLOYER = :employer
11
+ EMPLOYEE = :employee
12
+
13
+ # @!method self.values
14
+ # @return [Array<Symbol>]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#list
6
+ class WebhookEvent < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Prefixed unique identifier for this webhook event (e.g., `wevt_...`).
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # When the event occurred, in UTC.
15
+ #
16
+ # @return [Time]
17
+ required :created_at, Time
18
+
19
+ # @!attribute event_name
20
+ # The event type, formatted as `{resource}.{action}` (e.g.,
21
+ # `enrollment.accepted`).
22
+ #
23
+ # @return [String]
24
+ required :event_name, String
25
+
26
+ # @!attribute organization_id
27
+ # The organization this event belongs to.
28
+ #
29
+ # @return [String]
30
+ required :organization_id, String
31
+
32
+ # @!attribute resource_id
33
+ # Prefixed ID of the affected resource. Use this to fetch the current state from
34
+ # the API.
35
+ #
36
+ # @return [String]
37
+ required :resource_id, String
38
+
39
+ # @!attribute resource_type
40
+ # The type of resource affected (e.g., `enrollment`, `employee`).
41
+ #
42
+ # @return [String]
43
+ required :resource_type, String
44
+
45
+ # @!method initialize(id:, created_at:, event_name:, organization_id:, resource_id:, resource_type:)
46
+ # Some parameter documentations has been truncated, see
47
+ # {VitableConnect::Models::WebhookEvent} for more details.
48
+ #
49
+ # @param id [String] Prefixed unique identifier for this webhook event (e.g., `wevt_...`).
50
+ #
51
+ # @param created_at [Time] When the event occurred, in UTC.
52
+ #
53
+ # @param event_name [String] The event type, formatted as `{resource}.{action}` (e.g., `enrollment.accepted`)
54
+ #
55
+ # @param organization_id [String] The organization this event belongs to.
56
+ #
57
+ # @param resource_id [String] Prefixed ID of the affected resource. Use this to fetch the current state from t
58
+ #
59
+ # @param resource_type [String] The type of resource affected (e.g., `enrollment`, `employee`).
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#list_deliveries
6
+ class WebhookEventListDeliveriesParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute event_id
11
+ #
12
+ # @return [String]
13
+ required :event_id, String
14
+
15
+ # @!method initialize(event_id:, request_options: {})
16
+ # @param event_id [String]
17
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#list_deliveries
6
+ class WebhookEventListDeliveriesResponse < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [Array<VitableConnect::Models::WebhookEventListDeliveriesResponse::Data>]
10
+ required :data,
11
+ -> { VitableConnect::Internal::Type::ArrayOf[VitableConnect::Models::WebhookEventListDeliveriesResponse::Data] }
12
+
13
+ # @!method initialize(data:)
14
+ # @param data [Array<VitableConnect::Models::WebhookEventListDeliveriesResponse::Data>]
15
+
16
+ class Data < VitableConnect::Internal::Type::BaseModel
17
+ # @!attribute id
18
+ # Prefixed unique identifier for this delivery (e.g., `wdlv_...`).
19
+ #
20
+ # @return [String]
21
+ required :id, String
22
+
23
+ # @!attribute created_at
24
+ # When this delivery record was created, in UTC.
25
+ #
26
+ # @return [Time]
27
+ required :created_at, Time
28
+
29
+ # @!attribute delivered_at
30
+ # When the delivery was successfully received, in UTC.
31
+ #
32
+ # @return [Time, nil]
33
+ required :delivered_at, Time, nil?: true
34
+
35
+ # @!attribute failed_at
36
+ # When the delivery was marked as permanently failed, in UTC.
37
+ #
38
+ # @return [Time, nil]
39
+ required :failed_at, Time, nil?: true
40
+
41
+ # @!attribute failure_reason
42
+ # Reason for failure, if applicable.
43
+ #
44
+ # @return [String]
45
+ required :failure_reason, String
46
+
47
+ # @!attribute started_at
48
+ # When the delivery attempt started, in UTC.
49
+ #
50
+ # @return [Time, nil]
51
+ required :started_at, Time, nil?: true
52
+
53
+ # @!attribute status
54
+ # Current delivery status: Pending, In Progress, Delivered, or Failed.
55
+ #
56
+ # @return [String]
57
+ required :status, String
58
+
59
+ # @!attribute subscription_id
60
+ # The webhook subscription this delivery was sent to.
61
+ #
62
+ # @return [String]
63
+ required :subscription_id, String
64
+
65
+ # @!attribute webhook_event_id
66
+ # The webhook event this delivery belongs to.
67
+ #
68
+ # @return [String]
69
+ required :webhook_event_id, String
70
+
71
+ # @!method initialize(id:, created_at:, delivered_at:, failed_at:, failure_reason:, started_at:, status:, subscription_id:, webhook_event_id:)
72
+ # @param id [String] Prefixed unique identifier for this delivery (e.g., `wdlv_...`).
73
+ #
74
+ # @param created_at [Time] When this delivery record was created, in UTC.
75
+ #
76
+ # @param delivered_at [Time, nil] When the delivery was successfully received, in UTC.
77
+ #
78
+ # @param failed_at [Time, nil] When the delivery was marked as permanently failed, in UTC.
79
+ #
80
+ # @param failure_reason [String] Reason for failure, if applicable.
81
+ #
82
+ # @param started_at [Time, nil] When the delivery attempt started, in UTC.
83
+ #
84
+ # @param status [String] Current delivery status: Pending, In Progress, Delivered, or Failed.
85
+ #
86
+ # @param subscription_id [String] The webhook subscription this delivery was sent to.
87
+ #
88
+ # @param webhook_event_id [String] The webhook event this delivery belongs to.
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,135 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#list
6
+ class WebhookEventListParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute created_after
11
+ #
12
+ # @return [Time, nil]
13
+ optional :created_after, Time
14
+
15
+ # @!attribute created_before
16
+ #
17
+ # @return [Time, nil]
18
+ optional :created_before, Time
19
+
20
+ # @!attribute event_name
21
+ # - `enrollment.accepted` - Enrollment Accepted
22
+ # - `enrollment.terminated` - Enrollment Terminated
23
+ # - `enrollment.elected` - Enrollment Elected
24
+ # - `enrollment.granted` - Enrollment Granted
25
+ # - `enrollment.waived` - Enrollment Waived
26
+ # - `enrollment.started` - Enrollment Started
27
+ # - `employee.eligibility_granted` - Employee Eligibility Granted
28
+ # - `employee.eligibility_terminated` - Employee Eligibility Terminated
29
+ # - `employee.deactivated` - Employee Deactivated
30
+ # - `payroll_deduction.created` - Payroll Deduction Created
31
+ # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
32
+ #
33
+ # @return [Symbol, VitableConnect::Models::WebhookEventListParams::EventName, nil]
34
+ optional :event_name, enum: -> { VitableConnect::WebhookEventListParams::EventName }
35
+
36
+ # @!attribute limit
37
+ # Items per page (default: 20, max: 100)
38
+ #
39
+ # @return [Integer, nil]
40
+ optional :limit, Integer
41
+
42
+ # @!attribute page
43
+ # Page number (default: 1)
44
+ #
45
+ # @return [Integer, nil]
46
+ optional :page, Integer
47
+
48
+ # @!attribute resource_id
49
+ #
50
+ # @return [String, nil]
51
+ optional :resource_id, String
52
+
53
+ # @!attribute resource_type
54
+ # - `enrollment` - Enrollment
55
+ # - `employee` - Employee
56
+ # - `employer` - Employer
57
+ # - `dependent` - Dependent
58
+ # - `plan_year` - Plan Year
59
+ # - `payroll_deduction` - Payroll Deduction
60
+ #
61
+ # @return [Symbol, VitableConnect::Models::WebhookEventListParams::ResourceType, nil]
62
+ optional :resource_type, enum: -> { VitableConnect::WebhookEventListParams::ResourceType }
63
+
64
+ # @!method initialize(created_after: nil, created_before: nil, event_name: nil, limit: nil, page: nil, resource_id: nil, resource_type: nil, request_options: {})
65
+ # Some parameter documentations has been truncated, see
66
+ # {VitableConnect::Models::WebhookEventListParams} for more details.
67
+ #
68
+ # @param created_after [Time]
69
+ #
70
+ # @param created_before [Time]
71
+ #
72
+ # @param event_name [Symbol, VitableConnect::Models::WebhookEventListParams::EventName] - `enrollment.accepted` - Enrollment Accepted
73
+ #
74
+ # @param limit [Integer] Items per page (default: 20, max: 100)
75
+ #
76
+ # @param page [Integer] Page number (default: 1)
77
+ #
78
+ # @param resource_id [String]
79
+ #
80
+ # @param resource_type [Symbol, VitableConnect::Models::WebhookEventListParams::ResourceType] - `enrollment` - Enrollment
81
+ #
82
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
83
+
84
+ # - `enrollment.accepted` - Enrollment Accepted
85
+ # - `enrollment.terminated` - Enrollment Terminated
86
+ # - `enrollment.elected` - Enrollment Elected
87
+ # - `enrollment.granted` - Enrollment Granted
88
+ # - `enrollment.waived` - Enrollment Waived
89
+ # - `enrollment.started` - Enrollment Started
90
+ # - `employee.eligibility_granted` - Employee Eligibility Granted
91
+ # - `employee.eligibility_terminated` - Employee Eligibility Terminated
92
+ # - `employee.deactivated` - Employee Deactivated
93
+ # - `payroll_deduction.created` - Payroll Deduction Created
94
+ # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
95
+ module EventName
96
+ extend VitableConnect::Internal::Type::Enum
97
+
98
+ ENROLLMENT_ACCEPTED = :"enrollment.accepted"
99
+ ENROLLMENT_TERMINATED = :"enrollment.terminated"
100
+ ENROLLMENT_ELECTED = :"enrollment.elected"
101
+ ENROLLMENT_GRANTED = :"enrollment.granted"
102
+ ENROLLMENT_WAIVED = :"enrollment.waived"
103
+ ENROLLMENT_STARTED = :"enrollment.started"
104
+ EMPLOYEE_ELIGIBILITY_GRANTED = :"employee.eligibility_granted"
105
+ EMPLOYEE_ELIGIBILITY_TERMINATED = :"employee.eligibility_terminated"
106
+ EMPLOYEE_DEACTIVATED = :"employee.deactivated"
107
+ PAYROLL_DEDUCTION_CREATED = :"payroll_deduction.created"
108
+ EMPLOYER_ELIGIBILITY_POLICY_CREATED = :"employer.eligibility_policy_created"
109
+
110
+ # @!method self.values
111
+ # @return [Array<Symbol>]
112
+ end
113
+
114
+ # - `enrollment` - Enrollment
115
+ # - `employee` - Employee
116
+ # - `employer` - Employer
117
+ # - `dependent` - Dependent
118
+ # - `plan_year` - Plan Year
119
+ # - `payroll_deduction` - Payroll Deduction
120
+ module ResourceType
121
+ extend VitableConnect::Internal::Type::Enum
122
+
123
+ ENROLLMENT = :enrollment
124
+ EMPLOYEE = :employee
125
+ EMPLOYER = :employer
126
+ DEPENDENT = :dependent
127
+ PLAN_YEAR = :plan_year
128
+ PAYROLL_DEDUCTION = :payroll_deduction
129
+
130
+ # @!method self.values
131
+ # @return [Array<Symbol>]
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#retrieve
6
+ class WebhookEventRetrieveParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute event_id
11
+ #
12
+ # @return [String]
13
+ required :event_id, String
14
+
15
+ # @!method initialize(event_id:, request_options: {})
16
+ # @param event_id [String]
17
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::WebhookEvents#retrieve
6
+ class WebhookEventRetrieveResponse < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [VitableConnect::Models::WebhookEvent]
10
+ required :data, -> { VitableConnect::WebhookEvent }
11
+
12
+ # @!method initialize(data:)
13
+ # Response containing a single webhook event resource.
14
+ #
15
+ # @param data [VitableConnect::Models::WebhookEvent]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ [
5
+ VitableConnect::Internal::Type::BaseModel,
6
+ *VitableConnect::Internal::Type::BaseModel.subclasses
7
+ ].each do |cls|
8
+ cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, VitableConnect::Internal::AnyHash) } }
9
+ end
10
+
11
+ VitableConnect::Internal::Util.walk_namespaces(VitableConnect::Models).each do |mod|
12
+ case mod
13
+ in VitableConnect::Internal::Type::Enum | VitableConnect::Internal::Type::Union
14
+ mod.constants.each do |name|
15
+ case mod.const_get(name)
16
+ in true | false
17
+ mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
18
+ mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
19
+ in Integer
20
+ mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
21
+ mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
22
+ in Float
23
+ mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
24
+ mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
25
+ in Symbol
26
+ mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
27
+ mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
28
+ else
29
+ end
30
+ end
31
+ else
32
+ end
33
+ end
34
+
35
+ VitableConnect::Internal::Util.walk_namespaces(VitableConnect::Models)
36
+ .lazy
37
+ .grep(VitableConnect::Internal::Type::Union)
38
+ .each do |mod|
39
+ const = :Variants
40
+ next if mod.sorbet_constant_defined?(const)
41
+
42
+ mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
43
+ end
44
+
45
+ AuthIssueAccessTokenParams = VitableConnect::Models::AuthIssueAccessTokenParams
46
+
47
+ BenefitEligibilityPolicy = VitableConnect::Models::BenefitEligibilityPolicy
48
+
49
+ BenefitEligibilityPolicyResponse = VitableConnect::Models::BenefitEligibilityPolicyResponse
50
+
51
+ BenefitEligibilityPolicyRetrieveParams = VitableConnect::Models::BenefitEligibilityPolicyRetrieveParams
52
+
53
+ Employee = VitableConnect::Models::Employee
54
+
55
+ EmployeeClass = VitableConnect::Models::EmployeeClass
56
+
57
+ EmployeeListEnrollmentsParams = VitableConnect::Models::EmployeeListEnrollmentsParams
58
+
59
+ EmployeeRetrieveParams = VitableConnect::Models::EmployeeRetrieveParams
60
+
61
+ Employer = VitableConnect::Models::Employer
62
+
63
+ EmployerCreateBenefitEligibilityPolicyParams =
64
+ VitableConnect::Models::EmployerCreateBenefitEligibilityPolicyParams
65
+
66
+ EmployerCreateParams = VitableConnect::Models::EmployerCreateParams
67
+
68
+ EmployerListEmployeesParams = VitableConnect::Models::EmployerListEmployeesParams
69
+
70
+ EmployerListParams = VitableConnect::Models::EmployerListParams
71
+
72
+ EmployerResponse = VitableConnect::Models::EmployerResponse
73
+
74
+ EmployerRetrieveParams = VitableConnect::Models::EmployerRetrieveParams
75
+
76
+ EmployerSubmitCensusSyncParams = VitableConnect::Models::EmployerSubmitCensusSyncParams
77
+
78
+ Enrollment = VitableConnect::Models::Enrollment
79
+
80
+ EnrollmentRetrieveParams = VitableConnect::Models::EnrollmentRetrieveParams
81
+
82
+ EnrollmentStatus = VitableConnect::Models::EnrollmentStatus
83
+
84
+ Pagination = VitableConnect::Models::Pagination
85
+
86
+ Type = VitableConnect::Models::Type
87
+
88
+ WebhookEvent = VitableConnect::Models::WebhookEvent
89
+
90
+ WebhookEventListDeliveriesParams = VitableConnect::Models::WebhookEventListDeliveriesParams
91
+
92
+ WebhookEventListParams = VitableConnect::Models::WebhookEventListParams
93
+
94
+ WebhookEventRetrieveParams = VitableConnect::Models::WebhookEventRetrieveParams
95
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ # Specify HTTP behaviour to use for a specific request. These options supplement
5
+ # or override those provided at the client level.
6
+ #
7
+ # When making a request, you can pass an actual {RequestOptions} instance, or
8
+ # simply pass a Hash with symbol keys matching the attributes on this class.
9
+ class RequestOptions < VitableConnect::Internal::Type::BaseModel
10
+ # @api private
11
+ #
12
+ # @param opts [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
13
+ #
14
+ # @raise [ArgumentError]
15
+ def self.validate!(opts)
16
+ case opts
17
+ in VitableConnect::RequestOptions | Hash
18
+ opts.to_h.each_key do |k|
19
+ unless fields.include?(k)
20
+ raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
21
+ end
22
+ end
23
+ else
24
+ raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
25
+ end
26
+ end
27
+
28
+ # @!attribute idempotency_key
29
+ # Idempotency key to send with request and all associated retries. Will only be
30
+ # sent for write requests.
31
+ #
32
+ # @return [String, nil]
33
+ optional :idempotency_key, String
34
+
35
+ # @!attribute extra_query
36
+ # Extra query params to send with the request. These are `.merge`’d into any
37
+ # `query` given at the client level.
38
+ #
39
+ # @return [Hash{String=>Array<String>, String, nil}, nil]
40
+ optional :extra_query,
41
+ VitableConnect::Internal::Type::HashOf[VitableConnect::Internal::Type::ArrayOf[String]]
42
+
43
+ # @!attribute extra_headers
44
+ # Extra headers to send with the request. These are `.merged`’d into any
45
+ # `extra_headers` given at the client level.
46
+ #
47
+ # @return [Hash{String=>String, nil}, nil]
48
+ optional :extra_headers, VitableConnect::Internal::Type::HashOf[String, nil?: true]
49
+
50
+ # @!attribute extra_body
51
+ # Extra data to send with the request. These are deep merged into any data
52
+ # generated as part of the normal request.
53
+ #
54
+ # @return [Object, nil]
55
+ optional :extra_body, VitableConnect::Internal::Type::HashOf[VitableConnect::Internal::Type::Unknown]
56
+
57
+ # @!attribute max_retries
58
+ # Maximum number of retries to attempt after a failed initial request.
59
+ #
60
+ # @return [Integer, nil]
61
+ optional :max_retries, Integer
62
+
63
+ # @!attribute timeout
64
+ # Request timeout in seconds.
65
+ #
66
+ # @return [Float, nil]
67
+ optional :timeout, Float
68
+
69
+ # @!method initialize(values = {})
70
+ # Returns a new instance of RequestOptions.
71
+ #
72
+ # @param values [Hash{Symbol=>Object}]
73
+
74
+ define_sorbet_constant!(:OrHash) do
75
+ T.type_alias { T.any(VitableConnect::RequestOptions, VitableConnect::Internal::AnyHash) }
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ # Issue short-lived access tokens for scoped API access
6
+ class Auth
7
+ # Issues a short-lived access token from the authenticated API key. Access tokens
8
+ # can optionally be bound to a specific employer or employee for scoped access.
9
+ # Tokens expire after 15 minutes.
10
+ #
11
+ # @overload issue_access_token(grant_type:, bound_entity: nil, request_options: {})
12
+ #
13
+ # @param grant_type [Symbol, VitableConnect::Models::AuthIssueAccessTokenParams::GrantType] - `client_credentials` - client_credentials
14
+ #
15
+ # @param bound_entity [VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity, nil] Optional entity to bind the token to for scoped access
16
+ #
17
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
18
+ #
19
+ # @return [VitableConnect::Models::AuthIssueAccessTokenResponse]
20
+ #
21
+ # @see VitableConnect::Models::AuthIssueAccessTokenParams
22
+ def issue_access_token(params)
23
+ parsed, options = VitableConnect::AuthIssueAccessTokenParams.dump_request(params)
24
+ @client.request(
25
+ method: :post,
26
+ path: "v1/auth/access-tokens",
27
+ body: parsed,
28
+ model: VitableConnect::Models::AuthIssueAccessTokenResponse,
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
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ # Define rules that determine which employees qualify for benefits
6
+ class BenefitEligibilityPolicies
7
+ # Retrieves a benefit eligibility policy by ID.
8
+ #
9
+ # @overload retrieve(policy_id, request_options: {})
10
+ #
11
+ # @param policy_id [String] Unique benefit eligibility policy identifier (epol\_\*)
12
+ #
13
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
14
+ #
15
+ # @return [VitableConnect::Models::BenefitEligibilityPolicyResponse]
16
+ #
17
+ # @see VitableConnect::Models::BenefitEligibilityPolicyRetrieveParams
18
+ def retrieve(policy_id, params = {})
19
+ @client.request(
20
+ method: :get,
21
+ path: ["v1/benefit-eligibility-policies/%1$s", policy_id],
22
+ model: VitableConnect::BenefitEligibilityPolicyResponse,
23
+ options: params[:request_options]
24
+ )
25
+ end
26
+
27
+ # @api private
28
+ #
29
+ # @param client [VitableConnect::Client]
30
+ def initialize(client:)
31
+ @client = client
32
+ end
33
+ end
34
+ end
35
+ end