@raconte/node-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/dist/client.d.ts +23 -0
- package/dist/client.js +23 -0
- package/dist/generated/client/client.gen.d.ts +2 -0
- package/dist/generated/client/client.gen.js +229 -0
- package/dist/generated/client/index.d.ts +8 -0
- package/dist/generated/client/index.js +6 -0
- package/dist/generated/client/types.gen.d.ts +117 -0
- package/dist/generated/client/types.gen.js +2 -0
- package/dist/generated/client/utils.gen.d.ts +33 -0
- package/dist/generated/client/utils.gen.js +231 -0
- package/dist/generated/client.gen.d.ts +12 -0
- package/dist/generated/client.gen.js +3 -0
- package/dist/generated/core/auth.gen.d.ts +18 -0
- package/dist/generated/core/auth.gen.js +14 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +25 -0
- package/dist/generated/core/bodySerializer.gen.js +57 -0
- package/dist/generated/core/params.gen.d.ts +43 -0
- package/dist/generated/core/params.gen.js +100 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +33 -0
- package/dist/generated/core/pathSerializer.gen.js +114 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/generated/core/queryKeySerializer.gen.js +99 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/generated/core/serverSentEvents.gen.js +137 -0
- package/dist/generated/core/types.gen.d.ts +78 -0
- package/dist/generated/core/types.gen.js +2 -0
- package/dist/generated/core/utils.gen.d.ts +19 -0
- package/dist/generated/core/utils.gen.js +87 -0
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.js +3 -0
- package/dist/generated/sdk.gen.d.ts +38 -0
- package/dist/generated/sdk.gen.js +133 -0
- package/dist/generated/types.gen.d.ts +705 -0
- package/dist/generated/types.gen.js +12 -0
- package/dist/generated/zod.gen.d.ts +1294 -0
- package/dist/generated/zod.gen.js +589 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +11 -0
- package/package.json +55 -0
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
export type ClientOptions = {
|
|
2
|
+
baseUrl: "https://api.raconte.ai" | (string & {});
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* VoiceTestAudioUrlSchema
|
|
6
|
+
*
|
|
7
|
+
* Short-lived presigned URL for the voice preview audio. Generated on first request if missing.
|
|
8
|
+
*/
|
|
9
|
+
export type VoiceTestAudioUrlSchema = {
|
|
10
|
+
url: string;
|
|
11
|
+
expiresAt: string;
|
|
12
|
+
mimeType: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* VoiceListSchema
|
|
16
|
+
*
|
|
17
|
+
* List of voices matching the requested language filter.
|
|
18
|
+
*/
|
|
19
|
+
export type VoiceListSchema = Array<VoiceSchema>;
|
|
20
|
+
/**
|
|
21
|
+
* VoiceSchema
|
|
22
|
+
*
|
|
23
|
+
* A voice available for interview narration. Provider-specific identifiers are not exposed publicly.
|
|
24
|
+
*/
|
|
25
|
+
export type VoiceSchema = {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
language: string;
|
|
29
|
+
gender: "M" | "F";
|
|
30
|
+
provider: "gradium" | "elevenlabs";
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* InterviewMessageAudioUrlSchema
|
|
34
|
+
*
|
|
35
|
+
* Short-lived presigned URL for the audio attached to an interview message.
|
|
36
|
+
*/
|
|
37
|
+
export type InterviewMessageAudioUrlSchema = {
|
|
38
|
+
url: string;
|
|
39
|
+
expiresAt: string;
|
|
40
|
+
mimeType: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* InterviewLogListSchema
|
|
44
|
+
*
|
|
45
|
+
* Chronological history of events on an interview, most recent first.
|
|
46
|
+
*/
|
|
47
|
+
export type InterviewLogListSchema = Array<InterviewLogSchema>;
|
|
48
|
+
/**
|
|
49
|
+
* InterviewLogSchema
|
|
50
|
+
*
|
|
51
|
+
* Schema for a single interview log entry. target is the email or phone for send events, null for status transitions. invitationId points to the specific invitation that the event concerns; null for legacy rows that predate the invitation split.
|
|
52
|
+
*/
|
|
53
|
+
export type InterviewLogSchema = {
|
|
54
|
+
id: string;
|
|
55
|
+
/**
|
|
56
|
+
* InterviewLogType
|
|
57
|
+
*
|
|
58
|
+
* Type of an interview log event. archived/restored are interview-level transitions (no invitationId); the others are invitation-scoped.
|
|
59
|
+
*/
|
|
60
|
+
type: "email_sent" | "sms_sent" | "started" | "completed" | "cancelled" | "reactivated" | "archived" | "restored";
|
|
61
|
+
target: string | null;
|
|
62
|
+
invitationId: string | null;
|
|
63
|
+
createdAt: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* InterviewInvitationSchema
|
|
67
|
+
*
|
|
68
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
69
|
+
*/
|
|
70
|
+
export type InterviewInvitationSchema = {
|
|
71
|
+
id: string;
|
|
72
|
+
interviewId: string;
|
|
73
|
+
slug: string;
|
|
74
|
+
status: InterviewInvitationStatus;
|
|
75
|
+
name: string | null;
|
|
76
|
+
recipientEmail: string | null;
|
|
77
|
+
recipientPhone: string | null;
|
|
78
|
+
summary: string | null;
|
|
79
|
+
archivedAt: string | null;
|
|
80
|
+
createdAt: string;
|
|
81
|
+
updatedAt: string;
|
|
82
|
+
messages?: Array<InterviewMessageSchema>;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* InterviewMessageSchema
|
|
86
|
+
*
|
|
87
|
+
* Schema for an interview message. audioAssetId is null when no audio was recorded for that message (legacy messages, deleted audio, etc.). audioPeaks is a base64-encoded uint8 waveform summary of the attached audio (128 amplitude bins, 0-255), null when no audio is attached or when peaks have not been computed yet for a legacy asset. sentiment is populated only on user-role messages once async insights generation has completed.
|
|
88
|
+
*/
|
|
89
|
+
export type InterviewMessageSchema = {
|
|
90
|
+
id: string;
|
|
91
|
+
role: "user" | "assistant" | "system";
|
|
92
|
+
content: string;
|
|
93
|
+
audioAssetId: string | null;
|
|
94
|
+
audioDurationMs: number | null;
|
|
95
|
+
audioPeaks: string | null;
|
|
96
|
+
sentiment: "positive" | "neutral" | "negative" | null;
|
|
97
|
+
createdAt: string;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* InterviewInvitationStatus
|
|
101
|
+
*
|
|
102
|
+
* Lifecycle state of an invitation (the unit that gets sent and produces a transcript).
|
|
103
|
+
*/
|
|
104
|
+
export declare const InterviewInvitationStatus: {
|
|
105
|
+
readonly READY: "ready";
|
|
106
|
+
readonly IN_PROGRESS: "in_progress";
|
|
107
|
+
readonly COMPLETED: "completed";
|
|
108
|
+
readonly CANCELLED: "cancelled";
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* InterviewInvitationStatus
|
|
112
|
+
*
|
|
113
|
+
* Lifecycle state of an invitation (the unit that gets sent and produces a transcript).
|
|
114
|
+
*/
|
|
115
|
+
export type InterviewInvitationStatus = (typeof InterviewInvitationStatus)[keyof typeof InterviewInvitationStatus];
|
|
116
|
+
/**
|
|
117
|
+
* InterviewInvitationListSchema
|
|
118
|
+
*
|
|
119
|
+
* List of interview invitations belonging to an interview.
|
|
120
|
+
*/
|
|
121
|
+
export type InterviewInvitationListSchema = Array<InterviewInvitationSchema>;
|
|
122
|
+
/**
|
|
123
|
+
* RestoreInterviewResponse
|
|
124
|
+
*
|
|
125
|
+
* Response for restoring an archived interview
|
|
126
|
+
*/
|
|
127
|
+
export type RestoreInterviewResponse = {
|
|
128
|
+
success: boolean;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* ArchiveInterviewResponse
|
|
132
|
+
*
|
|
133
|
+
* Response for archiving an interview
|
|
134
|
+
*/
|
|
135
|
+
export type ArchiveInterviewResponse = {
|
|
136
|
+
success: boolean;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* InterviewSchema
|
|
140
|
+
*
|
|
141
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
142
|
+
*/
|
|
143
|
+
export type InterviewSchema = {
|
|
144
|
+
id: string;
|
|
145
|
+
title: string | null;
|
|
146
|
+
prompt: string;
|
|
147
|
+
intro: string | null;
|
|
148
|
+
firstMessage: string | null;
|
|
149
|
+
locale: string | null;
|
|
150
|
+
voiceId: string;
|
|
151
|
+
maxMinutes: number;
|
|
152
|
+
maxResponses: number;
|
|
153
|
+
disableOrgSystemPrompt: boolean;
|
|
154
|
+
createdAt: string;
|
|
155
|
+
updatedAt: string;
|
|
156
|
+
archivedAt: string | null;
|
|
157
|
+
invitationsCount: number;
|
|
158
|
+
invitationsByStatus: InterviewStatusCounts;
|
|
159
|
+
invitationsArchivedCount: number;
|
|
160
|
+
invitations: Array<InterviewInvitationSummarySchema>;
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* InterviewInvitationSummarySchema
|
|
164
|
+
*
|
|
165
|
+
* Lightweight invitation row used in lists. summaryAvailable is true once async insights have produced a summary for this invitation. hasMessages is true as soon as the invitation has at least one transcript message persisted.
|
|
166
|
+
*/
|
|
167
|
+
export type InterviewInvitationSummarySchema = {
|
|
168
|
+
id: string;
|
|
169
|
+
slug: string;
|
|
170
|
+
/**
|
|
171
|
+
* InterviewInvitationStatus
|
|
172
|
+
*
|
|
173
|
+
* Lifecycle state of an invitation (the unit that gets sent and produces a transcript).
|
|
174
|
+
*/
|
|
175
|
+
status: "ready" | "in_progress" | "completed" | "cancelled";
|
|
176
|
+
name: string | null;
|
|
177
|
+
recipientEmail: string | null;
|
|
178
|
+
recipientPhone: string | null;
|
|
179
|
+
archivedAt: string | null;
|
|
180
|
+
createdAt: string;
|
|
181
|
+
updatedAt: string;
|
|
182
|
+
hasMessages: boolean;
|
|
183
|
+
summaryAvailable: boolean;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* InterviewStatusCounts
|
|
187
|
+
*
|
|
188
|
+
* Number of invitations in each status for a given interview, archived invitations excluded.
|
|
189
|
+
*/
|
|
190
|
+
export type InterviewStatusCounts = {
|
|
191
|
+
ready: number;
|
|
192
|
+
in_progress: number;
|
|
193
|
+
completed: number;
|
|
194
|
+
cancelled: number;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* InterviewListSchema
|
|
198
|
+
*
|
|
199
|
+
* Schema for a list of interviews
|
|
200
|
+
*/
|
|
201
|
+
export type InterviewListSchema = Array<InterviewSchema>;
|
|
202
|
+
/**
|
|
203
|
+
* CreatedInterviewsResponse
|
|
204
|
+
*
|
|
205
|
+
* Response for interview creation
|
|
206
|
+
*/
|
|
207
|
+
export type CreatedInterviewsResponse = Array<CreatedInterviewSchema>;
|
|
208
|
+
/**
|
|
209
|
+
* CreatedInterviewSchema
|
|
210
|
+
*
|
|
211
|
+
* Schema for a newly created interview, including the slug of its initial invitation.
|
|
212
|
+
*/
|
|
213
|
+
export type CreatedInterviewSchema = {
|
|
214
|
+
id: string;
|
|
215
|
+
invitationId: string;
|
|
216
|
+
slug: string;
|
|
217
|
+
/**
|
|
218
|
+
* InterviewInvitationStatus
|
|
219
|
+
*
|
|
220
|
+
* Lifecycle state of an invitation (the unit that gets sent and produces a transcript).
|
|
221
|
+
*/
|
|
222
|
+
status: "ready" | "in_progress" | "completed" | "cancelled";
|
|
223
|
+
};
|
|
224
|
+
export type InterviewsControllerListData = {
|
|
225
|
+
body?: never;
|
|
226
|
+
path?: never;
|
|
227
|
+
query?: {
|
|
228
|
+
/**
|
|
229
|
+
* When true, returns archived interviews only. When omitted or false, returns active (non-archived) interviews.
|
|
230
|
+
*/
|
|
231
|
+
archived?: boolean;
|
|
232
|
+
};
|
|
233
|
+
url: "/api/interviews";
|
|
234
|
+
};
|
|
235
|
+
export type InterviewsControllerListResponses = {
|
|
236
|
+
/**
|
|
237
|
+
* Schema for a list of interviews
|
|
238
|
+
*/
|
|
239
|
+
200: InterviewListSchema;
|
|
240
|
+
};
|
|
241
|
+
export type InterviewsControllerListResponse = InterviewsControllerListResponses[keyof InterviewsControllerListResponses];
|
|
242
|
+
export type InterviewsControllerCreateData = {
|
|
243
|
+
/**
|
|
244
|
+
* CreateInterviewSchema
|
|
245
|
+
*
|
|
246
|
+
* Schema for creating an interview. When invitees is provided, one invitation is created (and sent) per invitee. Otherwise a single initial invitation is created, pre-filled with email/phone when given. When locale or voiceId is omitted, the organization default (Settings > Interviews) is used, falling back to the app default language and the first voice for that language.
|
|
247
|
+
*/
|
|
248
|
+
body: {
|
|
249
|
+
prompt: string;
|
|
250
|
+
title?: string;
|
|
251
|
+
intro?: string;
|
|
252
|
+
firstMessage?: string;
|
|
253
|
+
email?: string;
|
|
254
|
+
phone?: string;
|
|
255
|
+
invitees?: Array<{
|
|
256
|
+
name?: string;
|
|
257
|
+
email?: string;
|
|
258
|
+
phone?: string;
|
|
259
|
+
}>;
|
|
260
|
+
locale?: string;
|
|
261
|
+
voiceId?: string;
|
|
262
|
+
};
|
|
263
|
+
path?: never;
|
|
264
|
+
query?: never;
|
|
265
|
+
url: "/api/interviews";
|
|
266
|
+
};
|
|
267
|
+
export type InterviewsControllerCreateResponses = {
|
|
268
|
+
/**
|
|
269
|
+
* Response for interview creation
|
|
270
|
+
*/
|
|
271
|
+
200: CreatedInterviewsResponse;
|
|
272
|
+
};
|
|
273
|
+
export type InterviewsControllerCreateResponse = InterviewsControllerCreateResponses[keyof InterviewsControllerCreateResponses];
|
|
274
|
+
export type InterviewsControllerGetOneData = {
|
|
275
|
+
body?: never;
|
|
276
|
+
path: {
|
|
277
|
+
/**
|
|
278
|
+
* UUID identifier
|
|
279
|
+
*/
|
|
280
|
+
id: string;
|
|
281
|
+
};
|
|
282
|
+
query?: never;
|
|
283
|
+
url: "/api/interviews/{id}";
|
|
284
|
+
};
|
|
285
|
+
export type InterviewsControllerGetOneResponses = {
|
|
286
|
+
/**
|
|
287
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
288
|
+
*/
|
|
289
|
+
200: InterviewSchema;
|
|
290
|
+
};
|
|
291
|
+
export type InterviewsControllerGetOneResponse = InterviewsControllerGetOneResponses[keyof InterviewsControllerGetOneResponses];
|
|
292
|
+
export type InterviewsControllerUpdateData = {
|
|
293
|
+
/**
|
|
294
|
+
* UpdateInterviewSchema
|
|
295
|
+
*
|
|
296
|
+
* Schema for updating an interview definition. Recipient fields live on invitations and are updated via the invitations endpoints.
|
|
297
|
+
*/
|
|
298
|
+
body: {
|
|
299
|
+
title?: string;
|
|
300
|
+
prompt?: string;
|
|
301
|
+
intro?: string;
|
|
302
|
+
firstMessage?: string;
|
|
303
|
+
locale?: string;
|
|
304
|
+
maxMinutes?: number;
|
|
305
|
+
maxResponses?: number;
|
|
306
|
+
disableOrgSystemPrompt?: boolean;
|
|
307
|
+
voiceId?: string;
|
|
308
|
+
};
|
|
309
|
+
path: {
|
|
310
|
+
/**
|
|
311
|
+
* UUID identifier
|
|
312
|
+
*/
|
|
313
|
+
id: string;
|
|
314
|
+
};
|
|
315
|
+
query?: never;
|
|
316
|
+
url: "/api/interviews/{id}";
|
|
317
|
+
};
|
|
318
|
+
export type InterviewsControllerUpdateResponses = {
|
|
319
|
+
/**
|
|
320
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
321
|
+
*/
|
|
322
|
+
200: InterviewSchema;
|
|
323
|
+
};
|
|
324
|
+
export type InterviewsControllerUpdateResponse = InterviewsControllerUpdateResponses[keyof InterviewsControllerUpdateResponses];
|
|
325
|
+
export type InterviewsControllerRegenerateIntroData = {
|
|
326
|
+
body?: never;
|
|
327
|
+
path: {
|
|
328
|
+
/**
|
|
329
|
+
* UUID identifier
|
|
330
|
+
*/
|
|
331
|
+
id: string;
|
|
332
|
+
};
|
|
333
|
+
query?: never;
|
|
334
|
+
url: "/api/interviews/{id}/regenerate-intro";
|
|
335
|
+
};
|
|
336
|
+
export type InterviewsControllerRegenerateIntroResponses = {
|
|
337
|
+
/**
|
|
338
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
339
|
+
*/
|
|
340
|
+
200: InterviewSchema;
|
|
341
|
+
};
|
|
342
|
+
export type InterviewsControllerRegenerateIntroResponse = InterviewsControllerRegenerateIntroResponses[keyof InterviewsControllerRegenerateIntroResponses];
|
|
343
|
+
export type InterviewsControllerRegenerateFirstMessageData = {
|
|
344
|
+
body?: never;
|
|
345
|
+
path: {
|
|
346
|
+
/**
|
|
347
|
+
* UUID identifier
|
|
348
|
+
*/
|
|
349
|
+
id: string;
|
|
350
|
+
};
|
|
351
|
+
query?: never;
|
|
352
|
+
url: "/api/interviews/{id}/regenerate-first-message";
|
|
353
|
+
};
|
|
354
|
+
export type InterviewsControllerRegenerateFirstMessageResponses = {
|
|
355
|
+
/**
|
|
356
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
357
|
+
*/
|
|
358
|
+
200: InterviewSchema;
|
|
359
|
+
};
|
|
360
|
+
export type InterviewsControllerRegenerateFirstMessageResponse = InterviewsControllerRegenerateFirstMessageResponses[keyof InterviewsControllerRegenerateFirstMessageResponses];
|
|
361
|
+
export type InterviewsControllerArchiveData = {
|
|
362
|
+
body?: never;
|
|
363
|
+
path: {
|
|
364
|
+
/**
|
|
365
|
+
* UUID identifier
|
|
366
|
+
*/
|
|
367
|
+
id: string;
|
|
368
|
+
};
|
|
369
|
+
query?: never;
|
|
370
|
+
url: "/api/interviews/{id}/archive";
|
|
371
|
+
};
|
|
372
|
+
export type InterviewsControllerArchiveResponses = {
|
|
373
|
+
/**
|
|
374
|
+
* Response for archiving an interview
|
|
375
|
+
*/
|
|
376
|
+
200: ArchiveInterviewResponse;
|
|
377
|
+
};
|
|
378
|
+
export type InterviewsControllerArchiveResponse = InterviewsControllerArchiveResponses[keyof InterviewsControllerArchiveResponses];
|
|
379
|
+
export type InterviewsControllerRestoreData = {
|
|
380
|
+
body?: never;
|
|
381
|
+
path: {
|
|
382
|
+
/**
|
|
383
|
+
* UUID identifier
|
|
384
|
+
*/
|
|
385
|
+
id: string;
|
|
386
|
+
};
|
|
387
|
+
query?: never;
|
|
388
|
+
url: "/api/interviews/{id}/restore";
|
|
389
|
+
};
|
|
390
|
+
export type InterviewsControllerRestoreResponses = {
|
|
391
|
+
/**
|
|
392
|
+
* Response for restoring an archived interview
|
|
393
|
+
*/
|
|
394
|
+
200: RestoreInterviewResponse;
|
|
395
|
+
};
|
|
396
|
+
export type InterviewsControllerRestoreResponse = InterviewsControllerRestoreResponses[keyof InterviewsControllerRestoreResponses];
|
|
397
|
+
export type InterviewsControllerGetLogsData = {
|
|
398
|
+
body?: never;
|
|
399
|
+
path: {
|
|
400
|
+
/**
|
|
401
|
+
* UUID identifier
|
|
402
|
+
*/
|
|
403
|
+
id: string;
|
|
404
|
+
};
|
|
405
|
+
query?: never;
|
|
406
|
+
url: "/api/interviews/{id}/logs";
|
|
407
|
+
};
|
|
408
|
+
export type InterviewsControllerGetLogsResponses = {
|
|
409
|
+
/**
|
|
410
|
+
* Chronological history of events on an interview, most recent first.
|
|
411
|
+
*/
|
|
412
|
+
200: InterviewLogListSchema;
|
|
413
|
+
};
|
|
414
|
+
export type InterviewsControllerGetLogsResponse = InterviewsControllerGetLogsResponses[keyof InterviewsControllerGetLogsResponses];
|
|
415
|
+
export type InterviewInvitationsControllerListData = {
|
|
416
|
+
body?: never;
|
|
417
|
+
path: {
|
|
418
|
+
/**
|
|
419
|
+
* UUID identifier
|
|
420
|
+
*/
|
|
421
|
+
id: string;
|
|
422
|
+
};
|
|
423
|
+
query?: never;
|
|
424
|
+
url: "/api/interviews/{id}/invitations";
|
|
425
|
+
};
|
|
426
|
+
export type InterviewInvitationsControllerListResponses = {
|
|
427
|
+
/**
|
|
428
|
+
* List of interview invitations belonging to an interview.
|
|
429
|
+
*/
|
|
430
|
+
200: InterviewInvitationListSchema;
|
|
431
|
+
};
|
|
432
|
+
export type InterviewInvitationsControllerListResponse = InterviewInvitationsControllerListResponses[keyof InterviewInvitationsControllerListResponses];
|
|
433
|
+
export type InterviewInvitationsControllerCreateData = {
|
|
434
|
+
/**
|
|
435
|
+
* CreateInterviewInvitationSchema
|
|
436
|
+
*
|
|
437
|
+
* Optional invitee details for a new invitation. Every field is optional: with an empty body you get a blank, ready-to-share invitation whose link is `<app>/invitation/{slug}` (the `slug` is returned in the response). Providing name, email or phone only pre-fills the invitation, it is not sent here: deliver it with the send endpoint, or just share the link.
|
|
438
|
+
*/
|
|
439
|
+
body: {
|
|
440
|
+
name?: string;
|
|
441
|
+
email?: string;
|
|
442
|
+
phone?: string;
|
|
443
|
+
};
|
|
444
|
+
path: {
|
|
445
|
+
/**
|
|
446
|
+
* UUID identifier
|
|
447
|
+
*/
|
|
448
|
+
id: string;
|
|
449
|
+
};
|
|
450
|
+
query?: never;
|
|
451
|
+
url: "/api/interviews/{id}/invitations";
|
|
452
|
+
};
|
|
453
|
+
export type InterviewInvitationsControllerCreateResponses = {
|
|
454
|
+
/**
|
|
455
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
456
|
+
*/
|
|
457
|
+
200: InterviewInvitationSchema;
|
|
458
|
+
};
|
|
459
|
+
export type InterviewInvitationsControllerCreateResponse = InterviewInvitationsControllerCreateResponses[keyof InterviewInvitationsControllerCreateResponses];
|
|
460
|
+
export type InterviewInvitationsControllerCreateBulkData = {
|
|
461
|
+
/**
|
|
462
|
+
* CreateBulkInterviewInvitationsSchema
|
|
463
|
+
*
|
|
464
|
+
* Bulk create N interview invitations on an existing interview and dispatch each one by email or SMS right away. Each invitee row must carry an email or a phone.
|
|
465
|
+
*/
|
|
466
|
+
body: {
|
|
467
|
+
invitees: Array<{
|
|
468
|
+
name?: string;
|
|
469
|
+
email?: string;
|
|
470
|
+
phone?: string;
|
|
471
|
+
}>;
|
|
472
|
+
};
|
|
473
|
+
path: {
|
|
474
|
+
/**
|
|
475
|
+
* UUID identifier
|
|
476
|
+
*/
|
|
477
|
+
id: string;
|
|
478
|
+
};
|
|
479
|
+
query?: never;
|
|
480
|
+
url: "/api/interviews/{id}/invitations/bulk";
|
|
481
|
+
};
|
|
482
|
+
export type InterviewInvitationsControllerCreateBulkResponses = {
|
|
483
|
+
/**
|
|
484
|
+
* List of interview invitations belonging to an interview.
|
|
485
|
+
*/
|
|
486
|
+
200: InterviewInvitationListSchema;
|
|
487
|
+
};
|
|
488
|
+
export type InterviewInvitationsControllerCreateBulkResponse = InterviewInvitationsControllerCreateBulkResponses[keyof InterviewInvitationsControllerCreateBulkResponses];
|
|
489
|
+
export type InterviewInvitationsControllerGetOneData = {
|
|
490
|
+
body?: never;
|
|
491
|
+
path: {
|
|
492
|
+
/**
|
|
493
|
+
* Interview invitation UUID
|
|
494
|
+
*/
|
|
495
|
+
invitationId: string;
|
|
496
|
+
};
|
|
497
|
+
query?: never;
|
|
498
|
+
url: "/api/invitations/{invitationId}";
|
|
499
|
+
};
|
|
500
|
+
export type InterviewInvitationsControllerGetOneResponses = {
|
|
501
|
+
/**
|
|
502
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
503
|
+
*/
|
|
504
|
+
200: InterviewInvitationSchema;
|
|
505
|
+
};
|
|
506
|
+
export type InterviewInvitationsControllerGetOneResponse = InterviewInvitationsControllerGetOneResponses[keyof InterviewInvitationsControllerGetOneResponses];
|
|
507
|
+
export type InterviewInvitationsControllerUpdateData = {
|
|
508
|
+
/**
|
|
509
|
+
* UpdateInterviewInvitationSchema
|
|
510
|
+
*
|
|
511
|
+
* Schema for updating the invitee display name on an interview invitation. The recipient email and phone cannot be changed here: they are set when sending (see the send endpoint), so contact details are never altered without dispatching the invitation.
|
|
512
|
+
*/
|
|
513
|
+
body: {
|
|
514
|
+
name?: string | null;
|
|
515
|
+
};
|
|
516
|
+
path: {
|
|
517
|
+
/**
|
|
518
|
+
* Interview invitation UUID
|
|
519
|
+
*/
|
|
520
|
+
invitationId: string;
|
|
521
|
+
};
|
|
522
|
+
query?: never;
|
|
523
|
+
url: "/api/invitations/{invitationId}";
|
|
524
|
+
};
|
|
525
|
+
export type InterviewInvitationsControllerUpdateResponses = {
|
|
526
|
+
/**
|
|
527
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
528
|
+
*/
|
|
529
|
+
200: InterviewInvitationSchema;
|
|
530
|
+
};
|
|
531
|
+
export type InterviewInvitationsControllerUpdateResponse = InterviewInvitationsControllerUpdateResponses[keyof InterviewInvitationsControllerUpdateResponses];
|
|
532
|
+
export type InterviewInvitationsControllerSendData = {
|
|
533
|
+
/**
|
|
534
|
+
* SendInterviewInvitationSchema
|
|
535
|
+
*
|
|
536
|
+
* Schema for sending an interview invitation by email or SMS. At least one of email or phone must be provided.
|
|
537
|
+
*/
|
|
538
|
+
body: {
|
|
539
|
+
email?: string;
|
|
540
|
+
phone?: string;
|
|
541
|
+
};
|
|
542
|
+
path: {
|
|
543
|
+
/**
|
|
544
|
+
* Interview invitation UUID
|
|
545
|
+
*/
|
|
546
|
+
invitationId: string;
|
|
547
|
+
};
|
|
548
|
+
query?: never;
|
|
549
|
+
url: "/api/invitations/{invitationId}/send";
|
|
550
|
+
};
|
|
551
|
+
export type InterviewInvitationsControllerSendResponses = {
|
|
552
|
+
/**
|
|
553
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
554
|
+
*/
|
|
555
|
+
200: InterviewInvitationSchema;
|
|
556
|
+
};
|
|
557
|
+
export type InterviewInvitationsControllerSendResponse = InterviewInvitationsControllerSendResponses[keyof InterviewInvitationsControllerSendResponses];
|
|
558
|
+
export type InterviewInvitationsControllerCancelData = {
|
|
559
|
+
body?: never;
|
|
560
|
+
path: {
|
|
561
|
+
/**
|
|
562
|
+
* Interview invitation UUID
|
|
563
|
+
*/
|
|
564
|
+
invitationId: string;
|
|
565
|
+
};
|
|
566
|
+
query?: never;
|
|
567
|
+
url: "/api/invitations/{invitationId}/cancel";
|
|
568
|
+
};
|
|
569
|
+
export type InterviewInvitationsControllerCancelResponses = {
|
|
570
|
+
/**
|
|
571
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
572
|
+
*/
|
|
573
|
+
200: InterviewInvitationSchema;
|
|
574
|
+
};
|
|
575
|
+
export type InterviewInvitationsControllerCancelResponse = InterviewInvitationsControllerCancelResponses[keyof InterviewInvitationsControllerCancelResponses];
|
|
576
|
+
export type InterviewInvitationsControllerReactivateData = {
|
|
577
|
+
body?: never;
|
|
578
|
+
path: {
|
|
579
|
+
/**
|
|
580
|
+
* Interview invitation UUID
|
|
581
|
+
*/
|
|
582
|
+
invitationId: string;
|
|
583
|
+
};
|
|
584
|
+
query?: never;
|
|
585
|
+
url: "/api/invitations/{invitationId}/reactivate";
|
|
586
|
+
};
|
|
587
|
+
export type InterviewInvitationsControllerReactivateResponses = {
|
|
588
|
+
/**
|
|
589
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
590
|
+
*/
|
|
591
|
+
200: InterviewInvitationSchema;
|
|
592
|
+
};
|
|
593
|
+
export type InterviewInvitationsControllerReactivateResponse = InterviewInvitationsControllerReactivateResponses[keyof InterviewInvitationsControllerReactivateResponses];
|
|
594
|
+
export type InterviewInvitationsControllerArchiveData = {
|
|
595
|
+
body?: never;
|
|
596
|
+
path: {
|
|
597
|
+
/**
|
|
598
|
+
* Interview invitation UUID
|
|
599
|
+
*/
|
|
600
|
+
invitationId: string;
|
|
601
|
+
};
|
|
602
|
+
query?: never;
|
|
603
|
+
url: "/api/invitations/{invitationId}/archive";
|
|
604
|
+
};
|
|
605
|
+
export type InterviewInvitationsControllerArchiveResponses = {
|
|
606
|
+
/**
|
|
607
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
608
|
+
*/
|
|
609
|
+
200: InterviewInvitationSchema;
|
|
610
|
+
};
|
|
611
|
+
export type InterviewInvitationsControllerArchiveResponse = InterviewInvitationsControllerArchiveResponses[keyof InterviewInvitationsControllerArchiveResponses];
|
|
612
|
+
export type InterviewInvitationsControllerRestoreData = {
|
|
613
|
+
body?: never;
|
|
614
|
+
path: {
|
|
615
|
+
/**
|
|
616
|
+
* Interview invitation UUID
|
|
617
|
+
*/
|
|
618
|
+
invitationId: string;
|
|
619
|
+
};
|
|
620
|
+
query?: never;
|
|
621
|
+
url: "/api/invitations/{invitationId}/restore";
|
|
622
|
+
};
|
|
623
|
+
export type InterviewInvitationsControllerRestoreResponses = {
|
|
624
|
+
/**
|
|
625
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
626
|
+
*/
|
|
627
|
+
200: InterviewInvitationSchema;
|
|
628
|
+
};
|
|
629
|
+
export type InterviewInvitationsControllerRestoreResponse = InterviewInvitationsControllerRestoreResponses[keyof InterviewInvitationsControllerRestoreResponses];
|
|
630
|
+
export type InterviewInvitationsControllerGetLogsData = {
|
|
631
|
+
body?: never;
|
|
632
|
+
path: {
|
|
633
|
+
/**
|
|
634
|
+
* Interview invitation UUID
|
|
635
|
+
*/
|
|
636
|
+
invitationId: string;
|
|
637
|
+
};
|
|
638
|
+
query?: never;
|
|
639
|
+
url: "/api/invitations/{invitationId}/logs";
|
|
640
|
+
};
|
|
641
|
+
export type InterviewInvitationsControllerGetLogsResponses = {
|
|
642
|
+
/**
|
|
643
|
+
* Chronological history of events on an interview, most recent first.
|
|
644
|
+
*/
|
|
645
|
+
200: InterviewLogListSchema;
|
|
646
|
+
};
|
|
647
|
+
export type InterviewInvitationsControllerGetLogsResponse = InterviewInvitationsControllerGetLogsResponses[keyof InterviewInvitationsControllerGetLogsResponses];
|
|
648
|
+
export type InterviewInvitationsControllerGetMessageAudioUrlData = {
|
|
649
|
+
body?: never;
|
|
650
|
+
path: {
|
|
651
|
+
/**
|
|
652
|
+
* Interview message UUID
|
|
653
|
+
*/
|
|
654
|
+
messageId: string;
|
|
655
|
+
/**
|
|
656
|
+
* Interview invitation UUID
|
|
657
|
+
*/
|
|
658
|
+
invitationId: string;
|
|
659
|
+
};
|
|
660
|
+
query?: never;
|
|
661
|
+
url: "/api/invitations/{invitationId}/messages/{messageId}/audio-url";
|
|
662
|
+
};
|
|
663
|
+
export type InterviewInvitationsControllerGetMessageAudioUrlResponses = {
|
|
664
|
+
/**
|
|
665
|
+
* Short-lived presigned URL for the audio attached to an interview message.
|
|
666
|
+
*/
|
|
667
|
+
200: InterviewMessageAudioUrlSchema;
|
|
668
|
+
};
|
|
669
|
+
export type InterviewInvitationsControllerGetMessageAudioUrlResponse = InterviewInvitationsControllerGetMessageAudioUrlResponses[keyof InterviewInvitationsControllerGetMessageAudioUrlResponses];
|
|
670
|
+
export type VoicesControllerListData = {
|
|
671
|
+
body?: never;
|
|
672
|
+
path?: never;
|
|
673
|
+
query?: {
|
|
674
|
+
/**
|
|
675
|
+
* ISO 639-1 code to filter voices by. Voices flagged as "all" are always included.
|
|
676
|
+
*/
|
|
677
|
+
language?: string;
|
|
678
|
+
};
|
|
679
|
+
url: "/api/voices";
|
|
680
|
+
};
|
|
681
|
+
export type VoicesControllerListResponses = {
|
|
682
|
+
/**
|
|
683
|
+
* List of voices matching the requested language filter.
|
|
684
|
+
*/
|
|
685
|
+
200: VoiceListSchema;
|
|
686
|
+
};
|
|
687
|
+
export type VoicesControllerListResponse = VoicesControllerListResponses[keyof VoicesControllerListResponses];
|
|
688
|
+
export type VoicesControllerGetTestAudioUrlData = {
|
|
689
|
+
body?: never;
|
|
690
|
+
path: {
|
|
691
|
+
/**
|
|
692
|
+
* Voice UUID
|
|
693
|
+
*/
|
|
694
|
+
id: string;
|
|
695
|
+
};
|
|
696
|
+
query?: never;
|
|
697
|
+
url: "/api/voices/{id}/test-audio-url";
|
|
698
|
+
};
|
|
699
|
+
export type VoicesControllerGetTestAudioUrlResponses = {
|
|
700
|
+
/**
|
|
701
|
+
* Short-lived presigned URL for the voice preview audio. Generated on first request if missing.
|
|
702
|
+
*/
|
|
703
|
+
200: VoiceTestAudioUrlSchema;
|
|
704
|
+
};
|
|
705
|
+
export type VoicesControllerGetTestAudioUrlResponse = VoicesControllerGetTestAudioUrlResponses[keyof VoicesControllerGetTestAudioUrlResponses];
|