@seamapi/types 1.23.1 → 1.24.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.
@@ -6255,6 +6255,130 @@ declare const _default: {
6255
6255
  'x-fern-sdk-return-value': string;
6256
6256
  };
6257
6257
  };
6258
+ '/client_sessions/get_or_create': {
6259
+ post: {
6260
+ operationId: string;
6261
+ requestBody: {
6262
+ content: {
6263
+ 'application/json': {
6264
+ schema: {
6265
+ properties: {
6266
+ connect_webview_ids: {
6267
+ items: {
6268
+ type: string;
6269
+ };
6270
+ type: string;
6271
+ };
6272
+ connected_account_ids: {
6273
+ items: {
6274
+ type: string;
6275
+ };
6276
+ type: string;
6277
+ };
6278
+ user_identifier_key: {
6279
+ minLength: number;
6280
+ type: string;
6281
+ };
6282
+ };
6283
+ type: string;
6284
+ };
6285
+ };
6286
+ };
6287
+ };
6288
+ responses: {
6289
+ 200: {
6290
+ content: {
6291
+ 'application/json': {
6292
+ schema: {
6293
+ properties: {
6294
+ client_session: {
6295
+ $ref: string;
6296
+ };
6297
+ ok: {
6298
+ type: string;
6299
+ };
6300
+ };
6301
+ required: string[];
6302
+ type: string;
6303
+ };
6304
+ };
6305
+ };
6306
+ description: string;
6307
+ };
6308
+ 400: {
6309
+ description: string;
6310
+ };
6311
+ 401: {
6312
+ description: string;
6313
+ };
6314
+ };
6315
+ summary: string;
6316
+ tags: string[];
6317
+ 'x-fern-sdk-group-name': string[];
6318
+ 'x-fern-sdk-method-name': string;
6319
+ 'x-fern-sdk-return-value': string;
6320
+ };
6321
+ put: {
6322
+ operationId: string;
6323
+ requestBody: {
6324
+ content: {
6325
+ 'application/json': {
6326
+ schema: {
6327
+ properties: {
6328
+ connect_webview_ids: {
6329
+ items: {
6330
+ type: string;
6331
+ };
6332
+ type: string;
6333
+ };
6334
+ connected_account_ids: {
6335
+ items: {
6336
+ type: string;
6337
+ };
6338
+ type: string;
6339
+ };
6340
+ user_identifier_key: {
6341
+ minLength: number;
6342
+ type: string;
6343
+ };
6344
+ };
6345
+ type: string;
6346
+ };
6347
+ };
6348
+ };
6349
+ };
6350
+ responses: {
6351
+ 200: {
6352
+ content: {
6353
+ 'application/json': {
6354
+ schema: {
6355
+ properties: {
6356
+ client_session: {
6357
+ $ref: string;
6358
+ };
6359
+ ok: {
6360
+ type: string;
6361
+ };
6362
+ };
6363
+ required: string[];
6364
+ type: string;
6365
+ };
6366
+ };
6367
+ };
6368
+ description: string;
6369
+ };
6370
+ 400: {
6371
+ description: string;
6372
+ };
6373
+ 401: {
6374
+ description: string;
6375
+ };
6376
+ };
6377
+ summary: string;
6378
+ tags: string[];
6379
+ 'x-fern-ignore': boolean;
6380
+ };
6381
+ };
6258
6382
  '/client_sessions/grant_access': {
6259
6383
  patch: {
6260
6384
  operationId: string;
@@ -12378,6 +12502,27 @@ interface Routes {
12378
12502
  };
12379
12503
  };
12380
12504
  };
12505
+ '/client_sessions/get_or_create': {
12506
+ route: '/client_sessions/get_or_create';
12507
+ method: 'POST' | 'PUT';
12508
+ queryParams: {};
12509
+ jsonBody: {
12510
+ user_identifier_key?: string | undefined;
12511
+ connect_webview_ids?: string[] | undefined;
12512
+ connected_account_ids?: string[] | undefined;
12513
+ };
12514
+ commonParams: {};
12515
+ formData: {};
12516
+ jsonResponse: {
12517
+ client_session: {
12518
+ client_session_id: string;
12519
+ user_identifier_key: string | null;
12520
+ created_at: string;
12521
+ token: string;
12522
+ workspace_id: string;
12523
+ };
12524
+ };
12525
+ };
12381
12526
  '/client_sessions/grant_access': {
12382
12527
  route: '/client_sessions/grant_access';
12383
12528
  method: 'PATCH' | 'POST';
package/dist/devicedb.cjs CHANGED
@@ -93,9 +93,22 @@ var thermostat = zod.z.object({
93
93
  var relay = zod.z.object({
94
94
  main_category: zod.z.literal("relay")
95
95
  });
96
+ var intercom = zod.z.object({
97
+ main_category: zod.z.literal("intercom"),
98
+ physical_properties: zod.z.object({
99
+ has_camera: zod.z.boolean()
100
+ }),
101
+ software_features: zod.z.object({
102
+ can_remotely_unlock: zod.z.boolean(),
103
+ can_program_access_codes: zod.z.boolean()
104
+ })
105
+ });
106
+ var accessory = zod.z.object({
107
+ main_category: zod.z.literal("accessory")
108
+ });
96
109
  var device_model_category_specific_properties = zod.z.discriminatedUnion(
97
110
  "main_category",
98
- [smartlock, sensor, thermostat, relay]
111
+ [smartlock, sensor, thermostat, relay, intercom, accessory]
99
112
  );
100
113
  var base_device_model_v1 = zod.z.object({
101
114
  device_model_id: zod.z.string().uuid(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-model-v0.ts","../src/lib/seam/devicedb/public-models/device-model-v1.ts","../src/lib/seam/devicedb/public-models/image-reference.ts","../src/lib/seam/devicedb/public-models/manufacturer.ts"],"names":["z"],"mappings":"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","sourcesContent":["export * from './device-model-v0.js'\nexport * from './device-model-v1.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z } from 'zod'\n\nexport const device_model_v0 = z.object({\n main_category: z.string(),\n model_name: z.string(),\n manufacturer_model_id: z.string(),\n connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n support_level: z.enum(['live', 'beta', 'unsupported']),\n brand: z.string(),\n icon_url: z.string(),\n seam_device_model_page_url: z.string(),\n})\n\nexport type DeviceModelV0 = z.infer<typeof device_model_v0>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nconst smartlock = z.object({\n main_category: z.literal('smartlock'),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n 'unknown',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n})\n\nconst sensor = z.object({\n main_category: z.literal('sensor'),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nconst thermostat = z.object({\n main_category: z.literal('thermostat'),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n})\n\nexport type ThermostatPropertiesV1 = z.infer<typeof thermostat>\n\nconst relay = z.object({\n main_category: z.literal('relay'),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer,\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string().optional(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModelV1 = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n integration: z.enum(['stable', 'beta', 'planned', 'unsupported', 'inquire']),\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n"]}
1
+ {"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-model-v0.ts","../src/lib/seam/devicedb/public-models/device-model-v1.ts","../src/lib/seam/devicedb/public-models/image-reference.ts","../src/lib/seam/devicedb/public-models/manufacturer.ts"],"names":["z"],"mappings":"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","sourcesContent":["export * from './device-model-v0.js'\nexport * from './device-model-v1.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z } from 'zod'\n\nexport const device_model_v0 = z.object({\n main_category: z.string(),\n model_name: z.string(),\n manufacturer_model_id: z.string(),\n connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n support_level: z.enum(['live', 'beta', 'unsupported']),\n brand: z.string(),\n icon_url: z.string(),\n seam_device_model_page_url: z.string(),\n})\n\nexport type DeviceModelV0 = z.infer<typeof device_model_v0>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nconst smartlock = z.object({\n main_category: z.literal('smartlock'),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n 'unknown',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n})\n\nconst sensor = z.object({\n main_category: z.literal('sensor'),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nconst thermostat = z.object({\n main_category: z.literal('thermostat'),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n})\n\nexport type ThermostatPropertiesV1 = z.infer<typeof thermostat>\n\nconst relay = z.object({\n main_category: z.literal('relay'),\n})\n\nconst intercom = z.object({\n main_category: z.literal('intercom'),\n physical_properties: z.object({\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n }),\n})\n\nconst accessory = z.object({\n main_category: z.literal('accessory'),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay, intercom, accessory],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer,\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string().optional(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModelV1 = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n integration: z.enum(['stable', 'beta', 'planned', 'unsupported', 'inquire']),\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n"]}
@@ -253,6 +253,49 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
253
253
  main_category: "relay";
254
254
  }, {
255
255
  main_category: "relay";
256
+ }>, z.ZodObject<{
257
+ main_category: z.ZodLiteral<"intercom">;
258
+ physical_properties: z.ZodObject<{
259
+ has_camera: z.ZodBoolean;
260
+ }, "strip", z.ZodTypeAny, {
261
+ has_camera: boolean;
262
+ }, {
263
+ has_camera: boolean;
264
+ }>;
265
+ software_features: z.ZodObject<{
266
+ can_remotely_unlock: z.ZodBoolean;
267
+ can_program_access_codes: z.ZodBoolean;
268
+ }, "strip", z.ZodTypeAny, {
269
+ can_remotely_unlock: boolean;
270
+ can_program_access_codes: boolean;
271
+ }, {
272
+ can_remotely_unlock: boolean;
273
+ can_program_access_codes: boolean;
274
+ }>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ main_category: "intercom";
277
+ physical_properties: {
278
+ has_camera: boolean;
279
+ };
280
+ software_features: {
281
+ can_remotely_unlock: boolean;
282
+ can_program_access_codes: boolean;
283
+ };
284
+ }, {
285
+ main_category: "intercom";
286
+ physical_properties: {
287
+ has_camera: boolean;
288
+ };
289
+ software_features: {
290
+ can_remotely_unlock: boolean;
291
+ can_program_access_codes: boolean;
292
+ };
293
+ }>, z.ZodObject<{
294
+ main_category: z.ZodLiteral<"accessory">;
295
+ }, "strip", z.ZodTypeAny, {
296
+ main_category: "accessory";
297
+ }, {
298
+ main_category: "accessory";
256
299
  }>]>;
257
300
  declare const base_device_model_v1: z.ZodObject<{
258
301
  device_model_id: z.ZodString;
@@ -783,6 +826,49 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
783
826
  main_category: "relay";
784
827
  }, {
785
828
  main_category: "relay";
829
+ }>, z.ZodObject<{
830
+ main_category: z.ZodLiteral<"intercom">;
831
+ physical_properties: z.ZodObject<{
832
+ has_camera: z.ZodBoolean;
833
+ }, "strip", z.ZodTypeAny, {
834
+ has_camera: boolean;
835
+ }, {
836
+ has_camera: boolean;
837
+ }>;
838
+ software_features: z.ZodObject<{
839
+ can_remotely_unlock: z.ZodBoolean;
840
+ can_program_access_codes: z.ZodBoolean;
841
+ }, "strip", z.ZodTypeAny, {
842
+ can_remotely_unlock: boolean;
843
+ can_program_access_codes: boolean;
844
+ }, {
845
+ can_remotely_unlock: boolean;
846
+ can_program_access_codes: boolean;
847
+ }>;
848
+ }, "strip", z.ZodTypeAny, {
849
+ main_category: "intercom";
850
+ physical_properties: {
851
+ has_camera: boolean;
852
+ };
853
+ software_features: {
854
+ can_remotely_unlock: boolean;
855
+ can_program_access_codes: boolean;
856
+ };
857
+ }, {
858
+ main_category: "intercom";
859
+ physical_properties: {
860
+ has_camera: boolean;
861
+ };
862
+ software_features: {
863
+ can_remotely_unlock: boolean;
864
+ can_program_access_codes: boolean;
865
+ };
866
+ }>, z.ZodObject<{
867
+ main_category: z.ZodLiteral<"accessory">;
868
+ }, "strip", z.ZodTypeAny, {
869
+ main_category: "accessory";
870
+ }, {
871
+ main_category: "accessory";
786
872
  }>]>>;
787
873
  type DeviceModelV1 = z.infer<typeof device_model_v1>;
788
874
 
@@ -958,6 +1044,17 @@ interface Routes {
958
1044
  };
959
1045
  } | {
960
1046
  main_category: 'relay';
1047
+ } | {
1048
+ main_category: 'intercom';
1049
+ physical_properties: {
1050
+ has_camera: boolean;
1051
+ };
1052
+ software_features: {
1053
+ can_remotely_unlock: boolean;
1054
+ can_program_access_codes: boolean;
1055
+ };
1056
+ } | {
1057
+ main_category: 'accessory';
961
1058
  });
962
1059
  };
963
1060
  };
@@ -1048,6 +1145,17 @@ interface Routes {
1048
1145
  };
1049
1146
  } | {
1050
1147
  main_category: 'relay';
1148
+ } | {
1149
+ main_category: 'intercom';
1150
+ physical_properties: {
1151
+ has_camera: boolean;
1152
+ };
1153
+ software_features: {
1154
+ can_remotely_unlock: boolean;
1155
+ can_program_access_codes: boolean;
1156
+ };
1157
+ } | {
1158
+ main_category: 'accessory';
1051
1159
  })>;
1052
1160
  };
1053
1161
  };
@@ -6204,6 +6204,130 @@ declare const _default: {
6204
6204
  'x-fern-sdk-return-value': string;
6205
6205
  };
6206
6206
  };
6207
+ '/client_sessions/get_or_create': {
6208
+ post: {
6209
+ operationId: string;
6210
+ requestBody: {
6211
+ content: {
6212
+ 'application/json': {
6213
+ schema: {
6214
+ properties: {
6215
+ connect_webview_ids: {
6216
+ items: {
6217
+ type: string;
6218
+ };
6219
+ type: string;
6220
+ };
6221
+ connected_account_ids: {
6222
+ items: {
6223
+ type: string;
6224
+ };
6225
+ type: string;
6226
+ };
6227
+ user_identifier_key: {
6228
+ minLength: number;
6229
+ type: string;
6230
+ };
6231
+ };
6232
+ type: string;
6233
+ };
6234
+ };
6235
+ };
6236
+ };
6237
+ responses: {
6238
+ 200: {
6239
+ content: {
6240
+ 'application/json': {
6241
+ schema: {
6242
+ properties: {
6243
+ client_session: {
6244
+ $ref: string;
6245
+ };
6246
+ ok: {
6247
+ type: string;
6248
+ };
6249
+ };
6250
+ required: string[];
6251
+ type: string;
6252
+ };
6253
+ };
6254
+ };
6255
+ description: string;
6256
+ };
6257
+ 400: {
6258
+ description: string;
6259
+ };
6260
+ 401: {
6261
+ description: string;
6262
+ };
6263
+ };
6264
+ summary: string;
6265
+ tags: string[];
6266
+ 'x-fern-sdk-group-name': string[];
6267
+ 'x-fern-sdk-method-name': string;
6268
+ 'x-fern-sdk-return-value': string;
6269
+ };
6270
+ put: {
6271
+ operationId: string;
6272
+ requestBody: {
6273
+ content: {
6274
+ 'application/json': {
6275
+ schema: {
6276
+ properties: {
6277
+ connect_webview_ids: {
6278
+ items: {
6279
+ type: string;
6280
+ };
6281
+ type: string;
6282
+ };
6283
+ connected_account_ids: {
6284
+ items: {
6285
+ type: string;
6286
+ };
6287
+ type: string;
6288
+ };
6289
+ user_identifier_key: {
6290
+ minLength: number;
6291
+ type: string;
6292
+ };
6293
+ };
6294
+ type: string;
6295
+ };
6296
+ };
6297
+ };
6298
+ };
6299
+ responses: {
6300
+ 200: {
6301
+ content: {
6302
+ 'application/json': {
6303
+ schema: {
6304
+ properties: {
6305
+ client_session: {
6306
+ $ref: string;
6307
+ };
6308
+ ok: {
6309
+ type: string;
6310
+ };
6311
+ };
6312
+ required: string[];
6313
+ type: string;
6314
+ };
6315
+ };
6316
+ };
6317
+ description: string;
6318
+ };
6319
+ 400: {
6320
+ description: string;
6321
+ };
6322
+ 401: {
6323
+ description: string;
6324
+ };
6325
+ };
6326
+ summary: string;
6327
+ tags: string[];
6328
+ 'x-fern-ignore': boolean;
6329
+ };
6330
+ };
6207
6331
  '/client_sessions/grant_access': {
6208
6332
  patch: {
6209
6333
  operationId: string;
@@ -4226,6 +4226,104 @@ export default {
4226
4226
  'x-fern-sdk-return-value': 'client_session',
4227
4227
  },
4228
4228
  },
4229
+ '/client_sessions/get_or_create': {
4230
+ post: {
4231
+ operationId: 'clientSessionsGetOrCreatePost',
4232
+ requestBody: {
4233
+ content: {
4234
+ 'application/json': {
4235
+ schema: {
4236
+ properties: {
4237
+ connect_webview_ids: {
4238
+ items: { type: 'string' },
4239
+ type: 'array',
4240
+ },
4241
+ connected_account_ids: {
4242
+ items: { type: 'string' },
4243
+ type: 'array',
4244
+ },
4245
+ user_identifier_key: { minLength: 1, type: 'string' },
4246
+ },
4247
+ type: 'object',
4248
+ },
4249
+ },
4250
+ },
4251
+ },
4252
+ responses: {
4253
+ 200: {
4254
+ content: {
4255
+ 'application/json': {
4256
+ schema: {
4257
+ properties: {
4258
+ client_session: {
4259
+ $ref: '#/components/schemas/client_session',
4260
+ },
4261
+ ok: { type: 'boolean' },
4262
+ },
4263
+ required: ['client_session', 'ok'],
4264
+ type: 'object',
4265
+ },
4266
+ },
4267
+ },
4268
+ description: 'OK',
4269
+ },
4270
+ 400: { description: 'Bad Request' },
4271
+ 401: { description: 'Unauthorized' },
4272
+ },
4273
+ summary: '/client_sessions/get_or_create',
4274
+ tags: ['/client_sessions'],
4275
+ 'x-fern-sdk-group-name': ['client_sessions'],
4276
+ 'x-fern-sdk-method-name': 'get_or_create',
4277
+ 'x-fern-sdk-return-value': 'client_session',
4278
+ },
4279
+ put: {
4280
+ operationId: 'clientSessionsGetOrCreatePut',
4281
+ requestBody: {
4282
+ content: {
4283
+ 'application/json': {
4284
+ schema: {
4285
+ properties: {
4286
+ connect_webview_ids: {
4287
+ items: { type: 'string' },
4288
+ type: 'array',
4289
+ },
4290
+ connected_account_ids: {
4291
+ items: { type: 'string' },
4292
+ type: 'array',
4293
+ },
4294
+ user_identifier_key: { minLength: 1, type: 'string' },
4295
+ },
4296
+ type: 'object',
4297
+ },
4298
+ },
4299
+ },
4300
+ },
4301
+ responses: {
4302
+ 200: {
4303
+ content: {
4304
+ 'application/json': {
4305
+ schema: {
4306
+ properties: {
4307
+ client_session: {
4308
+ $ref: '#/components/schemas/client_session',
4309
+ },
4310
+ ok: { type: 'boolean' },
4311
+ },
4312
+ required: ['client_session', 'ok'],
4313
+ type: 'object',
4314
+ },
4315
+ },
4316
+ },
4317
+ description: 'OK',
4318
+ },
4319
+ 400: { description: 'Bad Request' },
4320
+ 401: { description: 'Unauthorized' },
4321
+ },
4322
+ summary: '/client_sessions/get_or_create',
4323
+ tags: ['/client_sessions'],
4324
+ 'x-fern-ignore': true,
4325
+ },
4326
+ },
4229
4327
  '/client_sessions/grant_access': {
4230
4328
  patch: {
4231
4329
  operationId: 'clientSessionsGrantAccessPatch',