vitable-connect 0.2.2 → 0.4.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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +9 -9
  4. data/lib/vitable_connect/client.rb +23 -1
  5. data/lib/vitable_connect/internal/transport/base_client.rb +2 -0
  6. data/lib/vitable_connect/internal/util.rb +3 -1
  7. data/lib/vitable_connect/models/employee.rb +11 -46
  8. data/lib/vitable_connect/models/employer_update_settings_params.rb +52 -0
  9. data/lib/vitable_connect/models/employer_update_settings_response.rb +56 -0
  10. data/lib/vitable_connect/models/group.rb +46 -0
  11. data/lib/vitable_connect/models/group_create_params.rb +26 -0
  12. data/lib/vitable_connect/models/group_list_params.rb +30 -0
  13. data/lib/vitable_connect/models/group_response.rb +18 -0
  14. data/lib/vitable_connect/models/group_retrieve_params.rb +22 -0
  15. data/lib/vitable_connect/models/group_update_params.rb +36 -0
  16. data/lib/vitable_connect/models/groups/members/sync_retrieve_params.rb +33 -0
  17. data/lib/vitable_connect/models/groups/members/sync_retrieve_response.rb +57 -0
  18. data/lib/vitable_connect/models/groups/members/sync_submit_params.rb +121 -0
  19. data/lib/vitable_connect/models/groups/members/sync_submit_response.rb +45 -0
  20. data/lib/vitable_connect/models/plan_list_params.rb +30 -0
  21. data/lib/vitable_connect/models/plan_list_response.rb +22 -0
  22. data/lib/vitable_connect/models.rb +18 -0
  23. data/lib/vitable_connect/resources/employers.rb +28 -0
  24. data/lib/vitable_connect/resources/groups/members/sync.rb +74 -0
  25. data/lib/vitable_connect/resources/groups/members.rb +20 -0
  26. data/lib/vitable_connect/resources/groups.rb +114 -0
  27. data/lib/vitable_connect/resources/plans.rb +41 -0
  28. data/lib/vitable_connect/version.rb +1 -1
  29. data/lib/vitable_connect.rb +18 -0
  30. data/rbi/vitable_connect/client.rbi +6 -0
  31. data/rbi/vitable_connect/models/employee.rbi +24 -65
  32. data/rbi/vitable_connect/models/employer_update_settings_params.rbi +114 -0
  33. data/rbi/vitable_connect/models/employer_update_settings_response.rbi +147 -0
  34. data/rbi/vitable_connect/models/group.rbi +65 -0
  35. data/rbi/vitable_connect/models/group_create_params.rbi +46 -0
  36. data/rbi/vitable_connect/models/group_list_params.rbi +60 -0
  37. data/rbi/vitable_connect/models/group_response.rbi +32 -0
  38. data/rbi/vitable_connect/models/group_retrieve_params.rbi +43 -0
  39. data/rbi/vitable_connect/models/group_update_params.rbi +58 -0
  40. data/rbi/vitable_connect/models/groups/members/sync_retrieve_params.rbi +56 -0
  41. data/rbi/vitable_connect/models/groups/members/sync_retrieve_response.rbi +112 -0
  42. data/rbi/vitable_connect/models/groups/members/sync_submit_params.rbi +214 -0
  43. data/rbi/vitable_connect/models/groups/members/sync_submit_response.rbi +92 -0
  44. data/rbi/vitable_connect/models/plan_list_params.rbi +60 -0
  45. data/rbi/vitable_connect/models/plan_list_response.rbi +29 -0
  46. data/rbi/vitable_connect/models.rbi +19 -0
  47. data/rbi/vitable_connect/resources/employers.rbi +22 -0
  48. data/rbi/vitable_connect/resources/groups/members/sync.rbi +62 -0
  49. data/rbi/vitable_connect/resources/groups/members.rbi +17 -0
  50. data/rbi/vitable_connect/resources/groups.rbi +79 -0
  51. data/rbi/vitable_connect/resources/plans.rbi +34 -0
  52. data/sig/vitable_connect/client.rbs +4 -0
  53. data/sig/vitable_connect/models/employee.rbs +4 -33
  54. data/sig/vitable_connect/models/employer_update_settings_params.rbs +44 -0
  55. data/sig/vitable_connect/models/employer_update_settings_response.rbs +48 -0
  56. data/sig/vitable_connect/models/group.rbs +45 -0
  57. data/sig/vitable_connect/models/group_create_params.rbs +28 -0
  58. data/sig/vitable_connect/models/group_list_params.rbs +32 -0
  59. data/sig/vitable_connect/models/group_response.rbs +13 -0
  60. data/sig/vitable_connect/models/group_retrieve_params.rbs +23 -0
  61. data/sig/vitable_connect/models/group_update_params.rbs +32 -0
  62. data/sig/vitable_connect/models/groups/members/sync_retrieve_params.rbs +32 -0
  63. data/sig/vitable_connect/models/groups/members/sync_retrieve_response.rbs +61 -0
  64. data/sig/vitable_connect/models/groups/members/sync_submit_params.rbs +124 -0
  65. data/sig/vitable_connect/models/groups/members/sync_submit_response.rbs +47 -0
  66. data/sig/vitable_connect/models/plan_list_params.rbs +32 -0
  67. data/sig/vitable_connect/models/plan_list_response.rbs +15 -0
  68. data/sig/vitable_connect/models.rbs +18 -0
  69. data/sig/vitable_connect/resources/employers.rbs +6 -0
  70. data/sig/vitable_connect/resources/groups/members/sync.rbs +23 -0
  71. data/sig/vitable_connect/resources/groups/members.rbs +11 -0
  72. data/sig/vitable_connect/resources/groups.rbs +33 -0
  73. data/sig/vitable_connect/resources/plans.rbs +13 -0
  74. metadata +56 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c874db92236d04e2054f62fce2bb48061ec9ad7db7d8b3eab08835cd8e779db7
4
- data.tar.gz: 8abcd2ac74928945993bcc32827a5f0626d12ed55a055b9467e915ff2217d265
3
+ metadata.gz: 5b7bde326a118d6bf7e828b5656d7a171347a8f56cd6462ebd9039513c111deb
4
+ data.tar.gz: 81933369ea36e6cc106bfcf36f89a4730675a5fb213ae1ffb77dcb68b0f8c5cc
5
5
  SHA512:
6
- metadata.gz: e14ea4fb5e46fc3c761d8c7cd8d9e98dc696ef666d7067b9bb48f6bfa156813e7cf996b8f5f47b697e4cb05bf8b540a214036feeccf6c00e73fe9e4008d6fa21
7
- data.tar.gz: 45ee0bedda2dfc04e36e809324235f9de5515fabb8b4e83e994afa3aec0e7e4502bbf00b2eae538894604ba2dc3c78ab34d6feb73fbf3badd094113ca6ed306b
6
+ metadata.gz: d738d00b68acbf4f3d801da254c7aec0e490c36d36ffa3ca48ea52f9a69320e8ec7887c3365ac9706170a901642042dfd290d50c01206bf50c51e326fa033356
7
+ data.tar.gz: 1d1f53004097675d631528b82e275558fa3f01bdb51bb65b2ef4d906a41a885dc3dff8e810acc8a28bffdf32faef58b19bc9b702d35fe337ae03314bf7571179
data/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2026-05-15)
4
+
5
+ Full Changelog: [v0.3.0...v0.4.0](https://github.com/Vitable-Inc/vitable-connect-ruby/compare/v0.3.0...v0.4.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([5891ffa](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/5891ffad3ab9bd4ece9a1e2c17e66a07ff30a228))
10
+ * **api:** api update ([62eabe5](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/62eabe5767331aa848e6abaf1a229ee068fc299b))
11
+ * **api:** manual updates ([ca33b4f](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/ca33b4fd801e497a4237e7d69bf557857be075d3))
12
+ * support setting headers via env ([707a5d3](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/707a5d38e79b1e64ed132653910fec8a5a5bf125))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **client:** elide content type header on requests without body ([8427bb0](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/8427bb0aefea63b6d8b594cfcb400f8cff2c2b86))
18
+
19
+
20
+ ### Chores
21
+
22
+ * **internal:** more robust bootstrap script ([921ddac](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/921ddac9d3073aeb1fdb7292d413eedfdaf5aa4c))
23
+
24
+ ## 0.3.0 (2026-04-17)
25
+
26
+ Full Changelog: [v0.2.2...v0.3.0](https://github.com/Vitable-Inc/vitable-connect-ruby/compare/v0.2.2...v0.3.0)
27
+
28
+ ### Features
29
+
30
+ * **api:** api update ([f0f95aa](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/f0f95aad70b337a6bf9b73b671ffbeb3f082f8d2))
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * multipart encoding for file arrays ([89441e1](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/89441e17106f9dcdb74cfb1a0ec5e59a8d2030f5))
36
+
37
+ ## 0.2.2 (2026-04-03)
38
+
39
+ Full Changelog: [v0.2.1...v0.2.2](https://github.com/Vitable-Inc/vitable-connect-ruby/compare/v0.2.1...v0.2.2)
40
+
41
+ ### Bug Fixes
42
+
43
+ * align path encoding with RFC 3986 section 3.3 ([8dffaa7](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/8dffaa70c9a25f8c03eab999b3bcfb3eb0b151b8))
44
+ * variable name typo ([0c72698](https://github.com/Vitable-Inc/vitable-connect-ruby/commit/0c7269861dfb77cc7b901b63229b420122751cbb))
45
+
3
46
  ## 0.2.2 (2026-04-01)
4
47
 
5
48
  Full Changelog: [v0.2.1...v0.2.2](https://github.com/Vitable-Inc/vitable-connect-ruby/compare/v0.2.1...v0.2.2)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "vitable-connect", "~> 0.2.2"
20
+ gem "vitable-connect", "~> 0.4.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -229,25 +229,25 @@ vitable_connect.auth.issue_access_token(**params)
229
229
  Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
230
230
 
231
231
  ```ruby
232
- # :"enrollment.accepted"
233
- puts(VitableConnect::WebhookEventListParams::EventName::ENROLLMENT_ACCEPTED)
232
+ # :weekly
233
+ puts(VitableConnect::EmployerUpdateSettingsParams::PayFrequency::WEEKLY)
234
234
 
235
- # Revealed type: `T.all(VitableConnect::WebhookEventListParams::EventName, Symbol)`
236
- T.reveal_type(VitableConnect::WebhookEventListParams::EventName::ENROLLMENT_ACCEPTED)
235
+ # Revealed type: `T.all(VitableConnect::EmployerUpdateSettingsParams::PayFrequency, Symbol)`
236
+ T.reveal_type(VitableConnect::EmployerUpdateSettingsParams::PayFrequency::WEEKLY)
237
237
  ```
238
238
 
239
239
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
240
240
 
241
241
  ```ruby
242
242
  # Using the enum constants preserves the tagged type information:
243
- vitable_connect.webhook_events.list(
244
- event_name: VitableConnect::WebhookEventListParams::EventName::ENROLLMENT_ACCEPTED,
243
+ vitable_connect.employers.update_settings(
244
+ pay_frequency: VitableConnect::EmployerUpdateSettingsParams::PayFrequency::WEEKLY,
245
245
  # …
246
246
  )
247
247
 
248
248
  # Literal values are also permissible:
249
- vitable_connect.webhook_events.list(
250
- event_name: :"enrollment.accepted",
249
+ vitable_connect.employers.update_settings(
250
+ pay_frequency: :weekly,
251
251
  # …
252
252
  )
253
253
  ```
@@ -47,6 +47,12 @@ module VitableConnect
47
47
  # @return [VitableConnect::Resources::WebhookEvents]
48
48
  attr_reader :webhook_events
49
49
 
50
+ # @return [VitableConnect::Resources::Groups]
51
+ attr_reader :groups
52
+
53
+ # @return [VitableConnect::Resources::Plans]
54
+ attr_reader :plans
55
+
50
56
  # @api private
51
57
  #
52
58
  # @return [Hash{String=>String}]
@@ -97,6 +103,19 @@ module VitableConnect
97
103
  raise ArgumentError.new("api_key is required, and can be set via environ: \"VITABLE_CONNECT_API_KEY\"")
98
104
  end
99
105
 
106
+ headers = {}
107
+ custom_headers_env = ENV["VITABLE_CONNECT_CUSTOM_HEADERS"]
108
+ unless custom_headers_env.nil?
109
+ parsed = {}
110
+ custom_headers_env.split("\n").each do |line|
111
+ colon = line.index(":")
112
+ unless colon.nil?
113
+ parsed[line[0...colon].strip] = line[(colon + 1)..].strip
114
+ end
115
+ end
116
+ headers = parsed.merge(headers)
117
+ end
118
+
100
119
  @api_key = api_key.to_s
101
120
 
102
121
  super(
@@ -104,7 +123,8 @@ module VitableConnect
104
123
  timeout: timeout,
105
124
  max_retries: max_retries,
106
125
  initial_retry_delay: initial_retry_delay,
107
- max_retry_delay: max_retry_delay
126
+ max_retry_delay: max_retry_delay,
127
+ headers: headers
108
128
  )
109
129
 
110
130
  @auth = VitableConnect::Resources::Auth.new(client: self)
@@ -113,6 +133,8 @@ module VitableConnect
113
133
  @employers = VitableConnect::Resources::Employers.new(client: self)
114
134
  @enrollments = VitableConnect::Resources::Enrollments.new(client: self)
115
135
  @webhook_events = VitableConnect::Resources::WebhookEvents.new(client: self)
136
+ @groups = VitableConnect::Resources::Groups.new(client: self)
137
+ @plans = VitableConnect::Resources::Plans.new(client: self)
116
138
  end
117
139
  end
118
140
  end
@@ -306,6 +306,8 @@ module VitableConnect
306
306
  VitableConnect::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
+ headers.delete("content-type") if body.nil?
310
+
309
311
  url = VitableConnect::Internal::Util.join_parsed_uri(
310
312
  @base_url_components,
311
313
  {**req, path: path, query: query}
@@ -610,6 +610,7 @@ module VitableConnect
610
610
  #
611
611
  # @return [Array(String, Enumerable<String>)]
612
612
  private def encode_multipart_streaming(body)
613
+ # rubocop:disable Style/CaseEquality
613
614
  # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
614
615
  boundary = SecureRandom.urlsafe_base64(46)
615
616
 
@@ -619,7 +620,7 @@ module VitableConnect
619
620
  in Hash
620
621
  body.each do |key, val|
621
622
  case val
622
- in Array if val.all? { primitive?(_1) }
623
+ in Array if val.all? { primitive?(_1) || VitableConnect::Internal::Type::FileInput === _1 }
623
624
  val.each do |v|
624
625
  write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
625
626
  end
@@ -635,6 +636,7 @@ module VitableConnect
635
636
 
636
637
  fused_io = fused_enum(strio) { closing.each(&:call) }
637
638
  [boundary, fused_io]
639
+ # rubocop:enable Style/CaseEquality
638
640
  end
639
641
 
640
642
  # @api private
@@ -28,13 +28,6 @@ module VitableConnect
28
28
  # @return [String]
29
29
  required :email, String
30
30
 
31
- # @!attribute enrollments
32
- # Benefit enrollments for this employee
33
- #
34
- # @return [Array<VitableConnect::Models::Employee::Enrollment>]
35
- required :enrollments,
36
- -> { VitableConnect::Internal::Type::ArrayOf[VitableConnect::Employee::Enrollment] }
37
-
38
31
  # @!attribute first_name
39
32
  # Employee's legal first name
40
33
  #
@@ -126,7 +119,7 @@ module VitableConnect
126
119
  required :status, String
127
120
  end
128
121
 
129
- # @!method initialize(id:, created_at:, date_of_birth:, deductions:, email:, enrollments:, first_name:, last_name:, member_id:, status:, updated_at:, address: nil, employee_class: nil, gender: nil, hire_date: nil, phone: nil, reference_id: nil, suffix: nil, termination_date: nil)
122
+ # @!method initialize(id:, created_at:, date_of_birth:, deductions:, email:, first_name:, last_name:, member_id:, status:, updated_at:, address: nil, employee_class: nil, gender: nil, hire_date: nil, phone: nil, reference_id: nil, suffix: nil, termination_date: nil)
130
123
  # Some parameter documentations has been truncated, see
131
124
  # {VitableConnect::Models::Employee} for more details.
132
125
  #
@@ -140,8 +133,6 @@ module VitableConnect
140
133
  #
141
134
  # @param email [String] Email address
142
135
  #
143
- # @param enrollments [Array<VitableConnect::Models::Employee::Enrollment>] Benefit enrollments for this employee
144
- #
145
136
  # @param first_name [String] Employee's legal first name
146
137
  #
147
138
  # @param last_name [String] Employee's legal last name
@@ -188,6 +179,9 @@ module VitableConnect
188
179
  required :deduction_category, String, nil?: true
189
180
 
190
181
  # @!attribute frequency
182
+ # - `weekly` - Weekly
183
+ # - `bi_weekly` - Bi Weekly
184
+ # - `semi_monthly` - Semi Monthly
191
185
  # - `monthly` - Monthly
192
186
  #
193
187
  # @return [Symbol, VitableConnect::Models::Employee::Deduction::Frequency]
@@ -223,7 +217,7 @@ module VitableConnect
223
217
  #
224
218
  # @param deduction_category [String, nil] Deduction category (reserved for future use)
225
219
  #
226
- # @param frequency [Symbol, VitableConnect::Models::Employee::Deduction::Frequency] - `monthly` - Monthly
220
+ # @param frequency [Symbol, VitableConnect::Models::Employee::Deduction::Frequency] - `weekly` - Weekly
227
221
  #
228
222
  # @param period_end_date [Date] Period end date (YYYY-MM-DD)
229
223
  #
@@ -231,12 +225,18 @@ module VitableConnect
231
225
  #
232
226
  # @param tax_classification [Symbol, VitableConnect::Models::Employee::Deduction::TaxClassification] - `Unknown` - Unknown
233
227
 
228
+ # - `weekly` - Weekly
229
+ # - `bi_weekly` - Bi Weekly
230
+ # - `semi_monthly` - Semi Monthly
234
231
  # - `monthly` - Monthly
235
232
  #
236
233
  # @see VitableConnect::Models::Employee::Deduction#frequency
237
234
  module Frequency
238
235
  extend VitableConnect::Internal::Type::Enum
239
236
 
237
+ WEEKLY = :weekly
238
+ BI_WEEKLY = :bi_weekly
239
+ SEMI_MONTHLY = :semi_monthly
240
240
  MONTHLY = :monthly
241
241
 
242
242
  # @!method self.values
@@ -260,41 +260,6 @@ module VitableConnect
260
260
  end
261
261
  end
262
262
 
263
- class Enrollment < VitableConnect::Internal::Type::BaseModel
264
- # @!attribute status
265
- # - `pending` - Pending
266
- # - `enrolled` - Enrolled
267
- # - `waived` - Waived
268
- # - `inactive` - Inactive
269
- #
270
- # @return [Symbol, VitableConnect::Models::EnrollmentStatus]
271
- required :status, enum: -> { VitableConnect::EnrollmentStatus }
272
-
273
- # @!attribute answered_at
274
- # Timestamp when the enrollment decision was made
275
- #
276
- # @return [Time, nil]
277
- optional :answered_at, Time, nil?: true
278
-
279
- response_only do
280
- # @!attribute id
281
- # Unique enrollment identifier with 'enrl\_' prefix
282
- #
283
- # @return [String]
284
- required :id, String
285
- end
286
-
287
- # @!method initialize(id:, status:, answered_at: nil)
288
- # Some parameter documentations has been truncated, see
289
- # {VitableConnect::Models::Employee::Enrollment} for more details.
290
- #
291
- # @param id [String] Unique enrollment identifier with 'enrl\_' prefix
292
- #
293
- # @param status [Symbol, VitableConnect::Models::EnrollmentStatus] - `pending` - Pending
294
- #
295
- # @param answered_at [Time, nil] Timestamp when the enrollment decision was made
296
- end
297
-
298
263
  # @see VitableConnect::Models::Employee#address
299
264
  class Address < VitableConnect::Internal::Type::BaseModel
300
265
  # @!attribute address_line_1
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Employers#update_settings
6
+ class EmployerUpdateSettingsParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute employer_id
11
+ # Unique employer identifier (empr\_\*)
12
+ #
13
+ # @return [String]
14
+ required :employer_id, String
15
+
16
+ # @!attribute pay_frequency
17
+ # - `weekly` - weekly
18
+ # - `bi_weekly` - bi_weekly
19
+ # - `semi_monthly` - semi_monthly
20
+ # - `monthly` - monthly
21
+ #
22
+ # @return [Symbol, VitableConnect::Models::EmployerUpdateSettingsParams::PayFrequency]
23
+ required :pay_frequency, enum: -> { VitableConnect::EmployerUpdateSettingsParams::PayFrequency }
24
+
25
+ # @!method initialize(employer_id:, pay_frequency:, request_options: {})
26
+ # Some parameter documentations has been truncated, see
27
+ # {VitableConnect::Models::EmployerUpdateSettingsParams} for more details.
28
+ #
29
+ # @param employer_id [String] Unique employer identifier (empr\_\*)
30
+ #
31
+ # @param pay_frequency [Symbol, VitableConnect::Models::EmployerUpdateSettingsParams::PayFrequency] - `weekly` - weekly
32
+ #
33
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
34
+
35
+ # - `weekly` - weekly
36
+ # - `bi_weekly` - bi_weekly
37
+ # - `semi_monthly` - semi_monthly
38
+ # - `monthly` - monthly
39
+ module PayFrequency
40
+ extend VitableConnect::Internal::Type::Enum
41
+
42
+ WEEKLY = :weekly
43
+ BI_WEEKLY = :bi_weekly
44
+ SEMI_MONTHLY = :semi_monthly
45
+ MONTHLY = :monthly
46
+
47
+ # @!method self.values
48
+ # @return [Array<Symbol>]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Employers#update_settings
6
+ class EmployerUpdateSettingsResponse < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [VitableConnect::Models::EmployerUpdateSettingsResponse::Data]
10
+ required :data, -> { VitableConnect::Models::EmployerUpdateSettingsResponse::Data }
11
+
12
+ # @!method initialize(data:)
13
+ # Response containing a single employer settings resource.
14
+ #
15
+ # @param data [VitableConnect::Models::EmployerUpdateSettingsResponse::Data]
16
+
17
+ # @see VitableConnect::Models::EmployerUpdateSettingsResponse#data
18
+ class Data < VitableConnect::Internal::Type::BaseModel
19
+ # @!attribute pay_frequency
20
+ # - `weekly` - Weekly
21
+ # - `bi_weekly` - Bi-Weekly
22
+ # - `semi_monthly` - Semi-Monthly
23
+ # - `monthly` - Monthly
24
+ #
25
+ # @return [Symbol, VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency, nil]
26
+ required :pay_frequency,
27
+ enum: -> { VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency },
28
+ nil?: true
29
+
30
+ # @!method initialize(pay_frequency:)
31
+ # Some parameter documentations has been truncated, see
32
+ # {VitableConnect::Models::EmployerUpdateSettingsResponse::Data} for more details.
33
+ #
34
+ # @param pay_frequency [Symbol, VitableConnect::Models::EmployerUpdateSettingsResponse::Data::PayFrequency, nil] - `weekly` - Weekly
35
+
36
+ # - `weekly` - Weekly
37
+ # - `bi_weekly` - Bi-Weekly
38
+ # - `semi_monthly` - Semi-Monthly
39
+ # - `monthly` - Monthly
40
+ #
41
+ # @see VitableConnect::Models::EmployerUpdateSettingsResponse::Data#pay_frequency
42
+ module PayFrequency
43
+ extend VitableConnect::Internal::Type::Enum
44
+
45
+ WEEKLY = :weekly
46
+ BI_WEEKLY = :bi_weekly
47
+ SEMI_MONTHLY = :semi_monthly
48
+ MONTHLY = :monthly
49
+
50
+ # @!method self.values
51
+ # @return [Array<Symbol>]
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#list
6
+ class Group < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute created_at
13
+ #
14
+ # @return [Time, nil]
15
+ required :created_at, Time, nil?: true
16
+
17
+ # @!attribute external_reference_id
18
+ #
19
+ # @return [String]
20
+ required :external_reference_id, String
21
+
22
+ # @!attribute name
23
+ #
24
+ # @return [String]
25
+ required :name, String
26
+
27
+ # @!attribute organization_id
28
+ #
29
+ # @return [String]
30
+ required :organization_id, String
31
+
32
+ # @!attribute updated_at
33
+ #
34
+ # @return [Time, nil]
35
+ required :updated_at, Time, nil?: true
36
+
37
+ # @!method initialize(id:, created_at:, external_reference_id:, name:, organization_id:, updated_at:)
38
+ # @param id [String]
39
+ # @param created_at [Time, nil]
40
+ # @param external_reference_id [String]
41
+ # @param name [String]
42
+ # @param organization_id [String]
43
+ # @param updated_at [Time, nil]
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#create
6
+ class GroupCreateParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute external_reference_id
11
+ #
12
+ # @return [String]
13
+ required :external_reference_id, String
14
+
15
+ # @!attribute name
16
+ #
17
+ # @return [String]
18
+ required :name, String
19
+
20
+ # @!method initialize(external_reference_id:, name:, request_options: {})
21
+ # @param external_reference_id [String]
22
+ # @param name [String]
23
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#list
6
+ class GroupListParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute limit
11
+ # Items per page (default: 20, max: 100)
12
+ #
13
+ # @return [Integer, nil]
14
+ optional :limit, Integer
15
+
16
+ # @!attribute page
17
+ # Page number (default: 1)
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :page, Integer
21
+
22
+ # @!method initialize(limit: nil, page: nil, request_options: {})
23
+ # @param limit [Integer] Items per page (default: 20, max: 100)
24
+ #
25
+ # @param page [Integer] Page number (default: 1)
26
+ #
27
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#create
6
+ class GroupResponse < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [VitableConnect::Models::Group]
10
+ required :data, -> { VitableConnect::Group }
11
+
12
+ # @!method initialize(data:)
13
+ # Response containing a single group resource.
14
+ #
15
+ # @param data [VitableConnect::Models::Group]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#retrieve
6
+ class GroupRetrieveParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute group_id
11
+ # Unique group identifier (grp\_\*)
12
+ #
13
+ # @return [String]
14
+ required :group_id, String
15
+
16
+ # @!method initialize(group_id:, request_options: {})
17
+ # @param group_id [String] Unique group identifier (grp\_\*)
18
+ #
19
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Groups#update
6
+ class GroupUpdateParams < VitableConnect::Internal::Type::BaseModel
7
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
8
+ include VitableConnect::Internal::Type::RequestParameters
9
+
10
+ # @!attribute group_id
11
+ # Unique group identifier (grp\_\*)
12
+ #
13
+ # @return [String]
14
+ required :group_id, String
15
+
16
+ # @!attribute external_reference_id
17
+ #
18
+ # @return [String, nil]
19
+ optional :external_reference_id, String, nil?: true
20
+
21
+ # @!attribute name
22
+ #
23
+ # @return [String, nil]
24
+ optional :name, String, nil?: true
25
+
26
+ # @!method initialize(group_id:, external_reference_id: nil, name: nil, request_options: {})
27
+ # @param group_id [String] Unique group identifier (grp\_\*)
28
+ #
29
+ # @param external_reference_id [String, nil]
30
+ #
31
+ # @param name [String, nil]
32
+ #
33
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ module Groups
6
+ module Members
7
+ # @see VitableConnect::Resources::Groups::Members::Sync#retrieve
8
+ class SyncRetrieveParams < VitableConnect::Internal::Type::BaseModel
9
+ extend VitableConnect::Internal::Type::RequestParameters::Converter
10
+ include VitableConnect::Internal::Type::RequestParameters
11
+
12
+ # @!attribute group_id
13
+ # Unique group identifier (grp\_\*)
14
+ #
15
+ # @return [String]
16
+ required :group_id, String
17
+
18
+ # @!attribute request_id
19
+ #
20
+ # @return [String]
21
+ required :request_id, String
22
+
23
+ # @!method initialize(group_id:, request_id:, request_options: {})
24
+ # @param group_id [String] Unique group identifier (grp\_\*)
25
+ #
26
+ # @param request_id [String]
27
+ #
28
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end