vitable-connect 0.3.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +9 -9
- data/lib/vitable_connect/client.rb +23 -1
- data/lib/vitable_connect/internal/transport/base_client.rb +2 -0
- data/lib/vitable_connect/models/employee.rb +1 -45
- data/lib/vitable_connect/models/employer_update_settings_params.rb +52 -0
- data/lib/vitable_connect/models/employer_update_settings_response.rb +56 -0
- data/lib/vitable_connect/models/group.rb +46 -0
- data/lib/vitable_connect/models/group_create_params.rb +26 -0
- data/lib/vitable_connect/models/group_list_params.rb +30 -0
- data/lib/vitable_connect/models/group_response.rb +18 -0
- data/lib/vitable_connect/models/group_retrieve_params.rb +22 -0
- data/lib/vitable_connect/models/group_update_params.rb +36 -0
- data/lib/vitable_connect/models/groups/members/sync_retrieve_params.rb +33 -0
- data/lib/vitable_connect/models/groups/members/sync_retrieve_response.rb +57 -0
- data/lib/vitable_connect/models/groups/members/sync_submit_params.rb +121 -0
- data/lib/vitable_connect/models/groups/members/sync_submit_response.rb +45 -0
- data/lib/vitable_connect/models/plan_list_params.rb +30 -0
- data/lib/vitable_connect/models/plan_list_response.rb +22 -0
- data/lib/vitable_connect/models.rb +18 -0
- data/lib/vitable_connect/resources/employers.rb +28 -0
- data/lib/vitable_connect/resources/groups/members/sync.rb +74 -0
- data/lib/vitable_connect/resources/groups/members.rb +20 -0
- data/lib/vitable_connect/resources/groups.rb +114 -0
- data/lib/vitable_connect/resources/plans.rb +41 -0
- data/lib/vitable_connect/version.rb +1 -1
- data/lib/vitable_connect.rb +18 -0
- data/rbi/vitable_connect/client.rbi +6 -0
- data/rbi/vitable_connect/models/employee.rbi +0 -65
- data/rbi/vitable_connect/models/employer_update_settings_params.rbi +114 -0
- data/rbi/vitable_connect/models/employer_update_settings_response.rbi +147 -0
- data/rbi/vitable_connect/models/group.rbi +65 -0
- data/rbi/vitable_connect/models/group_create_params.rbi +46 -0
- data/rbi/vitable_connect/models/group_list_params.rbi +60 -0
- data/rbi/vitable_connect/models/group_response.rbi +32 -0
- data/rbi/vitable_connect/models/group_retrieve_params.rbi +43 -0
- data/rbi/vitable_connect/models/group_update_params.rbi +58 -0
- data/rbi/vitable_connect/models/groups/members/sync_retrieve_params.rbi +56 -0
- data/rbi/vitable_connect/models/groups/members/sync_retrieve_response.rbi +112 -0
- data/rbi/vitable_connect/models/groups/members/sync_submit_params.rbi +214 -0
- data/rbi/vitable_connect/models/groups/members/sync_submit_response.rbi +92 -0
- data/rbi/vitable_connect/models/plan_list_params.rbi +60 -0
- data/rbi/vitable_connect/models/plan_list_response.rbi +29 -0
- data/rbi/vitable_connect/models.rbi +19 -0
- data/rbi/vitable_connect/resources/employers.rbi +22 -0
- data/rbi/vitable_connect/resources/groups/members/sync.rbi +62 -0
- data/rbi/vitable_connect/resources/groups/members.rbi +17 -0
- data/rbi/vitable_connect/resources/groups.rbi +79 -0
- data/rbi/vitable_connect/resources/plans.rbi +34 -0
- data/sig/vitable_connect/client.rbs +4 -0
- data/sig/vitable_connect/models/employee.rbs +0 -32
- data/sig/vitable_connect/models/employer_update_settings_params.rbs +44 -0
- data/sig/vitable_connect/models/employer_update_settings_response.rbs +48 -0
- data/sig/vitable_connect/models/group.rbs +45 -0
- data/sig/vitable_connect/models/group_create_params.rbs +28 -0
- data/sig/vitable_connect/models/group_list_params.rbs +32 -0
- data/sig/vitable_connect/models/group_response.rbs +13 -0
- data/sig/vitable_connect/models/group_retrieve_params.rbs +23 -0
- data/sig/vitable_connect/models/group_update_params.rbs +32 -0
- data/sig/vitable_connect/models/groups/members/sync_retrieve_params.rbs +32 -0
- data/sig/vitable_connect/models/groups/members/sync_retrieve_response.rbs +61 -0
- data/sig/vitable_connect/models/groups/members/sync_submit_params.rbs +124 -0
- data/sig/vitable_connect/models/groups/members/sync_submit_response.rbs +47 -0
- data/sig/vitable_connect/models/plan_list_params.rbs +32 -0
- data/sig/vitable_connect/models/plan_list_response.rbs +15 -0
- data/sig/vitable_connect/models.rbs +18 -0
- data/sig/vitable_connect/resources/employers.rbs +6 -0
- data/sig/vitable_connect/resources/groups/members/sync.rbs +23 -0
- data/sig/vitable_connect/resources/groups/members.rbs +11 -0
- data/sig/vitable_connect/resources/groups.rbs +33 -0
- data/sig/vitable_connect/resources/plans.rbs +13 -0
- metadata +56 -2
|
@@ -0,0 +1,121 @@
|
|
|
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#submit
|
|
8
|
+
class SyncSubmitParams < 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 members
|
|
19
|
+
#
|
|
20
|
+
# @return [Array<VitableConnect::Models::Groups::Members::SyncSubmitParams::Member>]
|
|
21
|
+
required :members,
|
|
22
|
+
-> { VitableConnect::Internal::Type::ArrayOf[VitableConnect::Groups::Members::SyncSubmitParams::Member] }
|
|
23
|
+
|
|
24
|
+
# @!method initialize(group_id:, members:, request_options: {})
|
|
25
|
+
# @param group_id [String] Unique group identifier (grp\_\*)
|
|
26
|
+
#
|
|
27
|
+
# @param members [Array<VitableConnect::Models::Groups::Members::SyncSubmitParams::Member>]
|
|
28
|
+
#
|
|
29
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}]
|
|
30
|
+
|
|
31
|
+
class Member < VitableConnect::Internal::Type::BaseModel
|
|
32
|
+
# @!attribute address
|
|
33
|
+
#
|
|
34
|
+
# @return [VitableConnect::Models::Groups::Members::SyncSubmitParams::Member::Address]
|
|
35
|
+
required :address, -> { VitableConnect::Groups::Members::SyncSubmitParams::Member::Address }
|
|
36
|
+
|
|
37
|
+
# @!attribute date_of_birth
|
|
38
|
+
#
|
|
39
|
+
# @return [Date]
|
|
40
|
+
required :date_of_birth, Date
|
|
41
|
+
|
|
42
|
+
# @!attribute first_name
|
|
43
|
+
#
|
|
44
|
+
# @return [String]
|
|
45
|
+
required :first_name, String
|
|
46
|
+
|
|
47
|
+
# @!attribute last_name
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
required :last_name, String
|
|
51
|
+
|
|
52
|
+
# @!attribute phone
|
|
53
|
+
#
|
|
54
|
+
# @return [String]
|
|
55
|
+
required :phone, String
|
|
56
|
+
|
|
57
|
+
# @!attribute plan_id
|
|
58
|
+
#
|
|
59
|
+
# @return [String]
|
|
60
|
+
required :plan_id, String
|
|
61
|
+
|
|
62
|
+
# @!attribute reference_id
|
|
63
|
+
#
|
|
64
|
+
# @return [String]
|
|
65
|
+
required :reference_id, String
|
|
66
|
+
|
|
67
|
+
# @!attribute email
|
|
68
|
+
#
|
|
69
|
+
# @return [String, nil]
|
|
70
|
+
optional :email, String, nil?: true
|
|
71
|
+
|
|
72
|
+
# @!method initialize(address:, date_of_birth:, first_name:, last_name:, phone:, plan_id:, reference_id:, email: nil)
|
|
73
|
+
# @param address [VitableConnect::Models::Groups::Members::SyncSubmitParams::Member::Address]
|
|
74
|
+
# @param date_of_birth [Date]
|
|
75
|
+
# @param first_name [String]
|
|
76
|
+
# @param last_name [String]
|
|
77
|
+
# @param phone [String]
|
|
78
|
+
# @param plan_id [String]
|
|
79
|
+
# @param reference_id [String]
|
|
80
|
+
# @param email [String, nil]
|
|
81
|
+
|
|
82
|
+
# @see VitableConnect::Models::Groups::Members::SyncSubmitParams::Member#address
|
|
83
|
+
class Address < VitableConnect::Internal::Type::BaseModel
|
|
84
|
+
# @!attribute address_line_1
|
|
85
|
+
#
|
|
86
|
+
# @return [String]
|
|
87
|
+
required :address_line_1, String
|
|
88
|
+
|
|
89
|
+
# @!attribute city
|
|
90
|
+
#
|
|
91
|
+
# @return [String]
|
|
92
|
+
required :city, String
|
|
93
|
+
|
|
94
|
+
# @!attribute state
|
|
95
|
+
#
|
|
96
|
+
# @return [String]
|
|
97
|
+
required :state, String
|
|
98
|
+
|
|
99
|
+
# @!attribute zipcode
|
|
100
|
+
#
|
|
101
|
+
# @return [String]
|
|
102
|
+
required :zipcode, String
|
|
103
|
+
|
|
104
|
+
# @!attribute address_line_2
|
|
105
|
+
#
|
|
106
|
+
# @return [String, nil]
|
|
107
|
+
optional :address_line_2, String, nil?: true
|
|
108
|
+
|
|
109
|
+
# @!method initialize(address_line_1:, city:, state:, zipcode:, address_line_2: nil)
|
|
110
|
+
# @param address_line_1 [String]
|
|
111
|
+
# @param city [String]
|
|
112
|
+
# @param state [String]
|
|
113
|
+
# @param zipcode [String]
|
|
114
|
+
# @param address_line_2 [String, nil]
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
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#submit
|
|
8
|
+
class SyncSubmitResponse < VitableConnect::Internal::Type::BaseModel
|
|
9
|
+
# @!attribute data
|
|
10
|
+
#
|
|
11
|
+
# @return [VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data]
|
|
12
|
+
required :data, -> { VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data }
|
|
13
|
+
|
|
14
|
+
# @!method initialize(data:)
|
|
15
|
+
# Response containing a single group member sync detail resource.
|
|
16
|
+
#
|
|
17
|
+
# @param data [VitableConnect::Models::Groups::Members::SyncSubmitResponse::Data]
|
|
18
|
+
|
|
19
|
+
# @see VitableConnect::Models::Groups::Members::SyncSubmitResponse#data
|
|
20
|
+
class Data < VitableConnect::Internal::Type::BaseModel
|
|
21
|
+
# @!attribute accepted_at
|
|
22
|
+
#
|
|
23
|
+
# @return [Time]
|
|
24
|
+
required :accepted_at, Time
|
|
25
|
+
|
|
26
|
+
# @!attribute group_id
|
|
27
|
+
#
|
|
28
|
+
# @return [String]
|
|
29
|
+
required :group_id, String
|
|
30
|
+
|
|
31
|
+
# @!attribute request_id
|
|
32
|
+
#
|
|
33
|
+
# @return [String]
|
|
34
|
+
required :request_id, String
|
|
35
|
+
|
|
36
|
+
# @!method initialize(accepted_at:, group_id:, request_id:)
|
|
37
|
+
# @param accepted_at [Time]
|
|
38
|
+
# @param group_id [String]
|
|
39
|
+
# @param request_id [String]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Models
|
|
5
|
+
# @see VitableConnect::Resources::Plans#list
|
|
6
|
+
class PlanListParams < 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,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Models
|
|
5
|
+
# @see VitableConnect::Resources::Plans#list
|
|
6
|
+
class PlanListResponse < VitableConnect::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute id
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
required :id, String
|
|
11
|
+
|
|
12
|
+
# @!attribute name
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :name, String
|
|
16
|
+
|
|
17
|
+
# @!method initialize(id:, name:)
|
|
18
|
+
# @param id [String]
|
|
19
|
+
# @param name [String]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -75,14 +75,32 @@ module VitableConnect
|
|
|
75
75
|
|
|
76
76
|
EmployerSubmitCensusSyncParams = VitableConnect::Models::EmployerSubmitCensusSyncParams
|
|
77
77
|
|
|
78
|
+
EmployerUpdateSettingsParams = VitableConnect::Models::EmployerUpdateSettingsParams
|
|
79
|
+
|
|
78
80
|
Enrollment = VitableConnect::Models::Enrollment
|
|
79
81
|
|
|
80
82
|
EnrollmentRetrieveParams = VitableConnect::Models::EnrollmentRetrieveParams
|
|
81
83
|
|
|
82
84
|
EnrollmentStatus = VitableConnect::Models::EnrollmentStatus
|
|
83
85
|
|
|
86
|
+
Group = VitableConnect::Models::Group
|
|
87
|
+
|
|
88
|
+
GroupCreateParams = VitableConnect::Models::GroupCreateParams
|
|
89
|
+
|
|
90
|
+
GroupListParams = VitableConnect::Models::GroupListParams
|
|
91
|
+
|
|
92
|
+
GroupResponse = VitableConnect::Models::GroupResponse
|
|
93
|
+
|
|
94
|
+
GroupRetrieveParams = VitableConnect::Models::GroupRetrieveParams
|
|
95
|
+
|
|
96
|
+
Groups = VitableConnect::Models::Groups
|
|
97
|
+
|
|
98
|
+
GroupUpdateParams = VitableConnect::Models::GroupUpdateParams
|
|
99
|
+
|
|
84
100
|
Pagination = VitableConnect::Models::Pagination
|
|
85
101
|
|
|
102
|
+
PlanListParams = VitableConnect::Models::PlanListParams
|
|
103
|
+
|
|
86
104
|
Type = VitableConnect::Models::Type
|
|
87
105
|
|
|
88
106
|
WebhookEvent = VitableConnect::Models::WebhookEvent
|
|
@@ -175,6 +175,34 @@ module VitableConnect
|
|
|
175
175
|
)
|
|
176
176
|
end
|
|
177
177
|
|
|
178
|
+
# Some parameter documentations has been truncated, see
|
|
179
|
+
# {VitableConnect::Models::EmployerUpdateSettingsParams} for more details.
|
|
180
|
+
#
|
|
181
|
+
# Updates configuration settings for a specific employer. The employer must belong
|
|
182
|
+
# to the authenticated organization.
|
|
183
|
+
#
|
|
184
|
+
# @overload update_settings(employer_id, pay_frequency:, request_options: {})
|
|
185
|
+
#
|
|
186
|
+
# @param employer_id [String] Unique employer identifier (empr\_\*)
|
|
187
|
+
#
|
|
188
|
+
# @param pay_frequency [Symbol, VitableConnect::Models::EmployerUpdateSettingsParams::PayFrequency] - `weekly` - weekly
|
|
189
|
+
#
|
|
190
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
191
|
+
#
|
|
192
|
+
# @return [VitableConnect::Models::EmployerUpdateSettingsResponse]
|
|
193
|
+
#
|
|
194
|
+
# @see VitableConnect::Models::EmployerUpdateSettingsParams
|
|
195
|
+
def update_settings(employer_id, params)
|
|
196
|
+
parsed, options = VitableConnect::EmployerUpdateSettingsParams.dump_request(params)
|
|
197
|
+
@client.request(
|
|
198
|
+
method: :put,
|
|
199
|
+
path: ["v1/employers/%1$s/settings", employer_id],
|
|
200
|
+
body: parsed,
|
|
201
|
+
model: VitableConnect::Models::EmployerUpdateSettingsResponse,
|
|
202
|
+
options: options
|
|
203
|
+
)
|
|
204
|
+
end
|
|
205
|
+
|
|
178
206
|
# @api private
|
|
179
207
|
#
|
|
180
208
|
# @param client [VitableConnect::Client]
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Resources
|
|
5
|
+
class Groups
|
|
6
|
+
class Members
|
|
7
|
+
class Sync
|
|
8
|
+
# Retrieves a previously-submitted group member sync request by its `grpmsr_` ID.
|
|
9
|
+
# Returns the acceptance timestamp, completion timestamp (if processing has
|
|
10
|
+
# finished), and the per-member `results` once available. While processing is in
|
|
11
|
+
# flight, `completed_at` and `results` are `null`.
|
|
12
|
+
#
|
|
13
|
+
# @overload retrieve(request_id, group_id:, request_options: {})
|
|
14
|
+
#
|
|
15
|
+
# @param request_id [String]
|
|
16
|
+
#
|
|
17
|
+
# @param group_id [String] Unique group identifier (grp\_\*)
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
20
|
+
#
|
|
21
|
+
# @return [VitableConnect::Models::Groups::Members::SyncRetrieveResponse]
|
|
22
|
+
#
|
|
23
|
+
# @see VitableConnect::Models::Groups::Members::SyncRetrieveParams
|
|
24
|
+
def retrieve(request_id, params)
|
|
25
|
+
parsed, options = VitableConnect::Groups::Members::SyncRetrieveParams.dump_request(params)
|
|
26
|
+
group_id =
|
|
27
|
+
parsed.delete(:group_id) do
|
|
28
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
29
|
+
end
|
|
30
|
+
@client.request(
|
|
31
|
+
method: :get,
|
|
32
|
+
path: ["v1/groups/%1$s/members/sync/%2$s", group_id, request_id],
|
|
33
|
+
model: VitableConnect::Models::Groups::Members::SyncRetrieveResponse,
|
|
34
|
+
options: options
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Submits a member sync payload for the specified group. Members in the payload
|
|
39
|
+
# will be queued for processing asynchronously. Returns HTTP 202 with the batch ID
|
|
40
|
+
# and acceptance timestamp.
|
|
41
|
+
#
|
|
42
|
+
# @overload submit(group_id, members:, request_options: {})
|
|
43
|
+
#
|
|
44
|
+
# @param group_id [String] Unique group identifier (grp\_\*)
|
|
45
|
+
#
|
|
46
|
+
# @param members [Array<VitableConnect::Models::Groups::Members::SyncSubmitParams::Member>]
|
|
47
|
+
#
|
|
48
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
49
|
+
#
|
|
50
|
+
# @return [VitableConnect::Models::Groups::Members::SyncSubmitResponse]
|
|
51
|
+
#
|
|
52
|
+
# @see VitableConnect::Models::Groups::Members::SyncSubmitParams
|
|
53
|
+
def submit(group_id, params)
|
|
54
|
+
parsed, options = VitableConnect::Groups::Members::SyncSubmitParams.dump_request(params)
|
|
55
|
+
@client.request(
|
|
56
|
+
method: :post,
|
|
57
|
+
path: ["v1/groups/%1$s/members/sync", group_id],
|
|
58
|
+
body: parsed,
|
|
59
|
+
model: VitableConnect::Models::Groups::Members::SyncSubmitResponse,
|
|
60
|
+
options: options
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @api private
|
|
65
|
+
#
|
|
66
|
+
# @param client [VitableConnect::Client]
|
|
67
|
+
def initialize(client:)
|
|
68
|
+
@client = client
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Resources
|
|
5
|
+
class Groups
|
|
6
|
+
class Members
|
|
7
|
+
# @return [VitableConnect::Resources::Groups::Members::Sync]
|
|
8
|
+
attr_reader :sync
|
|
9
|
+
|
|
10
|
+
# @api private
|
|
11
|
+
#
|
|
12
|
+
# @param client [VitableConnect::Client]
|
|
13
|
+
def initialize(client:)
|
|
14
|
+
@client = client
|
|
15
|
+
@sync = VitableConnect::Resources::Groups::Members::Sync.new(client: client)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Resources
|
|
5
|
+
class Groups
|
|
6
|
+
# @return [VitableConnect::Resources::Groups::Members]
|
|
7
|
+
attr_reader :members
|
|
8
|
+
|
|
9
|
+
# Creates a new group scoped to the authenticated organization.
|
|
10
|
+
#
|
|
11
|
+
# @overload create(external_reference_id:, name:, request_options: {})
|
|
12
|
+
#
|
|
13
|
+
# @param external_reference_id [String]
|
|
14
|
+
# @param name [String]
|
|
15
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
16
|
+
#
|
|
17
|
+
# @return [VitableConnect::Models::GroupResponse]
|
|
18
|
+
#
|
|
19
|
+
# @see VitableConnect::Models::GroupCreateParams
|
|
20
|
+
def create(params)
|
|
21
|
+
parsed, options = VitableConnect::GroupCreateParams.dump_request(params)
|
|
22
|
+
@client.request(
|
|
23
|
+
method: :post,
|
|
24
|
+
path: "v1/groups",
|
|
25
|
+
body: parsed,
|
|
26
|
+
model: VitableConnect::GroupResponse,
|
|
27
|
+
options: options
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Retrieves a single group by its prefixed ID. Returns 404 if the group does not
|
|
32
|
+
# belong to the authenticated organization.
|
|
33
|
+
#
|
|
34
|
+
# @overload retrieve(group_id, request_options: {})
|
|
35
|
+
#
|
|
36
|
+
# @param group_id [String] Unique group identifier (grp\_\*)
|
|
37
|
+
#
|
|
38
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
39
|
+
#
|
|
40
|
+
# @return [VitableConnect::Models::GroupResponse]
|
|
41
|
+
#
|
|
42
|
+
# @see VitableConnect::Models::GroupRetrieveParams
|
|
43
|
+
def retrieve(group_id, params = {})
|
|
44
|
+
@client.request(
|
|
45
|
+
method: :get,
|
|
46
|
+
path: ["v1/groups/%1$s", group_id],
|
|
47
|
+
model: VitableConnect::GroupResponse,
|
|
48
|
+
options: params[:request_options]
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Partially updates a group's name or external reference ID. Returns 404 if the
|
|
53
|
+
# group does not belong to the authenticated organization.
|
|
54
|
+
#
|
|
55
|
+
# @overload update(group_id, external_reference_id: nil, name: nil, request_options: {})
|
|
56
|
+
#
|
|
57
|
+
# @param group_id [String] Unique group identifier (grp\_\*)
|
|
58
|
+
#
|
|
59
|
+
# @param external_reference_id [String, nil]
|
|
60
|
+
#
|
|
61
|
+
# @param name [String, nil]
|
|
62
|
+
#
|
|
63
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
64
|
+
#
|
|
65
|
+
# @return [VitableConnect::Models::GroupResponse]
|
|
66
|
+
#
|
|
67
|
+
# @see VitableConnect::Models::GroupUpdateParams
|
|
68
|
+
def update(group_id, params = {})
|
|
69
|
+
parsed, options = VitableConnect::GroupUpdateParams.dump_request(params)
|
|
70
|
+
@client.request(
|
|
71
|
+
method: :patch,
|
|
72
|
+
path: ["v1/groups/%1$s", group_id],
|
|
73
|
+
body: parsed,
|
|
74
|
+
model: VitableConnect::GroupResponse,
|
|
75
|
+
options: options
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Returns a paginated list of groups belonging to the authenticated organization.
|
|
80
|
+
#
|
|
81
|
+
# @overload list(limit: nil, page: nil, request_options: {})
|
|
82
|
+
#
|
|
83
|
+
# @param limit [Integer] Items per page (default: 20, max: 100)
|
|
84
|
+
#
|
|
85
|
+
# @param page [Integer] Page number (default: 1)
|
|
86
|
+
#
|
|
87
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
88
|
+
#
|
|
89
|
+
# @return [VitableConnect::Internal::PageNumberPage<VitableConnect::Models::Group>]
|
|
90
|
+
#
|
|
91
|
+
# @see VitableConnect::Models::GroupListParams
|
|
92
|
+
def list(params = {})
|
|
93
|
+
parsed, options = VitableConnect::GroupListParams.dump_request(params)
|
|
94
|
+
query = VitableConnect::Internal::Util.encode_query_params(parsed)
|
|
95
|
+
@client.request(
|
|
96
|
+
method: :get,
|
|
97
|
+
path: "v1/groups",
|
|
98
|
+
query: query,
|
|
99
|
+
page: VitableConnect::Internal::PageNumberPage,
|
|
100
|
+
model: VitableConnect::Group,
|
|
101
|
+
options: options
|
|
102
|
+
)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# @api private
|
|
106
|
+
#
|
|
107
|
+
# @param client [VitableConnect::Client]
|
|
108
|
+
def initialize(client:)
|
|
109
|
+
@client = client
|
|
110
|
+
@members = VitableConnect::Resources::Groups::Members.new(client: client)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module VitableConnect
|
|
4
|
+
module Resources
|
|
5
|
+
class Plans
|
|
6
|
+
# Returns a paginated list of benefit plans linked to the authenticated
|
|
7
|
+
# organization.
|
|
8
|
+
#
|
|
9
|
+
# @overload list(limit: nil, page: nil, request_options: {})
|
|
10
|
+
#
|
|
11
|
+
# @param limit [Integer] Items per page (default: 20, max: 100)
|
|
12
|
+
#
|
|
13
|
+
# @param page [Integer] Page number (default: 1)
|
|
14
|
+
#
|
|
15
|
+
# @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
16
|
+
#
|
|
17
|
+
# @return [VitableConnect::Internal::PageNumberPage<VitableConnect::Models::PlanListResponse>]
|
|
18
|
+
#
|
|
19
|
+
# @see VitableConnect::Models::PlanListParams
|
|
20
|
+
def list(params = {})
|
|
21
|
+
parsed, options = VitableConnect::PlanListParams.dump_request(params)
|
|
22
|
+
query = VitableConnect::Internal::Util.encode_query_params(parsed)
|
|
23
|
+
@client.request(
|
|
24
|
+
method: :get,
|
|
25
|
+
path: "v1/plans",
|
|
26
|
+
query: query,
|
|
27
|
+
page: VitableConnect::Internal::PageNumberPage,
|
|
28
|
+
model: VitableConnect::Models::PlanListResponse,
|
|
29
|
+
options: options
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @api private
|
|
34
|
+
#
|
|
35
|
+
# @param client [VitableConnect::Client]
|
|
36
|
+
def initialize(client:)
|
|
37
|
+
@client = client
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
data/lib/vitable_connect.rb
CHANGED
|
@@ -72,11 +72,25 @@ require_relative "vitable_connect/models/employer_response"
|
|
|
72
72
|
require_relative "vitable_connect/models/employer_retrieve_params"
|
|
73
73
|
require_relative "vitable_connect/models/employer_submit_census_sync_params"
|
|
74
74
|
require_relative "vitable_connect/models/employer_submit_census_sync_response"
|
|
75
|
+
require_relative "vitable_connect/models/employer_update_settings_params"
|
|
76
|
+
require_relative "vitable_connect/models/employer_update_settings_response"
|
|
75
77
|
require_relative "vitable_connect/models/enrollment"
|
|
76
78
|
require_relative "vitable_connect/models/enrollment_retrieve_params"
|
|
77
79
|
require_relative "vitable_connect/models/enrollment_retrieve_response"
|
|
78
80
|
require_relative "vitable_connect/models/enrollment_status"
|
|
81
|
+
require_relative "vitable_connect/models/group"
|
|
82
|
+
require_relative "vitable_connect/models/group_create_params"
|
|
83
|
+
require_relative "vitable_connect/models/group_list_params"
|
|
84
|
+
require_relative "vitable_connect/models/group_response"
|
|
85
|
+
require_relative "vitable_connect/models/group_retrieve_params"
|
|
86
|
+
require_relative "vitable_connect/models/groups/members/sync_retrieve_params"
|
|
87
|
+
require_relative "vitable_connect/models/groups/members/sync_retrieve_response"
|
|
88
|
+
require_relative "vitable_connect/models/groups/members/sync_submit_params"
|
|
89
|
+
require_relative "vitable_connect/models/groups/members/sync_submit_response"
|
|
90
|
+
require_relative "vitable_connect/models/group_update_params"
|
|
79
91
|
require_relative "vitable_connect/models/pagination"
|
|
92
|
+
require_relative "vitable_connect/models/plan_list_params"
|
|
93
|
+
require_relative "vitable_connect/models/plan_list_response"
|
|
80
94
|
require_relative "vitable_connect/models/type"
|
|
81
95
|
require_relative "vitable_connect/models/webhook_event"
|
|
82
96
|
require_relative "vitable_connect/models/webhook_event_list_deliveries_params"
|
|
@@ -90,4 +104,8 @@ require_relative "vitable_connect/resources/benefit_eligibility_policies"
|
|
|
90
104
|
require_relative "vitable_connect/resources/employees"
|
|
91
105
|
require_relative "vitable_connect/resources/employers"
|
|
92
106
|
require_relative "vitable_connect/resources/enrollments"
|
|
107
|
+
require_relative "vitable_connect/resources/groups"
|
|
108
|
+
require_relative "vitable_connect/resources/groups/members"
|
|
109
|
+
require_relative "vitable_connect/resources/groups/members/sync"
|
|
110
|
+
require_relative "vitable_connect/resources/plans"
|
|
93
111
|
require_relative "vitable_connect/resources/webhook_events"
|
|
@@ -45,6 +45,12 @@ module VitableConnect
|
|
|
45
45
|
sig { returns(VitableConnect::Resources::WebhookEvents) }
|
|
46
46
|
attr_reader :webhook_events
|
|
47
47
|
|
|
48
|
+
sig { returns(VitableConnect::Resources::Groups) }
|
|
49
|
+
attr_reader :groups
|
|
50
|
+
|
|
51
|
+
sig { returns(VitableConnect::Resources::Plans) }
|
|
52
|
+
attr_reader :plans
|
|
53
|
+
|
|
48
54
|
# @api private
|
|
49
55
|
sig { override.returns(T::Hash[String, String]) }
|
|
50
56
|
private def auth_headers
|