@vitable-inc/vitable-connect 5.1.2 → 5.2.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 (38) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/members/client/Client.d.ts +36 -0
  3. package/dist/cjs/api/resources/members/client/Client.js +106 -0
  4. package/dist/cjs/api/resources/members/client/requests/CreateMemberDependentRequest.d.ts +74 -0
  5. package/dist/cjs/api/resources/members/client/requests/CreateMemberDependentRequest.js +3 -0
  6. package/dist/cjs/api/resources/members/client/requests/index.d.ts +1 -0
  7. package/dist/cjs/api/types/CreateMemberDependentAddressRequest.d.ts +78 -0
  8. package/dist/cjs/api/types/CreateMemberDependentAddressRequest.js +3 -0
  9. package/dist/cjs/api/types/Gender.d.ts +2 -2
  10. package/dist/cjs/api/types/Gender.js +2 -2
  11. package/dist/cjs/api/types/SavedMemberDependent.d.ts +38 -0
  12. package/dist/cjs/api/types/SavedMemberDependent.js +3 -0
  13. package/dist/cjs/api/types/SavedMemberDependentResponse.d.ts +7 -0
  14. package/dist/cjs/api/types/SavedMemberDependentResponse.js +3 -0
  15. package/dist/cjs/api/types/index.d.ts +3 -0
  16. package/dist/cjs/api/types/index.js +3 -0
  17. package/dist/cjs/version.d.ts +1 -1
  18. package/dist/cjs/version.js +1 -1
  19. package/dist/esm/BaseClient.mjs +2 -2
  20. package/dist/esm/api/resources/members/client/Client.d.mts +36 -0
  21. package/dist/esm/api/resources/members/client/Client.mjs +106 -0
  22. package/dist/esm/api/resources/members/client/requests/CreateMemberDependentRequest.d.mts +74 -0
  23. package/dist/esm/api/resources/members/client/requests/CreateMemberDependentRequest.mjs +2 -0
  24. package/dist/esm/api/resources/members/client/requests/index.d.mts +1 -0
  25. package/dist/esm/api/types/CreateMemberDependentAddressRequest.d.mts +78 -0
  26. package/dist/esm/api/types/CreateMemberDependentAddressRequest.mjs +2 -0
  27. package/dist/esm/api/types/Gender.d.mts +2 -2
  28. package/dist/esm/api/types/Gender.mjs +2 -2
  29. package/dist/esm/api/types/SavedMemberDependent.d.mts +38 -0
  30. package/dist/esm/api/types/SavedMemberDependent.mjs +2 -0
  31. package/dist/esm/api/types/SavedMemberDependentResponse.d.mts +7 -0
  32. package/dist/esm/api/types/SavedMemberDependentResponse.mjs +2 -0
  33. package/dist/esm/api/types/index.d.mts +3 -0
  34. package/dist/esm/api/types/index.mjs +3 -0
  35. package/dist/esm/version.d.mts +1 -1
  36. package/dist/esm/version.mjs +1 -1
  37. package/package.json +1 -1
  38. package/reference.md +76 -0
@@ -44,8 +44,8 @@ function normalizeClientOptions(options) {
44
44
  const headers = (0, headers_js_1.mergeHeaders)({
45
45
  "X-Fern-Language": "JavaScript",
46
46
  "X-Fern-SDK-Name": "@vitable-inc/vitable-connect",
47
- "X-Fern-SDK-Version": "5.1.2",
48
- "User-Agent": "@vitable-inc/vitable-connect/5.1.2",
47
+ "X-Fern-SDK-Version": "5.2.0",
48
+ "User-Agent": "@vitable-inc/vitable-connect/5.2.0",
49
49
  "X-Fern-Runtime": core.RUNTIME.type,
50
50
  "X-Fern-Runtime-Version": core.RUNTIME.version,
51
51
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -61,6 +61,42 @@ export declare class MembersClient {
61
61
  */
62
62
  listDependents(request: VitableConnect.ListDependentsMembersRequest, requestOptions?: MembersClient.RequestOptions): core.HttpResponsePromise<VitableConnect.MemberDependentsResponse>;
63
63
  private __listDependents;
64
+ /**
65
+ * Saves a dependent (spouse or child) for a member. Saving does not enroll the dependent or change the member's coverage or coverage tier. If the member already has an active dependent matching this person, that relationship is reused and returned with a 200 and `created: false`; otherwise a new one is created with a 201 and `created: true`. In both cases the dependent's address is set to the one supplied; other details of a person Vitable already has on file are not changed. When a new dependent is created at exactly the member's address, Vitable also adds them to the member's household where it can; this never fails the request. The returned IDs identify the saved dependent. Social Security numbers are not accepted, and a body with an `ssn` field returns a 400. The caller must have write access to the target member, and API access tokens cannot save dependents. A member not visible to the caller returns a 404 before the body is validated. Business-rule failures return a 422 with `child_over_max_age` (a child must be under 26), `duplicate_active_spouse` (the member already has a different active spouse), `same_member`, `member_creation_failed`, or `legal_dependent_creation_failed`.
66
+ *
67
+ * @param {VitableConnect.CreateMemberDependentRequest} request
68
+ * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration.
69
+ *
70
+ * @throws {@link VitableConnect.BadRequestError}
71
+ * @throws {@link VitableConnect.UnauthorizedError}
72
+ * @throws {@link VitableConnect.ForbiddenError}
73
+ * @throws {@link VitableConnect.NotFoundError}
74
+ * @throws {@link VitableConnect.ConflictError}
75
+ * @throws {@link VitableConnect.UnprocessableEntityError}
76
+ * @throws {@link VitableConnect.TooManyRequestsError}
77
+ * @throws {@link VitableConnect.InternalServerError}
78
+ * @throws {@link VitableConnect.BadGatewayError}
79
+ * @throws {@link errors.VitableConnectError}
80
+ * @throws {@link errors.VitableConnectTimeoutError}
81
+ *
82
+ * @example
83
+ * await client.members.createDependent({
84
+ * member_id: "mbr_abc123def456",
85
+ * first_name: "Sam",
86
+ * last_name: "Doe",
87
+ * date_of_birth: "2015-06-01",
88
+ * sex_at_birth: "Male",
89
+ * relationship: "Child",
90
+ * address: {
91
+ * address_line_1: "123 Main St",
92
+ * city: "Detroit",
93
+ * state: "MI",
94
+ * zipcode: "48201"
95
+ * }
96
+ * })
97
+ */
98
+ createDependent(request: VitableConnect.CreateMemberDependentRequest, requestOptions?: MembersClient.RequestOptions): core.HttpResponsePromise<VitableConnect.SavedMemberDependentResponse>;
99
+ private __createDependent;
64
100
  /**
65
101
  * Lists a member's employment across every employer — the same employee record shape as the employer's employees list, plus the employer name. For an organization caller the rows are scoped to companies in that organization's book; a member (self/household) or Vitable Admin sees all employments. A member not visible to the caller returns a 404.
66
102
  *
@@ -42,11 +42,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
43
  });
44
44
  };
45
+ var __rest = (this && this.__rest) || function (s, e) {
46
+ var t = {};
47
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
48
+ t[p] = s[p];
49
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
50
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
51
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
52
+ t[p[i]] = s[p[i]];
53
+ }
54
+ return t;
55
+ };
45
56
  Object.defineProperty(exports, "__esModule", { value: true });
46
57
  exports.MembersClient = void 0;
47
58
  const BaseClient_js_1 = require("../../../../BaseClient.js");
48
59
  const headers_js_1 = require("../../../../core/headers.js");
49
60
  const core = __importStar(require("../../../../core/index.js"));
61
+ const requestBody_js_1 = require("../../../../core/requestBody.js");
50
62
  const environments = __importStar(require("../../../../environments.js"));
51
63
  const handleNonStatusCodeError_js_1 = require("../../../../errors/handleNonStatusCodeError.js");
52
64
  const errors = __importStar(require("../../../../errors/index.js"));
@@ -209,6 +221,100 @@ class MembersClient {
209
221
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v1/members/{member_id}/dependents");
210
222
  });
211
223
  }
224
+ /**
225
+ * Saves a dependent (spouse or child) for a member. Saving does not enroll the dependent or change the member's coverage or coverage tier. If the member already has an active dependent matching this person, that relationship is reused and returned with a 200 and `created: false`; otherwise a new one is created with a 201 and `created: true`. In both cases the dependent's address is set to the one supplied; other details of a person Vitable already has on file are not changed. When a new dependent is created at exactly the member's address, Vitable also adds them to the member's household where it can; this never fails the request. The returned IDs identify the saved dependent. Social Security numbers are not accepted, and a body with an `ssn` field returns a 400. The caller must have write access to the target member, and API access tokens cannot save dependents. A member not visible to the caller returns a 404 before the body is validated. Business-rule failures return a 422 with `child_over_max_age` (a child must be under 26), `duplicate_active_spouse` (the member already has a different active spouse), `same_member`, `member_creation_failed`, or `legal_dependent_creation_failed`.
226
+ *
227
+ * @param {VitableConnect.CreateMemberDependentRequest} request
228
+ * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration.
229
+ *
230
+ * @throws {@link VitableConnect.BadRequestError}
231
+ * @throws {@link VitableConnect.UnauthorizedError}
232
+ * @throws {@link VitableConnect.ForbiddenError}
233
+ * @throws {@link VitableConnect.NotFoundError}
234
+ * @throws {@link VitableConnect.ConflictError}
235
+ * @throws {@link VitableConnect.UnprocessableEntityError}
236
+ * @throws {@link VitableConnect.TooManyRequestsError}
237
+ * @throws {@link VitableConnect.InternalServerError}
238
+ * @throws {@link VitableConnect.BadGatewayError}
239
+ * @throws {@link errors.VitableConnectError}
240
+ * @throws {@link errors.VitableConnectTimeoutError}
241
+ *
242
+ * @example
243
+ * await client.members.createDependent({
244
+ * member_id: "mbr_abc123def456",
245
+ * first_name: "Sam",
246
+ * last_name: "Doe",
247
+ * date_of_birth: "2015-06-01",
248
+ * sex_at_birth: "Male",
249
+ * relationship: "Child",
250
+ * address: {
251
+ * address_line_1: "123 Main St",
252
+ * city: "Detroit",
253
+ * state: "MI",
254
+ * zipcode: "48201"
255
+ * }
256
+ * })
257
+ */
258
+ createDependent(request, requestOptions) {
259
+ return core.HttpResponsePromise.fromPromise(this.__createDependent(request, requestOptions));
260
+ }
261
+ __createDependent(request, requestOptions) {
262
+ return __awaiter(this, void 0, void 0, function* () {
263
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
264
+ const { member_id: memberId, "X-Vitable-Organization": vitableOrganization } = request, _body = __rest(request, ["member_id", "X-Vitable-Organization"]);
265
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
266
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)({ "X-Vitable-Organization": vitableOrganization }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
267
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
268
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.VitableConnectEnvironment.Production, `v1/members/${core.url.encodePathParam(memberId)}/dependents`),
269
+ method: "POST",
270
+ headers: _headers,
271
+ contentType: "application/json",
272
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
273
+ requestType: "json",
274
+ body: (0, requestBody_js_1.mergeAdditionalBodyParameters)(_body, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.additionalBodyParameters),
275
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
276
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
277
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
278
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
279
+ logging: this._options.logging,
280
+ });
281
+ if (_response.ok) {
282
+ return {
283
+ data: _response.body,
284
+ rawResponse: _response.rawResponse,
285
+ };
286
+ }
287
+ if (_response.error.reason === "status-code") {
288
+ switch (_response.error.statusCode) {
289
+ case 400:
290
+ throw new VitableConnect.BadRequestError(_response.error.body, _response.rawResponse);
291
+ case 401:
292
+ throw new VitableConnect.UnauthorizedError(_response.error.body, _response.rawResponse);
293
+ case 403:
294
+ throw new VitableConnect.ForbiddenError(_response.error.body, _response.rawResponse);
295
+ case 404:
296
+ throw new VitableConnect.NotFoundError(_response.error.body, _response.rawResponse);
297
+ case 409:
298
+ throw new VitableConnect.ConflictError(_response.error.body, _response.rawResponse);
299
+ case 422:
300
+ throw new VitableConnect.UnprocessableEntityError(_response.error.body, _response.rawResponse);
301
+ case 429:
302
+ throw new VitableConnect.TooManyRequestsError(_response.error.body, _response.rawResponse);
303
+ case 500:
304
+ throw new VitableConnect.InternalServerError(_response.error.body, _response.rawResponse);
305
+ case 502:
306
+ throw new VitableConnect.BadGatewayError(_response.error.body, _response.rawResponse);
307
+ default:
308
+ throw new errors.VitableConnectError({
309
+ statusCode: _response.error.statusCode,
310
+ body: _response.error.body,
311
+ rawResponse: _response.rawResponse,
312
+ });
313
+ }
314
+ }
315
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "POST", "/v1/members/{member_id}/dependents");
316
+ });
317
+ }
212
318
  /**
213
319
  * Lists a member's employment across every employer — the same employee record shape as the employer's employees list, plus the employer name. For an organization caller the rows are scoped to companies in that organization's book; a member (self/household) or Vitable Admin sees all employments. A member not visible to the caller returns a 404.
214
320
  *
@@ -0,0 +1,74 @@
1
+ import type * as VitableConnect from "../../../../index.js";
2
+ /**
3
+ * @example
4
+ * {
5
+ * member_id: "mbr_abc123def456",
6
+ * first_name: "Sam",
7
+ * last_name: "Doe",
8
+ * date_of_birth: "2015-06-01",
9
+ * sex_at_birth: "Male",
10
+ * relationship: "Child",
11
+ * address: {
12
+ * address_line_1: "123 Main St",
13
+ * city: "Detroit",
14
+ * state: "MI",
15
+ * zipcode: "48201"
16
+ * }
17
+ * }
18
+ */
19
+ export interface CreateMemberDependentRequest {
20
+ /** Unique member identifier (mbr_*) */
21
+ member_id: VitableConnect.MemberId;
22
+ /** Organization to act as for this request (e.g. `org_SGVsbG8gV29ybGQ`). Optional when your credentials reach a single organization. Required when they reach several — omitting it then returns 400 `organization_required`. A malformed value returns 400 `invalid_organization_header`, and naming an organization you do not have access to returns 403 `organization_access_denied`. */
23
+ "X-Vitable-Organization"?: VitableConnect.XVitableOrganization;
24
+ /** Dependent's legal first name */
25
+ first_name: string;
26
+ /** Dependent's legal last name */
27
+ last_name: string;
28
+ /**
29
+ * Name suffix
30
+ *
31
+ * * `Sr` - Sr
32
+ * * `Jr` - Jr
33
+ * * `I` - I
34
+ * * `II` - II
35
+ * * `III` - III
36
+ * * `IV` - IV
37
+ * * `V` - V
38
+ */
39
+ suffix?: VitableConnect.NameSuffix | null;
40
+ /** Date of birth (YYYY-MM-DD); cannot be in the future */
41
+ date_of_birth: string;
42
+ /**
43
+ * Sex assigned at birth
44
+ *
45
+ * * `Male` - Male
46
+ * * `Female` - Female
47
+ * * `Other` - Other
48
+ * * `Unknown` - Unknown
49
+ */
50
+ sex_at_birth?: VitableConnect.SexAtBirth | null;
51
+ /**
52
+ * Gender identity
53
+ *
54
+ * * `Male` - Male
55
+ * * `Female` - Female
56
+ * * `Transgender` - Transgender
57
+ * * `Non-binary` - Non-binary
58
+ * * `Prefer not to respond` - Prefer not to respond
59
+ */
60
+ gender?: VitableConnect.Gender | null;
61
+ /** Dependent's email address. Ignored for dependents under 18, and not changed for a dependent Vitable already has on file. */
62
+ email?: string | null;
63
+ /** Dependent's 10-digit US phone number; formatting characters and a leading 1 are ignored. Ignored for dependents under 18, and not changed for a dependent Vitable already has on file. */
64
+ phone?: string | null;
65
+ /**
66
+ * Relationship of the dependent to the member
67
+ *
68
+ * * `Spouse` - Spouse
69
+ * * `Child` - Child
70
+ */
71
+ relationship: VitableConnect.Relationship;
72
+ /** Dependent's residential address */
73
+ address: VitableConnect.CreateMemberDependentAddressRequest;
74
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ export type { CreateMemberDependentRequest } from "./CreateMemberDependentRequest.js";
1
2
  export type { GetHouseholdMembersRequest } from "./GetHouseholdMembersRequest.js";
2
3
  export type { GetMembersRequest } from "./GetMembersRequest.js";
3
4
  export type { ListDependentsMembersRequest } from "./ListDependentsMembersRequest.js";
@@ -0,0 +1,78 @@
1
+ import type * as VitableConnect from "../index.js";
2
+ export interface CreateMemberDependentAddressRequest {
3
+ /** Primary street address */
4
+ address_line_1: string;
5
+ /** Secondary street address */
6
+ address_line_2?: (string | null) | undefined;
7
+ /** City name */
8
+ city: string;
9
+ /**
10
+ * Two-letter state code
11
+ *
12
+ * * `AL` - AL
13
+ * * `AK` - AK
14
+ * * `AZ` - AZ
15
+ * * `AR` - AR
16
+ * * `CA` - CA
17
+ * * `CO` - CO
18
+ * * `CT` - CT
19
+ * * `DC` - DC
20
+ * * `DE` - DE
21
+ * * `FL` - FL
22
+ * * `GA` - GA
23
+ * * `HI` - HI
24
+ * * `ID` - ID
25
+ * * `IL` - IL
26
+ * * `IN` - IN
27
+ * * `IA` - IA
28
+ * * `KS` - KS
29
+ * * `KY` - KY
30
+ * * `LA` - LA
31
+ * * `ME` - ME
32
+ * * `MD` - MD
33
+ * * `MA` - MA
34
+ * * `MI` - MI
35
+ * * `MN` - MN
36
+ * * `MS` - MS
37
+ * * `MO` - MO
38
+ * * `MT` - MT
39
+ * * `NE` - NE
40
+ * * `NV` - NV
41
+ * * `NH` - NH
42
+ * * `NJ` - NJ
43
+ * * `NM` - NM
44
+ * * `NY` - NY
45
+ * * `NC` - NC
46
+ * * `ND` - ND
47
+ * * `OH` - OH
48
+ * * `OK` - OK
49
+ * * `OR` - OR
50
+ * * `PA` - PA
51
+ * * `RI` - RI
52
+ * * `SC` - SC
53
+ * * `SD` - SD
54
+ * * `TN` - TN
55
+ * * `TX` - TX
56
+ * * `UT` - UT
57
+ * * `VT` - VT
58
+ * * `VA` - VA
59
+ * * `WA` - WA
60
+ * * `WI` - WI
61
+ * * `WV` - WV
62
+ * * `WY` - WY
63
+ * * `PR` - PR
64
+ * * `GU` - GU
65
+ * * `AS` - AS
66
+ * * `VI` - VI
67
+ * * `MP` - MP
68
+ * * `MH` - MH
69
+ * * `PW` - PW
70
+ * * `FM` - FM
71
+ * * `AE` - AE
72
+ * * `AA` - AA
73
+ * * `AP` - AP
74
+ */
75
+ state: VitableConnect.State;
76
+ /** ZIP code */
77
+ zipcode: string;
78
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,8 +2,8 @@
2
2
  * * `Male` - Male
3
3
  * * `Female` - Female
4
4
  * * `Transgender` - Transgender
5
- * * `Non-binary` - Non Binary
6
- * * `Prefer not to respond` - Prefer Not To Respond
5
+ * * `Non-binary` - Non-binary
6
+ * * `Prefer not to respond` - Prefer not to respond
7
7
  */
8
8
  export declare const Gender: {
9
9
  readonly Male: "Male";
@@ -6,8 +6,8 @@ exports.Gender = void 0;
6
6
  * * `Male` - Male
7
7
  * * `Female` - Female
8
8
  * * `Transgender` - Transgender
9
- * * `Non-binary` - Non Binary
10
- * * `Prefer not to respond` - Prefer Not To Respond
9
+ * * `Non-binary` - Non-binary
10
+ * * `Prefer not to respond` - Prefer not to respond
11
11
  */
12
12
  exports.Gender = {
13
13
  Male: "Male",
@@ -0,0 +1,38 @@
1
+ import type * as VitableConnect from "../index.js";
2
+ /**
3
+ * Wire serializer for :class:`MemberLegalDependentDTO` (one legal-dependent row).
4
+ */
5
+ export interface SavedMemberDependent {
6
+ /** The dependent's own member identifier with 'mbr_' prefix */
7
+ member_id?: string | undefined;
8
+ /** The primary member's identifier with 'mbr_' prefix */
9
+ primary_member_id?: string | undefined;
10
+ /** Dependent's first name */
11
+ first_name: string;
12
+ /** Dependent's last name */
13
+ last_name: string;
14
+ /**
15
+ * Relationship of the dependent to the member (e.g., Spouse, Child)
16
+ *
17
+ * * `Spouse` - Spouse
18
+ * * `Child` - Child
19
+ */
20
+ relationship: VitableConnect.Relationship;
21
+ /** Date of birth (YYYY-MM-DD) */
22
+ date_of_birth: string;
23
+ /** Dependent's age in years, derived from date of birth */
24
+ age: number;
25
+ /**
26
+ * Sex assigned at birth, if provided
27
+ *
28
+ * * `Male` - Male
29
+ * * `Female` - Female
30
+ * * `Other` - Other
31
+ * * `Unknown` - Unknown
32
+ */
33
+ sex_at_birth?: (VitableConnect.SexAtBirth | null) | undefined;
34
+ /** Identifier of the dependent relationship, with 'ldep_' prefix */
35
+ legal_dependent_id: string;
36
+ /** True when the relationship was created by this request, false when an existing one was reused */
37
+ created: boolean;
38
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import type * as VitableConnect from "../index.js";
2
+ /**
3
+ * Response containing a single saved member dependent resource.
4
+ */
5
+ export interface SavedMemberDependentResponse {
6
+ data: VitableConnect.SavedMemberDependent;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -30,6 +30,7 @@ export * from "./ContributionTier.js";
30
30
  export * from "./CoverageTier.js";
31
31
  export * from "./CreatedAfter.js";
32
32
  export * from "./CreatedBefore.js";
33
+ export * from "./CreateMemberDependentAddressRequest.js";
33
34
  export * from "./DeductionDetail.js";
34
35
  export * from "./DeductionFrequency.js";
35
36
  export * from "./DetailedAddress.js";
@@ -162,6 +163,8 @@ export * from "./RemainingEmployeeAction.js";
162
163
  export * from "./RequestId.js";
163
164
  export * from "./ResourceId.js";
164
165
  export * from "./ResourceType.js";
166
+ export * from "./SavedMemberDependent.js";
167
+ export * from "./SavedMemberDependentResponse.js";
165
168
  export * from "./Search.js";
166
169
  export * from "./SexAtBirth.js";
167
170
  export * from "./State.js";
@@ -46,6 +46,7 @@ __exportStar(require("./ContributionTier.js"), exports);
46
46
  __exportStar(require("./CoverageTier.js"), exports);
47
47
  __exportStar(require("./CreatedAfter.js"), exports);
48
48
  __exportStar(require("./CreatedBefore.js"), exports);
49
+ __exportStar(require("./CreateMemberDependentAddressRequest.js"), exports);
49
50
  __exportStar(require("./DeductionDetail.js"), exports);
50
51
  __exportStar(require("./DeductionFrequency.js"), exports);
51
52
  __exportStar(require("./DetailedAddress.js"), exports);
@@ -178,6 +179,8 @@ __exportStar(require("./RemainingEmployeeAction.js"), exports);
178
179
  __exportStar(require("./RequestId.js"), exports);
179
180
  __exportStar(require("./ResourceId.js"), exports);
180
181
  __exportStar(require("./ResourceType.js"), exports);
182
+ __exportStar(require("./SavedMemberDependent.js"), exports);
183
+ __exportStar(require("./SavedMemberDependentResponse.js"), exports);
181
184
  __exportStar(require("./Search.js"), exports);
182
185
  __exportStar(require("./SexAtBirth.js"), exports);
183
186
  __exportStar(require("./State.js"), exports);
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "5.1.2";
1
+ export declare const SDK_VERSION = "5.2.0";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "5.1.2";
4
+ exports.SDK_VERSION = "5.2.0";
@@ -7,8 +7,8 @@ export function normalizeClientOptions(options) {
7
7
  const headers = mergeHeaders({
8
8
  "X-Fern-Language": "JavaScript",
9
9
  "X-Fern-SDK-Name": "@vitable-inc/vitable-connect",
10
- "X-Fern-SDK-Version": "5.1.2",
11
- "User-Agent": "@vitable-inc/vitable-connect/5.1.2",
10
+ "X-Fern-SDK-Version": "5.2.0",
11
+ "User-Agent": "@vitable-inc/vitable-connect/5.2.0",
12
12
  "X-Fern-Runtime": core.RUNTIME.type,
13
13
  "X-Fern-Runtime-Version": core.RUNTIME.version,
14
14
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -61,6 +61,42 @@ export declare class MembersClient {
61
61
  */
62
62
  listDependents(request: VitableConnect.ListDependentsMembersRequest, requestOptions?: MembersClient.RequestOptions): core.HttpResponsePromise<VitableConnect.MemberDependentsResponse>;
63
63
  private __listDependents;
64
+ /**
65
+ * Saves a dependent (spouse or child) for a member. Saving does not enroll the dependent or change the member's coverage or coverage tier. If the member already has an active dependent matching this person, that relationship is reused and returned with a 200 and `created: false`; otherwise a new one is created with a 201 and `created: true`. In both cases the dependent's address is set to the one supplied; other details of a person Vitable already has on file are not changed. When a new dependent is created at exactly the member's address, Vitable also adds them to the member's household where it can; this never fails the request. The returned IDs identify the saved dependent. Social Security numbers are not accepted, and a body with an `ssn` field returns a 400. The caller must have write access to the target member, and API access tokens cannot save dependents. A member not visible to the caller returns a 404 before the body is validated. Business-rule failures return a 422 with `child_over_max_age` (a child must be under 26), `duplicate_active_spouse` (the member already has a different active spouse), `same_member`, `member_creation_failed`, or `legal_dependent_creation_failed`.
66
+ *
67
+ * @param {VitableConnect.CreateMemberDependentRequest} request
68
+ * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration.
69
+ *
70
+ * @throws {@link VitableConnect.BadRequestError}
71
+ * @throws {@link VitableConnect.UnauthorizedError}
72
+ * @throws {@link VitableConnect.ForbiddenError}
73
+ * @throws {@link VitableConnect.NotFoundError}
74
+ * @throws {@link VitableConnect.ConflictError}
75
+ * @throws {@link VitableConnect.UnprocessableEntityError}
76
+ * @throws {@link VitableConnect.TooManyRequestsError}
77
+ * @throws {@link VitableConnect.InternalServerError}
78
+ * @throws {@link VitableConnect.BadGatewayError}
79
+ * @throws {@link errors.VitableConnectError}
80
+ * @throws {@link errors.VitableConnectTimeoutError}
81
+ *
82
+ * @example
83
+ * await client.members.createDependent({
84
+ * member_id: "mbr_abc123def456",
85
+ * first_name: "Sam",
86
+ * last_name: "Doe",
87
+ * date_of_birth: "2015-06-01",
88
+ * sex_at_birth: "Male",
89
+ * relationship: "Child",
90
+ * address: {
91
+ * address_line_1: "123 Main St",
92
+ * city: "Detroit",
93
+ * state: "MI",
94
+ * zipcode: "48201"
95
+ * }
96
+ * })
97
+ */
98
+ createDependent(request: VitableConnect.CreateMemberDependentRequest, requestOptions?: MembersClient.RequestOptions): core.HttpResponsePromise<VitableConnect.SavedMemberDependentResponse>;
99
+ private __createDependent;
64
100
  /**
65
101
  * Lists a member's employment across every employer — the same employee record shape as the employer's employees list, plus the employer name. For an organization caller the rows are scoped to companies in that organization's book; a member (self/household) or Vitable Admin sees all employments. A member not visible to the caller returns a 404.
66
102
  *
@@ -8,9 +8,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
11
22
  import { normalizeClientOptionsWithAuth } from "../../../../BaseClient.mjs";
12
23
  import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.mjs";
13
24
  import * as core from "../../../../core/index.mjs";
25
+ import { mergeAdditionalBodyParameters } from "../../../../core/requestBody.mjs";
14
26
  import * as environments from "../../../../environments.mjs";
15
27
  import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.mjs";
16
28
  import * as errors from "../../../../errors/index.mjs";
@@ -173,6 +185,100 @@ export class MembersClient {
173
185
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/members/{member_id}/dependents");
174
186
  });
175
187
  }
188
+ /**
189
+ * Saves a dependent (spouse or child) for a member. Saving does not enroll the dependent or change the member's coverage or coverage tier. If the member already has an active dependent matching this person, that relationship is reused and returned with a 200 and `created: false`; otherwise a new one is created with a 201 and `created: true`. In both cases the dependent's address is set to the one supplied; other details of a person Vitable already has on file are not changed. When a new dependent is created at exactly the member's address, Vitable also adds them to the member's household where it can; this never fails the request. The returned IDs identify the saved dependent. Social Security numbers are not accepted, and a body with an `ssn` field returns a 400. The caller must have write access to the target member, and API access tokens cannot save dependents. A member not visible to the caller returns a 404 before the body is validated. Business-rule failures return a 422 with `child_over_max_age` (a child must be under 26), `duplicate_active_spouse` (the member already has a different active spouse), `same_member`, `member_creation_failed`, or `legal_dependent_creation_failed`.
190
+ *
191
+ * @param {VitableConnect.CreateMemberDependentRequest} request
192
+ * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration.
193
+ *
194
+ * @throws {@link VitableConnect.BadRequestError}
195
+ * @throws {@link VitableConnect.UnauthorizedError}
196
+ * @throws {@link VitableConnect.ForbiddenError}
197
+ * @throws {@link VitableConnect.NotFoundError}
198
+ * @throws {@link VitableConnect.ConflictError}
199
+ * @throws {@link VitableConnect.UnprocessableEntityError}
200
+ * @throws {@link VitableConnect.TooManyRequestsError}
201
+ * @throws {@link VitableConnect.InternalServerError}
202
+ * @throws {@link VitableConnect.BadGatewayError}
203
+ * @throws {@link errors.VitableConnectError}
204
+ * @throws {@link errors.VitableConnectTimeoutError}
205
+ *
206
+ * @example
207
+ * await client.members.createDependent({
208
+ * member_id: "mbr_abc123def456",
209
+ * first_name: "Sam",
210
+ * last_name: "Doe",
211
+ * date_of_birth: "2015-06-01",
212
+ * sex_at_birth: "Male",
213
+ * relationship: "Child",
214
+ * address: {
215
+ * address_line_1: "123 Main St",
216
+ * city: "Detroit",
217
+ * state: "MI",
218
+ * zipcode: "48201"
219
+ * }
220
+ * })
221
+ */
222
+ createDependent(request, requestOptions) {
223
+ return core.HttpResponsePromise.fromPromise(this.__createDependent(request, requestOptions));
224
+ }
225
+ __createDependent(request, requestOptions) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
228
+ const { member_id: memberId, "X-Vitable-Organization": vitableOrganization } = request, _body = __rest(request, ["member_id", "X-Vitable-Organization"]);
229
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
230
+ const _headers = mergeHeaders(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, mergeOnlyDefinedHeaders({ "X-Vitable-Organization": vitableOrganization }), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
231
+ const _response = yield ((_b = this._options.fetcher) !== null && _b !== void 0 ? _b : core.fetcher)({
232
+ url: core.url.join((_d = (_c = (yield core.Supplier.get(this._options.baseUrl))) !== null && _c !== void 0 ? _c : (yield core.Supplier.get(this._options.environment))) !== null && _d !== void 0 ? _d : environments.VitableConnectEnvironment.Production, `v1/members/${core.url.encodePathParam(memberId)}/dependents`),
233
+ method: "POST",
234
+ headers: _headers,
235
+ contentType: "application/json",
236
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams).build(),
237
+ requestType: "json",
238
+ body: mergeAdditionalBodyParameters(_body, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.additionalBodyParameters),
239
+ timeoutMs: ((_g = (_e = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _e !== void 0 ? _e : (_f = this._options) === null || _f === void 0 ? void 0 : _f.timeoutInSeconds) !== null && _g !== void 0 ? _g : 60) * 1000,
240
+ maxRetries: (_h = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _h !== void 0 ? _h : (_j = this._options) === null || _j === void 0 ? void 0 : _j.maxRetries,
241
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
242
+ fetchFn: (_k = this._options) === null || _k === void 0 ? void 0 : _k.fetch,
243
+ logging: this._options.logging,
244
+ });
245
+ if (_response.ok) {
246
+ return {
247
+ data: _response.body,
248
+ rawResponse: _response.rawResponse,
249
+ };
250
+ }
251
+ if (_response.error.reason === "status-code") {
252
+ switch (_response.error.statusCode) {
253
+ case 400:
254
+ throw new VitableConnect.BadRequestError(_response.error.body, _response.rawResponse);
255
+ case 401:
256
+ throw new VitableConnect.UnauthorizedError(_response.error.body, _response.rawResponse);
257
+ case 403:
258
+ throw new VitableConnect.ForbiddenError(_response.error.body, _response.rawResponse);
259
+ case 404:
260
+ throw new VitableConnect.NotFoundError(_response.error.body, _response.rawResponse);
261
+ case 409:
262
+ throw new VitableConnect.ConflictError(_response.error.body, _response.rawResponse);
263
+ case 422:
264
+ throw new VitableConnect.UnprocessableEntityError(_response.error.body, _response.rawResponse);
265
+ case 429:
266
+ throw new VitableConnect.TooManyRequestsError(_response.error.body, _response.rawResponse);
267
+ case 500:
268
+ throw new VitableConnect.InternalServerError(_response.error.body, _response.rawResponse);
269
+ case 502:
270
+ throw new VitableConnect.BadGatewayError(_response.error.body, _response.rawResponse);
271
+ default:
272
+ throw new errors.VitableConnectError({
273
+ statusCode: _response.error.statusCode,
274
+ body: _response.error.body,
275
+ rawResponse: _response.rawResponse,
276
+ });
277
+ }
278
+ }
279
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/members/{member_id}/dependents");
280
+ });
281
+ }
176
282
  /**
177
283
  * Lists a member's employment across every employer — the same employee record shape as the employer's employees list, plus the employer name. For an organization caller the rows are scoped to companies in that organization's book; a member (self/household) or Vitable Admin sees all employments. A member not visible to the caller returns a 404.
178
284
  *
@@ -0,0 +1,74 @@
1
+ import type * as VitableConnect from "../../../../index.mjs";
2
+ /**
3
+ * @example
4
+ * {
5
+ * member_id: "mbr_abc123def456",
6
+ * first_name: "Sam",
7
+ * last_name: "Doe",
8
+ * date_of_birth: "2015-06-01",
9
+ * sex_at_birth: "Male",
10
+ * relationship: "Child",
11
+ * address: {
12
+ * address_line_1: "123 Main St",
13
+ * city: "Detroit",
14
+ * state: "MI",
15
+ * zipcode: "48201"
16
+ * }
17
+ * }
18
+ */
19
+ export interface CreateMemberDependentRequest {
20
+ /** Unique member identifier (mbr_*) */
21
+ member_id: VitableConnect.MemberId;
22
+ /** Organization to act as for this request (e.g. `org_SGVsbG8gV29ybGQ`). Optional when your credentials reach a single organization. Required when they reach several — omitting it then returns 400 `organization_required`. A malformed value returns 400 `invalid_organization_header`, and naming an organization you do not have access to returns 403 `organization_access_denied`. */
23
+ "X-Vitable-Organization"?: VitableConnect.XVitableOrganization;
24
+ /** Dependent's legal first name */
25
+ first_name: string;
26
+ /** Dependent's legal last name */
27
+ last_name: string;
28
+ /**
29
+ * Name suffix
30
+ *
31
+ * * `Sr` - Sr
32
+ * * `Jr` - Jr
33
+ * * `I` - I
34
+ * * `II` - II
35
+ * * `III` - III
36
+ * * `IV` - IV
37
+ * * `V` - V
38
+ */
39
+ suffix?: VitableConnect.NameSuffix | null;
40
+ /** Date of birth (YYYY-MM-DD); cannot be in the future */
41
+ date_of_birth: string;
42
+ /**
43
+ * Sex assigned at birth
44
+ *
45
+ * * `Male` - Male
46
+ * * `Female` - Female
47
+ * * `Other` - Other
48
+ * * `Unknown` - Unknown
49
+ */
50
+ sex_at_birth?: VitableConnect.SexAtBirth | null;
51
+ /**
52
+ * Gender identity
53
+ *
54
+ * * `Male` - Male
55
+ * * `Female` - Female
56
+ * * `Transgender` - Transgender
57
+ * * `Non-binary` - Non-binary
58
+ * * `Prefer not to respond` - Prefer not to respond
59
+ */
60
+ gender?: VitableConnect.Gender | null;
61
+ /** Dependent's email address. Ignored for dependents under 18, and not changed for a dependent Vitable already has on file. */
62
+ email?: string | null;
63
+ /** Dependent's 10-digit US phone number; formatting characters and a leading 1 are ignored. Ignored for dependents under 18, and not changed for a dependent Vitable already has on file. */
64
+ phone?: string | null;
65
+ /**
66
+ * Relationship of the dependent to the member
67
+ *
68
+ * * `Spouse` - Spouse
69
+ * * `Child` - Child
70
+ */
71
+ relationship: VitableConnect.Relationship;
72
+ /** Dependent's residential address */
73
+ address: VitableConnect.CreateMemberDependentAddressRequest;
74
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -1,3 +1,4 @@
1
+ export type { CreateMemberDependentRequest } from "./CreateMemberDependentRequest.mjs";
1
2
  export type { GetHouseholdMembersRequest } from "./GetHouseholdMembersRequest.mjs";
2
3
  export type { GetMembersRequest } from "./GetMembersRequest.mjs";
3
4
  export type { ListDependentsMembersRequest } from "./ListDependentsMembersRequest.mjs";
@@ -0,0 +1,78 @@
1
+ import type * as VitableConnect from "../index.mjs";
2
+ export interface CreateMemberDependentAddressRequest {
3
+ /** Primary street address */
4
+ address_line_1: string;
5
+ /** Secondary street address */
6
+ address_line_2?: (string | null) | undefined;
7
+ /** City name */
8
+ city: string;
9
+ /**
10
+ * Two-letter state code
11
+ *
12
+ * * `AL` - AL
13
+ * * `AK` - AK
14
+ * * `AZ` - AZ
15
+ * * `AR` - AR
16
+ * * `CA` - CA
17
+ * * `CO` - CO
18
+ * * `CT` - CT
19
+ * * `DC` - DC
20
+ * * `DE` - DE
21
+ * * `FL` - FL
22
+ * * `GA` - GA
23
+ * * `HI` - HI
24
+ * * `ID` - ID
25
+ * * `IL` - IL
26
+ * * `IN` - IN
27
+ * * `IA` - IA
28
+ * * `KS` - KS
29
+ * * `KY` - KY
30
+ * * `LA` - LA
31
+ * * `ME` - ME
32
+ * * `MD` - MD
33
+ * * `MA` - MA
34
+ * * `MI` - MI
35
+ * * `MN` - MN
36
+ * * `MS` - MS
37
+ * * `MO` - MO
38
+ * * `MT` - MT
39
+ * * `NE` - NE
40
+ * * `NV` - NV
41
+ * * `NH` - NH
42
+ * * `NJ` - NJ
43
+ * * `NM` - NM
44
+ * * `NY` - NY
45
+ * * `NC` - NC
46
+ * * `ND` - ND
47
+ * * `OH` - OH
48
+ * * `OK` - OK
49
+ * * `OR` - OR
50
+ * * `PA` - PA
51
+ * * `RI` - RI
52
+ * * `SC` - SC
53
+ * * `SD` - SD
54
+ * * `TN` - TN
55
+ * * `TX` - TX
56
+ * * `UT` - UT
57
+ * * `VT` - VT
58
+ * * `VA` - VA
59
+ * * `WA` - WA
60
+ * * `WI` - WI
61
+ * * `WV` - WV
62
+ * * `WY` - WY
63
+ * * `PR` - PR
64
+ * * `GU` - GU
65
+ * * `AS` - AS
66
+ * * `VI` - VI
67
+ * * `MP` - MP
68
+ * * `MH` - MH
69
+ * * `PW` - PW
70
+ * * `FM` - FM
71
+ * * `AE` - AE
72
+ * * `AA` - AA
73
+ * * `AP` - AP
74
+ */
75
+ state: VitableConnect.State;
76
+ /** ZIP code */
77
+ zipcode: string;
78
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -2,8 +2,8 @@
2
2
  * * `Male` - Male
3
3
  * * `Female` - Female
4
4
  * * `Transgender` - Transgender
5
- * * `Non-binary` - Non Binary
6
- * * `Prefer not to respond` - Prefer Not To Respond
5
+ * * `Non-binary` - Non-binary
6
+ * * `Prefer not to respond` - Prefer not to respond
7
7
  */
8
8
  export declare const Gender: {
9
9
  readonly Male: "Male";
@@ -3,8 +3,8 @@
3
3
  * * `Male` - Male
4
4
  * * `Female` - Female
5
5
  * * `Transgender` - Transgender
6
- * * `Non-binary` - Non Binary
7
- * * `Prefer not to respond` - Prefer Not To Respond
6
+ * * `Non-binary` - Non-binary
7
+ * * `Prefer not to respond` - Prefer not to respond
8
8
  */
9
9
  export const Gender = {
10
10
  Male: "Male",
@@ -0,0 +1,38 @@
1
+ import type * as VitableConnect from "../index.mjs";
2
+ /**
3
+ * Wire serializer for :class:`MemberLegalDependentDTO` (one legal-dependent row).
4
+ */
5
+ export interface SavedMemberDependent {
6
+ /** The dependent's own member identifier with 'mbr_' prefix */
7
+ member_id?: string | undefined;
8
+ /** The primary member's identifier with 'mbr_' prefix */
9
+ primary_member_id?: string | undefined;
10
+ /** Dependent's first name */
11
+ first_name: string;
12
+ /** Dependent's last name */
13
+ last_name: string;
14
+ /**
15
+ * Relationship of the dependent to the member (e.g., Spouse, Child)
16
+ *
17
+ * * `Spouse` - Spouse
18
+ * * `Child` - Child
19
+ */
20
+ relationship: VitableConnect.Relationship;
21
+ /** Date of birth (YYYY-MM-DD) */
22
+ date_of_birth: string;
23
+ /** Dependent's age in years, derived from date of birth */
24
+ age: number;
25
+ /**
26
+ * Sex assigned at birth, if provided
27
+ *
28
+ * * `Male` - Male
29
+ * * `Female` - Female
30
+ * * `Other` - Other
31
+ * * `Unknown` - Unknown
32
+ */
33
+ sex_at_birth?: (VitableConnect.SexAtBirth | null) | undefined;
34
+ /** Identifier of the dependent relationship, with 'ldep_' prefix */
35
+ legal_dependent_id: string;
36
+ /** True when the relationship was created by this request, false when an existing one was reused */
37
+ created: boolean;
38
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,7 @@
1
+ import type * as VitableConnect from "../index.mjs";
2
+ /**
3
+ * Response containing a single saved member dependent resource.
4
+ */
5
+ export interface SavedMemberDependentResponse {
6
+ data: VitableConnect.SavedMemberDependent;
7
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -30,6 +30,7 @@ export * from "./ContributionTier.mjs";
30
30
  export * from "./CoverageTier.mjs";
31
31
  export * from "./CreatedAfter.mjs";
32
32
  export * from "./CreatedBefore.mjs";
33
+ export * from "./CreateMemberDependentAddressRequest.mjs";
33
34
  export * from "./DeductionDetail.mjs";
34
35
  export * from "./DeductionFrequency.mjs";
35
36
  export * from "./DetailedAddress.mjs";
@@ -162,6 +163,8 @@ export * from "./RemainingEmployeeAction.mjs";
162
163
  export * from "./RequestId.mjs";
163
164
  export * from "./ResourceId.mjs";
164
165
  export * from "./ResourceType.mjs";
166
+ export * from "./SavedMemberDependent.mjs";
167
+ export * from "./SavedMemberDependentResponse.mjs";
165
168
  export * from "./Search.mjs";
166
169
  export * from "./SexAtBirth.mjs";
167
170
  export * from "./State.mjs";
@@ -30,6 +30,7 @@ export * from "./ContributionTier.mjs";
30
30
  export * from "./CoverageTier.mjs";
31
31
  export * from "./CreatedAfter.mjs";
32
32
  export * from "./CreatedBefore.mjs";
33
+ export * from "./CreateMemberDependentAddressRequest.mjs";
33
34
  export * from "./DeductionDetail.mjs";
34
35
  export * from "./DeductionFrequency.mjs";
35
36
  export * from "./DetailedAddress.mjs";
@@ -162,6 +163,8 @@ export * from "./RemainingEmployeeAction.mjs";
162
163
  export * from "./RequestId.mjs";
163
164
  export * from "./ResourceId.mjs";
164
165
  export * from "./ResourceType.mjs";
166
+ export * from "./SavedMemberDependent.mjs";
167
+ export * from "./SavedMemberDependentResponse.mjs";
165
168
  export * from "./Search.mjs";
166
169
  export * from "./SexAtBirth.mjs";
167
170
  export * from "./State.mjs";
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "5.1.2";
1
+ export declare const SDK_VERSION = "5.2.0";
@@ -1 +1 @@
1
- export const SDK_VERSION = "5.1.2";
1
+ export const SDK_VERSION = "5.2.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitable-inc/vitable-connect",
3
- "version": "5.1.2",
3
+ "version": "5.2.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
package/reference.md CHANGED
@@ -2185,6 +2185,82 @@ await client.members.listDependents({
2185
2185
  </dl>
2186
2186
 
2187
2187
 
2188
+ </dd>
2189
+ </dl>
2190
+ </details>
2191
+
2192
+ <details><summary><code>client.members.<a href="/src/api/resources/members/client/Client.ts">createDependent</a>({ ...params }) -> VitableConnect.SavedMemberDependentResponse</code></summary>
2193
+ <dl>
2194
+ <dd>
2195
+
2196
+ #### 📝 Description
2197
+
2198
+ <dl>
2199
+ <dd>
2200
+
2201
+ <dl>
2202
+ <dd>
2203
+
2204
+ Saves a dependent (spouse or child) for a member. Saving does not enroll the dependent or change the member's coverage or coverage tier. If the member already has an active dependent matching this person, that relationship is reused and returned with a 200 and `created: false`; otherwise a new one is created with a 201 and `created: true`. In both cases the dependent's address is set to the one supplied; other details of a person Vitable already has on file are not changed. When a new dependent is created at exactly the member's address, Vitable also adds them to the member's household where it can; this never fails the request. The returned IDs identify the saved dependent. Social Security numbers are not accepted, and a body with an `ssn` field returns a 400. The caller must have write access to the target member, and API access tokens cannot save dependents. A member not visible to the caller returns a 404 before the body is validated. Business-rule failures return a 422 with `child_over_max_age` (a child must be under 26), `duplicate_active_spouse` (the member already has a different active spouse), `same_member`, `member_creation_failed`, or `legal_dependent_creation_failed`.
2205
+ </dd>
2206
+ </dl>
2207
+ </dd>
2208
+ </dl>
2209
+
2210
+ #### 🔌 Usage
2211
+
2212
+ <dl>
2213
+ <dd>
2214
+
2215
+ <dl>
2216
+ <dd>
2217
+
2218
+ ```typescript
2219
+ await client.members.createDependent({
2220
+ member_id: "mbr_abc123def456",
2221
+ first_name: "Sam",
2222
+ last_name: "Doe",
2223
+ date_of_birth: "2015-06-01",
2224
+ sex_at_birth: "Male",
2225
+ relationship: "Child",
2226
+ address: {
2227
+ address_line_1: "123 Main St",
2228
+ city: "Detroit",
2229
+ state: "MI",
2230
+ zipcode: "48201"
2231
+ }
2232
+ });
2233
+
2234
+ ```
2235
+ </dd>
2236
+ </dl>
2237
+ </dd>
2238
+ </dl>
2239
+
2240
+ #### ⚙️ Parameters
2241
+
2242
+ <dl>
2243
+ <dd>
2244
+
2245
+ <dl>
2246
+ <dd>
2247
+
2248
+ **request:** `VitableConnect.CreateMemberDependentRequest`
2249
+
2250
+ </dd>
2251
+ </dl>
2252
+
2253
+ <dl>
2254
+ <dd>
2255
+
2256
+ **requestOptions:** `MembersClient.RequestOptions`
2257
+
2258
+ </dd>
2259
+ </dl>
2260
+ </dd>
2261
+ </dl>
2262
+
2263
+
2188
2264
  </dd>
2189
2265
  </dl>
2190
2266
  </details>