@bitbitpress/client 1.1.3 → 1.2.2
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 +8 -152
- package/dist/generated/openapi.d.ts +802 -314
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react/index.d.ts +76 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +122 -3
- package/dist/react/index.js.map +1 -1
- package/dist/react-native-expo/BitBitPiece.d.ts +64 -0
- package/dist/react-native-expo/BitBitPiece.d.ts.map +1 -0
- package/dist/react-native-expo/BitBitPiece.js +164 -0
- package/dist/react-native-expo/BitBitPiece.js.map +1 -0
- package/dist/react-native-expo/BitBitView.d.ts.map +1 -1
- package/dist/react-native-expo/BitBitView.js +21 -2
- package/dist/react-native-expo/BitBitView.js.map +1 -1
- package/dist/react-native-expo/bootstrapHtml.d.ts +13 -0
- package/dist/react-native-expo/bootstrapHtml.d.ts.map +1 -1
- package/dist/react-native-expo/bootstrapHtml.js +108 -12
- package/dist/react-native-expo/bootstrapHtml.js.map +1 -1
- package/dist/react-native-expo/index.d.ts +1 -0
- package/dist/react-native-expo/index.d.ts.map +1 -1
- package/dist/react-native-expo/index.js +1 -0
- package/dist/react-native-expo/index.js.map +1 -1
- package/dist/runtime/index.d.ts +32 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +68 -2
- package/dist/runtime/index.js.map +1 -1
- package/dist/studio/BitBitMobilePreview.d.ts +33 -0
- package/dist/studio/BitBitMobilePreview.d.ts.map +1 -0
- package/dist/studio/BitBitMobilePreview.js +120 -0
- package/dist/studio/BitBitMobilePreview.js.map +1 -0
- package/dist/studio/index.d.ts +7 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +7 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/synthesisUi/types.d.ts +3 -0
- package/dist/synthesisUi/types.d.ts.map +1 -1
- package/dist/user/index.d.ts +42 -19
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +8 -3
- package/dist/user/index.js.map +1 -1
- package/dist/user/profile.d.ts +2 -2
- package/dist/user/profile.js +2 -2
- package/dist/user/submissions.d.ts +0 -21
- package/dist/user/submissions.d.ts.map +1 -1
- package/dist/user/submissions.js +0 -39
- package/dist/user/submissions.js.map +1 -1
- package/dist/user/synthesisOutputTts.d.ts +21 -0
- package/dist/user/synthesisOutputTts.d.ts.map +1 -0
- package/dist/user/synthesisOutputTts.js +32 -0
- package/dist/user/synthesisOutputTts.js.map +1 -0
- package/dist/user/synthesisPiece.d.ts +38 -0
- package/dist/user/synthesisPiece.d.ts.map +1 -0
- package/dist/user/synthesisPiece.js +58 -0
- package/dist/user/synthesisPiece.js.map +1 -0
- package/dist/user/track-batch-manager.d.ts +10 -4
- package/dist/user/track-batch-manager.d.ts.map +1 -1
- package/dist/user/track-batch-manager.js +6 -5
- package/dist/user/track-batch-manager.js.map +1 -1
- package/dist/user/track.d.ts +9 -0
- package/dist/user/track.d.ts.map +1 -1
- package/dist/user/track.js +17 -0
- package/dist/user/track.js.map +1 -1
- package/package.json +5 -1
|
@@ -4,6 +4,86 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
export interface paths {
|
|
7
|
+
"/v1/auth/magic-link": {
|
|
8
|
+
parameters: {
|
|
9
|
+
query?: never;
|
|
10
|
+
header?: never;
|
|
11
|
+
path?: never;
|
|
12
|
+
cookie?: never;
|
|
13
|
+
};
|
|
14
|
+
get?: never;
|
|
15
|
+
put?: never;
|
|
16
|
+
/**
|
|
17
|
+
* Auth - Send Magic Link
|
|
18
|
+
* @description **POST** `/v1/auth/magic-link`
|
|
19
|
+
*
|
|
20
|
+
* Send a one-time sign-in link by email. The callback must be registered for the supplied client. The token in the link is exchanged through `POST /v1/auth/token`.
|
|
21
|
+
*/
|
|
22
|
+
post: {
|
|
23
|
+
parameters: {
|
|
24
|
+
query?: never;
|
|
25
|
+
header?: never;
|
|
26
|
+
path?: never;
|
|
27
|
+
cookie?: never;
|
|
28
|
+
};
|
|
29
|
+
requestBody: {
|
|
30
|
+
content: {
|
|
31
|
+
"application/json": {
|
|
32
|
+
email: string;
|
|
33
|
+
/** @description Public identifier of the app requesting the sign-in link */
|
|
34
|
+
clientId: string;
|
|
35
|
+
/** @description Registered callback URL. Optional when the client has a default callback. */
|
|
36
|
+
redirectUri?: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
responses: {
|
|
41
|
+
/** @description Default Response */
|
|
42
|
+
200: {
|
|
43
|
+
headers: {
|
|
44
|
+
[name: string]: unknown;
|
|
45
|
+
};
|
|
46
|
+
content: {
|
|
47
|
+
"application/json": {
|
|
48
|
+
/** @example true */
|
|
49
|
+
success: boolean;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/** @description Bad request - missing or invalid parameters */
|
|
54
|
+
400: {
|
|
55
|
+
headers: {
|
|
56
|
+
[name: string]: unknown;
|
|
57
|
+
};
|
|
58
|
+
content: {
|
|
59
|
+
"application/json": {
|
|
60
|
+
/** @example Bad request */
|
|
61
|
+
error?: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/** @description Internal server error */
|
|
66
|
+
500: {
|
|
67
|
+
headers: {
|
|
68
|
+
[name: string]: unknown;
|
|
69
|
+
};
|
|
70
|
+
content: {
|
|
71
|
+
"application/json": {
|
|
72
|
+
/** @example false */
|
|
73
|
+
success?: boolean;
|
|
74
|
+
/** @example Internal server error: An unknown error occurred */
|
|
75
|
+
error?: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
delete?: never;
|
|
82
|
+
options?: never;
|
|
83
|
+
head?: never;
|
|
84
|
+
patch?: never;
|
|
85
|
+
trace?: never;
|
|
86
|
+
};
|
|
7
87
|
"/v1/auth/token": {
|
|
8
88
|
parameters: {
|
|
9
89
|
query?: never;
|
|
@@ -93,6 +173,21 @@ export interface paths {
|
|
|
93
173
|
};
|
|
94
174
|
};
|
|
95
175
|
};
|
|
176
|
+
/** @description Forbidden errors */
|
|
177
|
+
403: {
|
|
178
|
+
headers: {
|
|
179
|
+
[name: string]: unknown;
|
|
180
|
+
};
|
|
181
|
+
content: {
|
|
182
|
+
"application/json": {
|
|
183
|
+
/**
|
|
184
|
+
* @example Forbidden: Subscription required
|
|
185
|
+
* @enum {string}
|
|
186
|
+
*/
|
|
187
|
+
error: "Forbidden: Subscription required";
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
};
|
|
96
191
|
/** @description Internal server error */
|
|
97
192
|
500: {
|
|
98
193
|
headers: {
|
|
@@ -195,6 +290,21 @@ export interface paths {
|
|
|
195
290
|
};
|
|
196
291
|
};
|
|
197
292
|
};
|
|
293
|
+
/** @description Forbidden errors */
|
|
294
|
+
403: {
|
|
295
|
+
headers: {
|
|
296
|
+
[name: string]: unknown;
|
|
297
|
+
};
|
|
298
|
+
content: {
|
|
299
|
+
"application/json": {
|
|
300
|
+
/**
|
|
301
|
+
* @example Forbidden: Subscription required
|
|
302
|
+
* @enum {string}
|
|
303
|
+
*/
|
|
304
|
+
error: "Forbidden: Subscription required";
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
};
|
|
198
308
|
/** @description Internal server error */
|
|
199
309
|
500: {
|
|
200
310
|
headers: {
|
|
@@ -288,6 +398,21 @@ export interface paths {
|
|
|
288
398
|
};
|
|
289
399
|
};
|
|
290
400
|
};
|
|
401
|
+
/** @description Forbidden errors */
|
|
402
|
+
403: {
|
|
403
|
+
headers: {
|
|
404
|
+
[name: string]: unknown;
|
|
405
|
+
};
|
|
406
|
+
content: {
|
|
407
|
+
"application/json": {
|
|
408
|
+
/**
|
|
409
|
+
* @example Forbidden: Subscription required
|
|
410
|
+
* @enum {string}
|
|
411
|
+
*/
|
|
412
|
+
error: "Forbidden: Subscription required";
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
};
|
|
291
416
|
/** @description Internal server error */
|
|
292
417
|
500: {
|
|
293
418
|
headers: {
|
|
@@ -414,6 +539,21 @@ export interface paths {
|
|
|
414
539
|
};
|
|
415
540
|
};
|
|
416
541
|
};
|
|
542
|
+
/** @description Forbidden errors */
|
|
543
|
+
403: {
|
|
544
|
+
headers: {
|
|
545
|
+
[name: string]: unknown;
|
|
546
|
+
};
|
|
547
|
+
content: {
|
|
548
|
+
"application/json": {
|
|
549
|
+
/**
|
|
550
|
+
* @example Forbidden: Subscription required
|
|
551
|
+
* @enum {string}
|
|
552
|
+
*/
|
|
553
|
+
error: "Forbidden: Subscription required";
|
|
554
|
+
};
|
|
555
|
+
};
|
|
556
|
+
};
|
|
417
557
|
/** @description Internal server error */
|
|
418
558
|
500: {
|
|
419
559
|
headers: {
|
|
@@ -510,6 +650,21 @@ export interface paths {
|
|
|
510
650
|
};
|
|
511
651
|
};
|
|
512
652
|
};
|
|
653
|
+
/** @description Forbidden errors */
|
|
654
|
+
403: {
|
|
655
|
+
headers: {
|
|
656
|
+
[name: string]: unknown;
|
|
657
|
+
};
|
|
658
|
+
content: {
|
|
659
|
+
"application/json": {
|
|
660
|
+
/**
|
|
661
|
+
* @example Forbidden: Subscription required
|
|
662
|
+
* @enum {string}
|
|
663
|
+
*/
|
|
664
|
+
error: "Forbidden: Subscription required";
|
|
665
|
+
};
|
|
666
|
+
};
|
|
667
|
+
};
|
|
513
668
|
/** @description Internal server error */
|
|
514
669
|
500: {
|
|
515
670
|
headers: {
|
|
@@ -629,6 +784,21 @@ export interface paths {
|
|
|
629
784
|
};
|
|
630
785
|
};
|
|
631
786
|
};
|
|
787
|
+
/** @description Forbidden errors */
|
|
788
|
+
403: {
|
|
789
|
+
headers: {
|
|
790
|
+
[name: string]: unknown;
|
|
791
|
+
};
|
|
792
|
+
content: {
|
|
793
|
+
"application/json": {
|
|
794
|
+
/**
|
|
795
|
+
* @example Forbidden: Subscription required
|
|
796
|
+
* @enum {string}
|
|
797
|
+
*/
|
|
798
|
+
error: "Forbidden: Subscription required";
|
|
799
|
+
};
|
|
800
|
+
};
|
|
801
|
+
};
|
|
632
802
|
/** @description Internal server error */
|
|
633
803
|
500: {
|
|
634
804
|
headers: {
|
|
@@ -745,6 +915,21 @@ export interface paths {
|
|
|
745
915
|
};
|
|
746
916
|
};
|
|
747
917
|
};
|
|
918
|
+
/** @description Forbidden errors */
|
|
919
|
+
403: {
|
|
920
|
+
headers: {
|
|
921
|
+
[name: string]: unknown;
|
|
922
|
+
};
|
|
923
|
+
content: {
|
|
924
|
+
"application/json": {
|
|
925
|
+
/**
|
|
926
|
+
* @example Forbidden: Subscription required
|
|
927
|
+
* @enum {string}
|
|
928
|
+
*/
|
|
929
|
+
error: "Forbidden: Subscription required";
|
|
930
|
+
};
|
|
931
|
+
};
|
|
932
|
+
};
|
|
748
933
|
/** @description Internal server error */
|
|
749
934
|
500: {
|
|
750
935
|
headers: {
|
|
@@ -767,7 +952,7 @@ export interface paths {
|
|
|
767
952
|
patch?: never;
|
|
768
953
|
trace?: never;
|
|
769
954
|
};
|
|
770
|
-
"/v1/user/
|
|
955
|
+
"/v1/user/piece-events": {
|
|
771
956
|
parameters: {
|
|
772
957
|
query?: never;
|
|
773
958
|
header?: never;
|
|
@@ -777,10 +962,8 @@ export interface paths {
|
|
|
777
962
|
get?: never;
|
|
778
963
|
put?: never;
|
|
779
964
|
/**
|
|
780
|
-
* Synthesis -
|
|
781
|
-
* @description **POST** `/v1/user/
|
|
782
|
-
*
|
|
783
|
-
* Synthesize content items personalized to the user.
|
|
965
|
+
* Synthesis - Record Piece Events
|
|
966
|
+
* @description **POST** `/v1/user/piece-events` Records behavioral events (views, clicks) for a SynthesisPiece embed, addressed by the piece's `keyName`. Batched by the SDK; powers per-piece engagement. Distinct from `/v1/user/events` (SynthesisUIs) so a keyName shared across the two entity namespaces is never misattributed.
|
|
784
967
|
*/
|
|
785
968
|
post: {
|
|
786
969
|
parameters: {
|
|
@@ -795,73 +978,45 @@ export interface paths {
|
|
|
795
978
|
requestBody: {
|
|
796
979
|
content: {
|
|
797
980
|
"application/json": {
|
|
798
|
-
/** @description
|
|
799
|
-
|
|
800
|
-
/** @description
|
|
801
|
-
|
|
802
|
-
/**
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
/** @description
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
* @description Type of input: externalId (article) or text (freeform).
|
|
813
|
-
* @enum {string}
|
|
814
|
-
*/
|
|
815
|
-
type: "externalId" | "text" | "excludeExternalIds";
|
|
816
|
-
/** @description External ID (e.g. article) for externalId, freeform text for text, or comma-separated list of external IDs to exclude */
|
|
817
|
-
value: string;
|
|
818
|
-
}[];
|
|
819
|
-
/** @description Optional output definition. Omit to use the output schema declared on the config named by `configurationKeyName` (`output.outputSchema`). */
|
|
820
|
-
output?: {
|
|
821
|
-
/** @description Output schema as a JSON string. Top-level type must be "object". Supports object, string, number, boolean, array, and enum. Example: {"type":"object","properties":{"title":{"type":"string","description":"title"},"status":{"type":"string","enum":["draft","published"]}}} */
|
|
822
|
-
schema: string;
|
|
981
|
+
/** @description Events to record. */
|
|
982
|
+
events: {
|
|
983
|
+
/** @description The piece's load id (`<BitBitPiece keyName>`) the event belongs to. */
|
|
984
|
+
keyName: string;
|
|
985
|
+
/**
|
|
986
|
+
* @description VIEW (the piece was shown) or CLICK (a tracked interaction).
|
|
987
|
+
* @enum {string}
|
|
988
|
+
*/
|
|
989
|
+
type: "VIEW" | "CLICK";
|
|
990
|
+
/** @description For CLICK: the human-readable action name. Omit for VIEW. */
|
|
991
|
+
name?: string;
|
|
992
|
+
/** @description Arbitrary event properties (retained for analytics drill-down). */
|
|
993
|
+
payload?: {
|
|
994
|
+
[key: string]: unknown;
|
|
823
995
|
};
|
|
996
|
+
/** @description ISO timestamp the event occurred; defaults to server time. */
|
|
997
|
+
occurredAt?: string;
|
|
824
998
|
}[];
|
|
825
999
|
};
|
|
826
1000
|
};
|
|
827
1001
|
};
|
|
828
1002
|
responses: {
|
|
829
|
-
/**
|
|
830
|
-
* @description Streaming response (Server-Sent Events). Each event is a JSON object sent as `data: {JSON}\n\n`.
|
|
831
|
-
*
|
|
832
|
-
* **Connection Events:**
|
|
833
|
-
* ```json
|
|
834
|
-
* {"type":"connected" | "complete"}
|
|
835
|
-
* ```
|
|
836
|
-
*
|
|
837
|
-
* **Data Events (success):**
|
|
838
|
-
* ```json
|
|
839
|
-
* {
|
|
840
|
-
* "index": number,
|
|
841
|
-
* "data": {...},
|
|
842
|
-
* "synthesisHistory"?: [{...}, ...],
|
|
843
|
-
* "complete": false | true
|
|
844
|
-
* }
|
|
845
|
-
* ```
|
|
846
|
-
* `data` is always a single synthesized object (keys match your output schema). `complete` is `false` for partial streaming updates and `true` for the final validated payload.
|
|
847
|
-
*
|
|
848
|
-
* When `synthesisHistoryLimit > 0`, the final event additionally includes `synthesisHistoryEntries`: an array of up to N entries (most-recent first), each `{ synthesisOutputId, data }`, so a client can attach submissions (e.g. poll votes) to a specific historical output. The first entry is the current synthesis itself — the raw payload `data` is derived from (identical to `data` when reranking isn't configured; the unreranked source when it is) — and the remaining entries are older stored rows. A DEPRECATED `synthesisHistory` field (index-aligned bare `data` payloads) is also included for older app builds. The primary `data` field stays a single object — when user reranking is configured, it is built by pooling items at the reranking field across the fetched rows and scoring against the user profile.
|
|
849
|
-
*
|
|
850
|
-
* **Data Events (error):**
|
|
851
|
-
* ```json
|
|
852
|
-
* {
|
|
853
|
-
* "index": number,
|
|
854
|
-
* "error": "error message"
|
|
855
|
-
* }
|
|
856
|
-
* ```
|
|
857
|
-
* Sent when synthesis fails for that item (e.g. resolve failure, exception).
|
|
858
|
-
*/
|
|
1003
|
+
/** @description Events recorded */
|
|
859
1004
|
200: {
|
|
860
1005
|
headers: {
|
|
861
1006
|
[name: string]: unknown;
|
|
862
1007
|
};
|
|
863
1008
|
content: {
|
|
864
|
-
"application/json":
|
|
1009
|
+
"application/json": {
|
|
1010
|
+
/** @example true */
|
|
1011
|
+
success: boolean;
|
|
1012
|
+
data: {
|
|
1013
|
+
/**
|
|
1014
|
+
* @description Whether any event resolved to a known piece and was recorded.
|
|
1015
|
+
* @example true
|
|
1016
|
+
*/
|
|
1017
|
+
recorded: boolean;
|
|
1018
|
+
};
|
|
1019
|
+
};
|
|
865
1020
|
};
|
|
866
1021
|
};
|
|
867
1022
|
/** @description Bad request - missing or invalid parameters */
|
|
@@ -913,7 +1068,7 @@ export interface paths {
|
|
|
913
1068
|
patch?: never;
|
|
914
1069
|
trace?: never;
|
|
915
1070
|
};
|
|
916
|
-
"/v1/user/synthesize
|
|
1071
|
+
"/v1/user/synthesize": {
|
|
917
1072
|
parameters: {
|
|
918
1073
|
query?: never;
|
|
919
1074
|
header?: never;
|
|
@@ -923,12 +1078,10 @@ export interface paths {
|
|
|
923
1078
|
get?: never;
|
|
924
1079
|
put?: never;
|
|
925
1080
|
/**
|
|
926
|
-
* Synthesis - Synthesize
|
|
927
|
-
* @description **POST** `/v1/user/synthesize
|
|
928
|
-
*
|
|
929
|
-
* Resolve one or more generated UIs in a single request, each identified by its `keyName`. Works exactly like `/v1/user/synthesize` — same per-item synthesis inputs (`inputs`, `output.schema`, `searchOptionsOverrides`, `synthesisHistoryLimit`) and the same personalized, streamed `data` — except it additionally returns the UI code bundle to render that data. The synthesis runs against the config attached to each UI.
|
|
1081
|
+
* Synthesis - Synthesize Content
|
|
1082
|
+
* @description **POST** `/v1/user/synthesize`
|
|
930
1083
|
*
|
|
931
|
-
*
|
|
1084
|
+
* Synthesize content items personalized to the user.
|
|
932
1085
|
*/
|
|
933
1086
|
post: {
|
|
934
1087
|
parameters: {
|
|
@@ -943,16 +1096,179 @@ export interface paths {
|
|
|
943
1096
|
requestBody: {
|
|
944
1097
|
content: {
|
|
945
1098
|
"application/json": {
|
|
946
|
-
/**
|
|
947
|
-
* @description Target platform for the bundles, for the whole request. Defaults to `web`.
|
|
948
|
-
* @enum {string}
|
|
949
|
-
*/
|
|
950
|
-
platform?: "web" | "mobile";
|
|
951
|
-
/** @description UIs to resolve in this request. */
|
|
1099
|
+
/** @description Array of items to synthesize. Each item has inputs and output; optional configurationKeyName to use a named config (omit for default). */
|
|
952
1100
|
items: {
|
|
953
|
-
/** @description
|
|
954
|
-
|
|
955
|
-
/** @description How many recent stored synthesis outputs to expose in the streamed `synthesisHistory` / `synthesisHistoryEntries` fields. Defaults to 0.
|
|
1101
|
+
/** @description Optional configuration key name. Loads an existing synthesis config by this name; omit for default configuration. */
|
|
1102
|
+
configurationKeyName?: string;
|
|
1103
|
+
/** @description How many recent stored synthesis outputs to expose in the streamed `synthesisHistory` / `synthesisHistoryEntries` fields. Defaults to 0 (no history emitted). When > 0, the final data event includes a `synthesisHistoryEntries` array of up to N `{ synthesisOutputId, data }` (most-recent first; each row's payload paired with its output id, so submissions can attach to a specific historical output), and — DEPRECATED, for older app builds — an index-aligned `synthesisHistory` array of the same bare `data` payloads. The first entry is the current synthesis itself — the same payload `data` is derived from — and the remaining entries are older stored rows. */
|
|
1104
|
+
synthesisHistoryLimit?: number;
|
|
1105
|
+
/** @description Per-request overrides for search options. */
|
|
1106
|
+
searchOptionsOverrides?: {
|
|
1107
|
+
/** @description Override for search lookback window in minutes (e.g. 1440 for last 24 hours). */
|
|
1108
|
+
lookbackMinutes?: number;
|
|
1109
|
+
};
|
|
1110
|
+
/** @description Inputs used as context for the synthesis: externalId (article ID), or text (freeform text). */
|
|
1111
|
+
inputs?: {
|
|
1112
|
+
/**
|
|
1113
|
+
* @description Type of input: externalId (article) or text (freeform).
|
|
1114
|
+
* @enum {string}
|
|
1115
|
+
*/
|
|
1116
|
+
type: "externalId" | "text" | "excludeExternalIds";
|
|
1117
|
+
/** @description External ID (e.g. article) for externalId, freeform text for text, or comma-separated list of external IDs to exclude */
|
|
1118
|
+
value: string;
|
|
1119
|
+
}[];
|
|
1120
|
+
/** @description Optional output definition. Omit to use the output schema declared on the config named by `configurationKeyName` (`output.outputSchema`). */
|
|
1121
|
+
output?: {
|
|
1122
|
+
/** @description Output schema as a JSON string. Top-level type must be "object". Supports object, string, number, boolean, array, and enum. Example: {"type":"object","properties":{"title":{"type":"string","description":"title"},"status":{"type":"string","enum":["draft","published"]}}} */
|
|
1123
|
+
schema: string;
|
|
1124
|
+
};
|
|
1125
|
+
}[];
|
|
1126
|
+
};
|
|
1127
|
+
};
|
|
1128
|
+
};
|
|
1129
|
+
responses: {
|
|
1130
|
+
/**
|
|
1131
|
+
* @description Streaming response (Server-Sent Events). Each event is a JSON object sent as `data: {JSON}\n\n`.
|
|
1132
|
+
*
|
|
1133
|
+
* **Connection Events:**
|
|
1134
|
+
* ```json
|
|
1135
|
+
* {"type":"connected" | "complete"}
|
|
1136
|
+
* ```
|
|
1137
|
+
*
|
|
1138
|
+
* **Data Events (success):**
|
|
1139
|
+
* ```json
|
|
1140
|
+
* {
|
|
1141
|
+
* "index": number,
|
|
1142
|
+
* "data": {...},
|
|
1143
|
+
* "synthesisHistory"?: [{...}, ...],
|
|
1144
|
+
* "complete": false | true
|
|
1145
|
+
* }
|
|
1146
|
+
* ```
|
|
1147
|
+
* `data` is always a single synthesized object (keys match your output schema). `complete` is `false` for partial streaming updates and `true` for the final validated payload.
|
|
1148
|
+
*
|
|
1149
|
+
* When `synthesisHistoryLimit > 0`, the final event additionally includes `synthesisHistoryEntries`: an array of up to N entries (most-recent first), each `{ synthesisOutputId, data }`, so a client can attach submissions (e.g. poll votes) to a specific historical output. The first entry is the current synthesis itself — the raw payload `data` is derived from (identical to `data` when reranking isn't configured; the unreranked source when it is) — and the remaining entries are older stored rows. A DEPRECATED `synthesisHistory` field (index-aligned bare `data` payloads) is also included for older app builds. The primary `data` field stays a single object — when user reranking is configured, it is built by pooling items at the reranking field across the fetched rows and scoring against the user profile.
|
|
1150
|
+
*
|
|
1151
|
+
* **Data Events (error):**
|
|
1152
|
+
* ```json
|
|
1153
|
+
* {
|
|
1154
|
+
* "index": number,
|
|
1155
|
+
* "error": "error message"
|
|
1156
|
+
* }
|
|
1157
|
+
* ```
|
|
1158
|
+
* Sent when synthesis fails for that item (e.g. resolve failure, exception).
|
|
1159
|
+
*/
|
|
1160
|
+
200: {
|
|
1161
|
+
headers: {
|
|
1162
|
+
[name: string]: unknown;
|
|
1163
|
+
};
|
|
1164
|
+
content: {
|
|
1165
|
+
"application/json": string;
|
|
1166
|
+
};
|
|
1167
|
+
};
|
|
1168
|
+
/** @description Bad request - missing or invalid parameters */
|
|
1169
|
+
400: {
|
|
1170
|
+
headers: {
|
|
1171
|
+
[name: string]: unknown;
|
|
1172
|
+
};
|
|
1173
|
+
content: {
|
|
1174
|
+
"application/json": {
|
|
1175
|
+
/** @example Bad request */
|
|
1176
|
+
error?: string;
|
|
1177
|
+
};
|
|
1178
|
+
};
|
|
1179
|
+
};
|
|
1180
|
+
/** @description Unauthorized errors */
|
|
1181
|
+
401: {
|
|
1182
|
+
headers: {
|
|
1183
|
+
[name: string]: unknown;
|
|
1184
|
+
};
|
|
1185
|
+
content: {
|
|
1186
|
+
"application/json": {
|
|
1187
|
+
/**
|
|
1188
|
+
* @example Unauthorized: No authentication token provided
|
|
1189
|
+
* @enum {string}
|
|
1190
|
+
*/
|
|
1191
|
+
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1192
|
+
};
|
|
1193
|
+
};
|
|
1194
|
+
};
|
|
1195
|
+
/** @description Forbidden errors */
|
|
1196
|
+
403: {
|
|
1197
|
+
headers: {
|
|
1198
|
+
[name: string]: unknown;
|
|
1199
|
+
};
|
|
1200
|
+
content: {
|
|
1201
|
+
"application/json": {
|
|
1202
|
+
/**
|
|
1203
|
+
* @example Forbidden: Subscription required
|
|
1204
|
+
* @enum {string}
|
|
1205
|
+
*/
|
|
1206
|
+
error: "Forbidden: Subscription required";
|
|
1207
|
+
};
|
|
1208
|
+
};
|
|
1209
|
+
};
|
|
1210
|
+
/** @description Internal server error */
|
|
1211
|
+
500: {
|
|
1212
|
+
headers: {
|
|
1213
|
+
[name: string]: unknown;
|
|
1214
|
+
};
|
|
1215
|
+
content: {
|
|
1216
|
+
"application/json": {
|
|
1217
|
+
/** @example false */
|
|
1218
|
+
success?: boolean;
|
|
1219
|
+
/** @example Internal server error: An unknown error occurred */
|
|
1220
|
+
error?: string;
|
|
1221
|
+
};
|
|
1222
|
+
};
|
|
1223
|
+
};
|
|
1224
|
+
};
|
|
1225
|
+
};
|
|
1226
|
+
delete?: never;
|
|
1227
|
+
options?: never;
|
|
1228
|
+
head?: never;
|
|
1229
|
+
patch?: never;
|
|
1230
|
+
trace?: never;
|
|
1231
|
+
};
|
|
1232
|
+
"/v1/user/synthesize-ui": {
|
|
1233
|
+
parameters: {
|
|
1234
|
+
query?: never;
|
|
1235
|
+
header?: never;
|
|
1236
|
+
path?: never;
|
|
1237
|
+
cookie?: never;
|
|
1238
|
+
};
|
|
1239
|
+
get?: never;
|
|
1240
|
+
put?: never;
|
|
1241
|
+
/**
|
|
1242
|
+
* Synthesis - Synthesize UI
|
|
1243
|
+
* @description **POST** `/v1/user/synthesize-ui`
|
|
1244
|
+
*
|
|
1245
|
+
* Resolve one or more generated UIs in a single request, each identified by its `keyName`. Works exactly like `/v1/user/synthesize` — same per-item synthesis inputs (`inputs`, `output.schema`, `searchOptionsOverrides`, `synthesisHistoryLimit`) and the same personalized, streamed `data` — except it additionally returns the UI code bundle to render that data. The synthesis runs against the config attached to each UI.
|
|
1246
|
+
*
|
|
1247
|
+
* Streams as Server-Sent Events so the client can load the (cacheable) code bundle immediately and render synthesis `data` as it arrives. The code bundle is immutable per published version and identical for every app user, so it is served from a CDN by versioned `bundleUrl` and cached once across renders and users. `data` is the per-request, per-user piece and may stream in partials before a final `complete: true` event. `theme` is deployment-level and emitted once in the `manifest`. (`bundleSource` is an inlined fallback used only while bundles are served inline, before CDN delivery.)
|
|
1248
|
+
*/
|
|
1249
|
+
post: {
|
|
1250
|
+
parameters: {
|
|
1251
|
+
query?: never;
|
|
1252
|
+
header: {
|
|
1253
|
+
/** @description Bearer token for authentication */
|
|
1254
|
+
authorization: string;
|
|
1255
|
+
};
|
|
1256
|
+
path?: never;
|
|
1257
|
+
cookie?: never;
|
|
1258
|
+
};
|
|
1259
|
+
requestBody: {
|
|
1260
|
+
content: {
|
|
1261
|
+
"application/json": {
|
|
1262
|
+
/**
|
|
1263
|
+
* @description Target platform for the bundles, for the whole request. Defaults to `web`.
|
|
1264
|
+
* @enum {string}
|
|
1265
|
+
*/
|
|
1266
|
+
platform?: "web" | "mobile";
|
|
1267
|
+
/** @description UIs to resolve in this request. */
|
|
1268
|
+
items: {
|
|
1269
|
+
/** @description Stable identifier of the UI to load. Configured in the CMS. */
|
|
1270
|
+
keyName: string;
|
|
1271
|
+
/** @description How many recent stored synthesis outputs to expose in the streamed `synthesisHistory` / `synthesisHistoryEntries` fields. Defaults to 0. See `/v1/user/synthesize` for the full semantics. */
|
|
956
1272
|
synthesisHistoryLimit?: number;
|
|
957
1273
|
/** @description Per-request overrides for search options. */
|
|
958
1274
|
searchOptionsOverrides?: {
|
|
@@ -1043,6 +1359,350 @@ export interface paths {
|
|
|
1043
1359
|
};
|
|
1044
1360
|
};
|
|
1045
1361
|
};
|
|
1362
|
+
/** @description Forbidden errors */
|
|
1363
|
+
403: {
|
|
1364
|
+
headers: {
|
|
1365
|
+
[name: string]: unknown;
|
|
1366
|
+
};
|
|
1367
|
+
content: {
|
|
1368
|
+
"application/json": {
|
|
1369
|
+
/**
|
|
1370
|
+
* @example Forbidden: Subscription required
|
|
1371
|
+
* @enum {string}
|
|
1372
|
+
*/
|
|
1373
|
+
error: "Forbidden: Subscription required";
|
|
1374
|
+
};
|
|
1375
|
+
};
|
|
1376
|
+
};
|
|
1377
|
+
/** @description Internal server error */
|
|
1378
|
+
500: {
|
|
1379
|
+
headers: {
|
|
1380
|
+
[name: string]: unknown;
|
|
1381
|
+
};
|
|
1382
|
+
content: {
|
|
1383
|
+
"application/json": {
|
|
1384
|
+
/** @example false */
|
|
1385
|
+
success?: boolean;
|
|
1386
|
+
/** @example Internal server error: An unknown error occurred */
|
|
1387
|
+
error?: string;
|
|
1388
|
+
};
|
|
1389
|
+
};
|
|
1390
|
+
};
|
|
1391
|
+
};
|
|
1392
|
+
};
|
|
1393
|
+
delete?: never;
|
|
1394
|
+
options?: never;
|
|
1395
|
+
head?: never;
|
|
1396
|
+
patch?: never;
|
|
1397
|
+
trace?: never;
|
|
1398
|
+
};
|
|
1399
|
+
"/v1/user/synthesis-piece": {
|
|
1400
|
+
parameters: {
|
|
1401
|
+
query?: never;
|
|
1402
|
+
header?: never;
|
|
1403
|
+
path?: never;
|
|
1404
|
+
cookie?: never;
|
|
1405
|
+
};
|
|
1406
|
+
get?: never;
|
|
1407
|
+
put?: never;
|
|
1408
|
+
/**
|
|
1409
|
+
* User - Get Synthesis Pieces
|
|
1410
|
+
* @description **POST** `/v1/user/synthesis-piece`
|
|
1411
|
+
*
|
|
1412
|
+
* Fetch one or more published pieces to display, each by its `keyName`. For every requested piece you receive its ready-to-render view (`uiWebCode`), its current content (`fields`), and your workspace's display theme (`theme`, the same for every piece). Render the view and give it the content as its data. Results come back in the same order as the pieces you requested; if a piece can't be found or isn't published, its result contains an `error` message in place of the content.
|
|
1413
|
+
*/
|
|
1414
|
+
post: {
|
|
1415
|
+
parameters: {
|
|
1416
|
+
query?: never;
|
|
1417
|
+
header: {
|
|
1418
|
+
/** @description Bearer token for authentication */
|
|
1419
|
+
authorization: string;
|
|
1420
|
+
};
|
|
1421
|
+
path?: never;
|
|
1422
|
+
cookie?: never;
|
|
1423
|
+
};
|
|
1424
|
+
requestBody: {
|
|
1425
|
+
content: {
|
|
1426
|
+
"application/json": {
|
|
1427
|
+
/** @description The pieces to fetch, each by its key. */
|
|
1428
|
+
items: {
|
|
1429
|
+
/** @description The piece's unique key. */
|
|
1430
|
+
keyName: string;
|
|
1431
|
+
}[];
|
|
1432
|
+
};
|
|
1433
|
+
};
|
|
1434
|
+
};
|
|
1435
|
+
responses: {
|
|
1436
|
+
/** @description Successful response */
|
|
1437
|
+
200: {
|
|
1438
|
+
headers: {
|
|
1439
|
+
[name: string]: unknown;
|
|
1440
|
+
};
|
|
1441
|
+
content: {
|
|
1442
|
+
"application/json": {
|
|
1443
|
+
/** @example true */
|
|
1444
|
+
success: boolean;
|
|
1445
|
+
data: {
|
|
1446
|
+
/** @description Your workspace's brand theme as CSS custom properties (the same for every piece). */
|
|
1447
|
+
theme: {
|
|
1448
|
+
[key: string]: string;
|
|
1449
|
+
};
|
|
1450
|
+
/** @description One result per requested piece, in the same order. */
|
|
1451
|
+
items: ({
|
|
1452
|
+
/** @description Position of this result in the requested list. */
|
|
1453
|
+
index: number;
|
|
1454
|
+
/** @description The piece's ready-to-render view. */
|
|
1455
|
+
uiWebCode?: string;
|
|
1456
|
+
/** @description The piece's current content, given to the view as its data (includes ready-to-play audio for audio pieces). */
|
|
1457
|
+
fields?: {
|
|
1458
|
+
[key: string]: unknown;
|
|
1459
|
+
};
|
|
1460
|
+
/** @description A message explaining why this piece couldn't be returned. */
|
|
1461
|
+
error?: string;
|
|
1462
|
+
} & {
|
|
1463
|
+
[key: string]: unknown;
|
|
1464
|
+
})[];
|
|
1465
|
+
};
|
|
1466
|
+
};
|
|
1467
|
+
};
|
|
1468
|
+
};
|
|
1469
|
+
/** @description Bad request - missing or invalid parameters */
|
|
1470
|
+
400: {
|
|
1471
|
+
headers: {
|
|
1472
|
+
[name: string]: unknown;
|
|
1473
|
+
};
|
|
1474
|
+
content: {
|
|
1475
|
+
"application/json": {
|
|
1476
|
+
/** @example Bad request */
|
|
1477
|
+
error?: string;
|
|
1478
|
+
};
|
|
1479
|
+
};
|
|
1480
|
+
};
|
|
1481
|
+
/** @description Unauthorized errors */
|
|
1482
|
+
401: {
|
|
1483
|
+
headers: {
|
|
1484
|
+
[name: string]: unknown;
|
|
1485
|
+
};
|
|
1486
|
+
content: {
|
|
1487
|
+
"application/json": {
|
|
1488
|
+
/**
|
|
1489
|
+
* @example Unauthorized: No authentication token provided
|
|
1490
|
+
* @enum {string}
|
|
1491
|
+
*/
|
|
1492
|
+
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1493
|
+
};
|
|
1494
|
+
};
|
|
1495
|
+
};
|
|
1496
|
+
/** @description Internal server error */
|
|
1497
|
+
500: {
|
|
1498
|
+
headers: {
|
|
1499
|
+
[name: string]: unknown;
|
|
1500
|
+
};
|
|
1501
|
+
content: {
|
|
1502
|
+
"application/json": {
|
|
1503
|
+
/** @example false */
|
|
1504
|
+
success?: boolean;
|
|
1505
|
+
/** @example Internal server error: An unknown error occurred */
|
|
1506
|
+
error?: string;
|
|
1507
|
+
};
|
|
1508
|
+
};
|
|
1509
|
+
};
|
|
1510
|
+
};
|
|
1511
|
+
};
|
|
1512
|
+
delete?: never;
|
|
1513
|
+
options?: never;
|
|
1514
|
+
head?: never;
|
|
1515
|
+
patch?: never;
|
|
1516
|
+
trace?: never;
|
|
1517
|
+
};
|
|
1518
|
+
"/v1/user/synthesis-piece/tts": {
|
|
1519
|
+
parameters: {
|
|
1520
|
+
query?: never;
|
|
1521
|
+
header?: never;
|
|
1522
|
+
path?: never;
|
|
1523
|
+
cookie?: never;
|
|
1524
|
+
};
|
|
1525
|
+
get?: never;
|
|
1526
|
+
put?: never;
|
|
1527
|
+
/**
|
|
1528
|
+
* User - Synthesize Piece Audio
|
|
1529
|
+
* @description **POST** `/v1/user/synthesis-piece/tts`
|
|
1530
|
+
*
|
|
1531
|
+
* Mint a short-lived, self-authenticating HLS URL for a published piece's spoken content. A media player calls this when the listener presses play, then plays the returned `url` (via the SDK's `ctx.playMedia`) to stream the synthesized speech on demand. The request REFERENCES the piece's content — omit `field` for the whole piece's spoken content, pass a top-level `field` to scope to it, and/or `index` for a single turn — and the server resolves the turns from the piece itself (so the URL never carries the text). The URL is gated at issue time (it expires ~30 minutes after minting, and only PUBLISHED pieces), so a fresh URL can't be minted after a piece is unpublished. Note: the URL is an HLS playlist whose audio segments are content-addressed and cached long-lived — a player that already loaded a URL may keep playing that audio from cache after the URL expires or the piece is unpublished.
|
|
1532
|
+
*/
|
|
1533
|
+
post: {
|
|
1534
|
+
parameters: {
|
|
1535
|
+
query?: never;
|
|
1536
|
+
header: {
|
|
1537
|
+
/** @description Bearer token for authentication */
|
|
1538
|
+
authorization: string;
|
|
1539
|
+
};
|
|
1540
|
+
path?: never;
|
|
1541
|
+
cookie?: never;
|
|
1542
|
+
};
|
|
1543
|
+
requestBody: {
|
|
1544
|
+
content: {
|
|
1545
|
+
"application/json": {
|
|
1546
|
+
/** @description The piece's unique key. */
|
|
1547
|
+
keyName: string;
|
|
1548
|
+
/** @description Top-level field to voice. Omit for the whole piece's spoken content. */
|
|
1549
|
+
field?: string;
|
|
1550
|
+
/** @description A single turn index within the resolved content. Omit for all turns. */
|
|
1551
|
+
index?: number;
|
|
1552
|
+
};
|
|
1553
|
+
};
|
|
1554
|
+
};
|
|
1555
|
+
responses: {
|
|
1556
|
+
/** @description Successful response */
|
|
1557
|
+
200: {
|
|
1558
|
+
headers: {
|
|
1559
|
+
[name: string]: unknown;
|
|
1560
|
+
};
|
|
1561
|
+
content: {
|
|
1562
|
+
"application/json": {
|
|
1563
|
+
/** @example true */
|
|
1564
|
+
success: boolean;
|
|
1565
|
+
data: {
|
|
1566
|
+
/** @description A short-lived streaming URL to point an `<audio>` element at. */
|
|
1567
|
+
url?: string;
|
|
1568
|
+
/** @description Set instead of `url` when audio can't be produced (piece not found/published, or the text isn't part of the piece). */
|
|
1569
|
+
error?: string;
|
|
1570
|
+
};
|
|
1571
|
+
};
|
|
1572
|
+
};
|
|
1573
|
+
};
|
|
1574
|
+
/** @description Bad request - missing or invalid parameters */
|
|
1575
|
+
400: {
|
|
1576
|
+
headers: {
|
|
1577
|
+
[name: string]: unknown;
|
|
1578
|
+
};
|
|
1579
|
+
content: {
|
|
1580
|
+
"application/json": {
|
|
1581
|
+
/** @example Bad request */
|
|
1582
|
+
error?: string;
|
|
1583
|
+
};
|
|
1584
|
+
};
|
|
1585
|
+
};
|
|
1586
|
+
/** @description Unauthorized errors */
|
|
1587
|
+
401: {
|
|
1588
|
+
headers: {
|
|
1589
|
+
[name: string]: unknown;
|
|
1590
|
+
};
|
|
1591
|
+
content: {
|
|
1592
|
+
"application/json": {
|
|
1593
|
+
/**
|
|
1594
|
+
* @example Unauthorized: No authentication token provided
|
|
1595
|
+
* @enum {string}
|
|
1596
|
+
*/
|
|
1597
|
+
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1598
|
+
};
|
|
1599
|
+
};
|
|
1600
|
+
};
|
|
1601
|
+
/** @description Internal server error */
|
|
1602
|
+
500: {
|
|
1603
|
+
headers: {
|
|
1604
|
+
[name: string]: unknown;
|
|
1605
|
+
};
|
|
1606
|
+
content: {
|
|
1607
|
+
"application/json": {
|
|
1608
|
+
/** @example false */
|
|
1609
|
+
success?: boolean;
|
|
1610
|
+
/** @example Internal server error: An unknown error occurred */
|
|
1611
|
+
error?: string;
|
|
1612
|
+
};
|
|
1613
|
+
};
|
|
1614
|
+
};
|
|
1615
|
+
};
|
|
1616
|
+
};
|
|
1617
|
+
delete?: never;
|
|
1618
|
+
options?: never;
|
|
1619
|
+
head?: never;
|
|
1620
|
+
patch?: never;
|
|
1621
|
+
trace?: never;
|
|
1622
|
+
};
|
|
1623
|
+
"/v1/user/synthesis/tts": {
|
|
1624
|
+
parameters: {
|
|
1625
|
+
query?: never;
|
|
1626
|
+
header?: never;
|
|
1627
|
+
path?: never;
|
|
1628
|
+
cookie?: never;
|
|
1629
|
+
};
|
|
1630
|
+
get?: never;
|
|
1631
|
+
put?: never;
|
|
1632
|
+
/**
|
|
1633
|
+
* User - Synthesize Synthesis Output Audio
|
|
1634
|
+
* @description **POST** `/v1/user/synthesis/tts`
|
|
1635
|
+
*
|
|
1636
|
+
* Mint a short-lived, self-authenticating HLS URL for the authenticated app user's own stored synthesis output — the on-request audio entry point a rendered SynthesisUI's `ctx.tts` calls when the listener presses play. The request REFERENCES the output's spoken content by `synthesisOutputId` (the id returned with the synthesis result) — omit `field` for the whole output's spoken content, pass a top-level `field` to scope to it, and/or `index` for a single turn — and the server reloads the turns from the stored output row (so the URL never carries the text). The URL is gated at mint by OWNERSHIP (only the app user who owns the output can mint it) and expires ~30 minutes after minting. Note: the URL is an HLS playlist whose audio segments are content-addressed and cached long-lived — a player that already loaded a URL may keep playing that audio from cache after the URL expires.
|
|
1637
|
+
*/
|
|
1638
|
+
post: {
|
|
1639
|
+
parameters: {
|
|
1640
|
+
query?: never;
|
|
1641
|
+
header: {
|
|
1642
|
+
/** @description Bearer token for authentication */
|
|
1643
|
+
authorization: string;
|
|
1644
|
+
};
|
|
1645
|
+
path?: never;
|
|
1646
|
+
cookie?: never;
|
|
1647
|
+
};
|
|
1648
|
+
requestBody: {
|
|
1649
|
+
content: {
|
|
1650
|
+
"application/json": {
|
|
1651
|
+
/** @description The id of the synthesis output to voice (returned with the synthesis result). */
|
|
1652
|
+
synthesisOutputId: string;
|
|
1653
|
+
/** @description Top-level field to voice. Omit for the whole output's spoken content. */
|
|
1654
|
+
field?: string;
|
|
1655
|
+
/** @description A single turn index within the resolved content. Omit for all turns. */
|
|
1656
|
+
index?: number;
|
|
1657
|
+
};
|
|
1658
|
+
};
|
|
1659
|
+
};
|
|
1660
|
+
responses: {
|
|
1661
|
+
/** @description Successful response */
|
|
1662
|
+
200: {
|
|
1663
|
+
headers: {
|
|
1664
|
+
[name: string]: unknown;
|
|
1665
|
+
};
|
|
1666
|
+
content: {
|
|
1667
|
+
"application/json": {
|
|
1668
|
+
/** @example true */
|
|
1669
|
+
success: boolean;
|
|
1670
|
+
data: {
|
|
1671
|
+
/** @description A short-lived streaming URL to point an `<audio>` element at. */
|
|
1672
|
+
url?: string;
|
|
1673
|
+
/** @description Set instead of `url` when audio can't be produced (output not found/not owned, or the text isn't part of the output). */
|
|
1674
|
+
error?: string;
|
|
1675
|
+
};
|
|
1676
|
+
};
|
|
1677
|
+
};
|
|
1678
|
+
};
|
|
1679
|
+
/** @description Bad request - missing or invalid parameters */
|
|
1680
|
+
400: {
|
|
1681
|
+
headers: {
|
|
1682
|
+
[name: string]: unknown;
|
|
1683
|
+
};
|
|
1684
|
+
content: {
|
|
1685
|
+
"application/json": {
|
|
1686
|
+
/** @example Bad request */
|
|
1687
|
+
error?: string;
|
|
1688
|
+
};
|
|
1689
|
+
};
|
|
1690
|
+
};
|
|
1691
|
+
/** @description Unauthorized errors */
|
|
1692
|
+
401: {
|
|
1693
|
+
headers: {
|
|
1694
|
+
[name: string]: unknown;
|
|
1695
|
+
};
|
|
1696
|
+
content: {
|
|
1697
|
+
"application/json": {
|
|
1698
|
+
/**
|
|
1699
|
+
* @example Unauthorized: No authentication token provided
|
|
1700
|
+
* @enum {string}
|
|
1701
|
+
*/
|
|
1702
|
+
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1703
|
+
};
|
|
1704
|
+
};
|
|
1705
|
+
};
|
|
1046
1706
|
/** @description Internal server error */
|
|
1047
1707
|
500: {
|
|
1048
1708
|
headers: {
|
|
@@ -1150,10 +1810,25 @@ export interface paths {
|
|
|
1150
1810
|
content: {
|
|
1151
1811
|
"application/json": {
|
|
1152
1812
|
/**
|
|
1153
|
-
* @example Unauthorized: No authentication token provided
|
|
1813
|
+
* @example Unauthorized: No authentication token provided
|
|
1814
|
+
* @enum {string}
|
|
1815
|
+
*/
|
|
1816
|
+
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1817
|
+
};
|
|
1818
|
+
};
|
|
1819
|
+
};
|
|
1820
|
+
/** @description Forbidden errors */
|
|
1821
|
+
403: {
|
|
1822
|
+
headers: {
|
|
1823
|
+
[name: string]: unknown;
|
|
1824
|
+
};
|
|
1825
|
+
content: {
|
|
1826
|
+
"application/json": {
|
|
1827
|
+
/**
|
|
1828
|
+
* @example Forbidden: Subscription required
|
|
1154
1829
|
* @enum {string}
|
|
1155
1830
|
*/
|
|
1156
|
-
error
|
|
1831
|
+
error: "Forbidden: Subscription required";
|
|
1157
1832
|
};
|
|
1158
1833
|
};
|
|
1159
1834
|
};
|
|
@@ -1270,6 +1945,21 @@ export interface paths {
|
|
|
1270
1945
|
};
|
|
1271
1946
|
};
|
|
1272
1947
|
};
|
|
1948
|
+
/** @description Forbidden errors */
|
|
1949
|
+
403: {
|
|
1950
|
+
headers: {
|
|
1951
|
+
[name: string]: unknown;
|
|
1952
|
+
};
|
|
1953
|
+
content: {
|
|
1954
|
+
"application/json": {
|
|
1955
|
+
/**
|
|
1956
|
+
* @example Forbidden: Subscription required
|
|
1957
|
+
* @enum {string}
|
|
1958
|
+
*/
|
|
1959
|
+
error: "Forbidden: Subscription required";
|
|
1960
|
+
};
|
|
1961
|
+
};
|
|
1962
|
+
};
|
|
1273
1963
|
/** @description Default Response */
|
|
1274
1964
|
404: {
|
|
1275
1965
|
headers: {
|
|
@@ -1376,6 +2066,21 @@ export interface paths {
|
|
|
1376
2066
|
};
|
|
1377
2067
|
};
|
|
1378
2068
|
};
|
|
2069
|
+
/** @description Forbidden errors */
|
|
2070
|
+
403: {
|
|
2071
|
+
headers: {
|
|
2072
|
+
[name: string]: unknown;
|
|
2073
|
+
};
|
|
2074
|
+
content: {
|
|
2075
|
+
"application/json": {
|
|
2076
|
+
/**
|
|
2077
|
+
* @example Forbidden: Subscription required
|
|
2078
|
+
* @enum {string}
|
|
2079
|
+
*/
|
|
2080
|
+
error: "Forbidden: Subscription required";
|
|
2081
|
+
};
|
|
2082
|
+
};
|
|
2083
|
+
};
|
|
1379
2084
|
/** @description Internal server error */
|
|
1380
2085
|
500: {
|
|
1381
2086
|
headers: {
|
|
@@ -1482,6 +2187,21 @@ export interface paths {
|
|
|
1482
2187
|
};
|
|
1483
2188
|
};
|
|
1484
2189
|
};
|
|
2190
|
+
/** @description Forbidden errors */
|
|
2191
|
+
403: {
|
|
2192
|
+
headers: {
|
|
2193
|
+
[name: string]: unknown;
|
|
2194
|
+
};
|
|
2195
|
+
content: {
|
|
2196
|
+
"application/json": {
|
|
2197
|
+
/**
|
|
2198
|
+
* @example Forbidden: Subscription required
|
|
2199
|
+
* @enum {string}
|
|
2200
|
+
*/
|
|
2201
|
+
error: "Forbidden: Subscription required";
|
|
2202
|
+
};
|
|
2203
|
+
};
|
|
2204
|
+
};
|
|
1485
2205
|
/** @description Not found */
|
|
1486
2206
|
404: {
|
|
1487
2207
|
headers: {
|
|
@@ -1606,248 +2326,18 @@ export interface paths {
|
|
|
1606
2326
|
};
|
|
1607
2327
|
};
|
|
1608
2328
|
};
|
|
1609
|
-
/** @description
|
|
1610
|
-
|
|
1611
|
-
headers: {
|
|
1612
|
-
[name: string]: unknown;
|
|
1613
|
-
};
|
|
1614
|
-
content: {
|
|
1615
|
-
"application/json": {
|
|
1616
|
-
/** @example false */
|
|
1617
|
-
success?: boolean;
|
|
1618
|
-
/** @example Internal server error: An unknown error occurred */
|
|
1619
|
-
error?: string;
|
|
1620
|
-
};
|
|
1621
|
-
};
|
|
1622
|
-
};
|
|
1623
|
-
};
|
|
1624
|
-
};
|
|
1625
|
-
delete?: never;
|
|
1626
|
-
options?: never;
|
|
1627
|
-
head?: never;
|
|
1628
|
-
patch?: never;
|
|
1629
|
-
trace?: never;
|
|
1630
|
-
};
|
|
1631
|
-
"/v1/user-submissions": {
|
|
1632
|
-
parameters: {
|
|
1633
|
-
query?: never;
|
|
1634
|
-
header?: never;
|
|
1635
|
-
path?: never;
|
|
1636
|
-
cookie?: never;
|
|
1637
|
-
};
|
|
1638
|
-
get?: never;
|
|
1639
|
-
put?: never;
|
|
1640
|
-
/**
|
|
1641
|
-
* User Submissions - Create Submission
|
|
1642
|
-
* @description **POST** `/v1/user-submissions` Creates a structured user submission and optional presigned file upload URLs.
|
|
1643
|
-
*/
|
|
1644
|
-
post: {
|
|
1645
|
-
parameters: {
|
|
1646
|
-
query?: never;
|
|
1647
|
-
header: {
|
|
1648
|
-
authorization: string;
|
|
1649
|
-
};
|
|
1650
|
-
path?: never;
|
|
1651
|
-
cookie?: never;
|
|
1652
|
-
};
|
|
1653
|
-
requestBody: {
|
|
1654
|
-
content: {
|
|
1655
|
-
"application/json": {
|
|
1656
|
-
synthesisOutputId: string;
|
|
1657
|
-
synthesisOutputContentKey?: string;
|
|
1658
|
-
data: {
|
|
1659
|
-
[key: string]: unknown;
|
|
1660
|
-
};
|
|
1661
|
-
files?: {
|
|
1662
|
-
field: string;
|
|
1663
|
-
contentType: string;
|
|
1664
|
-
fileName?: string;
|
|
1665
|
-
}[];
|
|
1666
|
-
};
|
|
1667
|
-
};
|
|
1668
|
-
};
|
|
1669
|
-
responses: {
|
|
1670
|
-
/** @description Default Response */
|
|
1671
|
-
200: {
|
|
1672
|
-
headers: {
|
|
1673
|
-
[name: string]: unknown;
|
|
1674
|
-
};
|
|
1675
|
-
content: {
|
|
1676
|
-
"application/json": {
|
|
1677
|
-
success: boolean;
|
|
1678
|
-
data: {
|
|
1679
|
-
submission: {
|
|
1680
|
-
id: string;
|
|
1681
|
-
synthesisConfigId: string;
|
|
1682
|
-
synthesisOutputId: string;
|
|
1683
|
-
synthesisOutputContentKey: string;
|
|
1684
|
-
appUserId: string;
|
|
1685
|
-
state: string;
|
|
1686
|
-
createdAt: string;
|
|
1687
|
-
updatedAt?: string;
|
|
1688
|
-
} & {
|
|
1689
|
-
[key: string]: unknown;
|
|
1690
|
-
};
|
|
1691
|
-
uploads: {
|
|
1692
|
-
field: string;
|
|
1693
|
-
s3Key: string;
|
|
1694
|
-
uploadUrl: string;
|
|
1695
|
-
}[];
|
|
1696
|
-
};
|
|
1697
|
-
};
|
|
1698
|
-
};
|
|
1699
|
-
};
|
|
1700
|
-
/** @description Bad request - missing or invalid parameters */
|
|
1701
|
-
400: {
|
|
1702
|
-
headers: {
|
|
1703
|
-
[name: string]: unknown;
|
|
1704
|
-
};
|
|
1705
|
-
content: {
|
|
1706
|
-
"application/json": {
|
|
1707
|
-
/** @example Bad request */
|
|
1708
|
-
error?: string;
|
|
1709
|
-
};
|
|
1710
|
-
};
|
|
1711
|
-
};
|
|
1712
|
-
/** @description Unauthorized errors */
|
|
1713
|
-
401: {
|
|
1714
|
-
headers: {
|
|
1715
|
-
[name: string]: unknown;
|
|
1716
|
-
};
|
|
1717
|
-
content: {
|
|
1718
|
-
"application/json": {
|
|
1719
|
-
/**
|
|
1720
|
-
* @example Unauthorized: No authentication token provided
|
|
1721
|
-
* @enum {string}
|
|
1722
|
-
*/
|
|
1723
|
-
error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
|
|
1724
|
-
};
|
|
1725
|
-
};
|
|
1726
|
-
};
|
|
1727
|
-
/** @description Not found */
|
|
1728
|
-
404: {
|
|
1729
|
-
headers: {
|
|
1730
|
-
[name: string]: unknown;
|
|
1731
|
-
};
|
|
1732
|
-
content: {
|
|
1733
|
-
"application/json": {
|
|
1734
|
-
/** @example Not found */
|
|
1735
|
-
error?: string;
|
|
1736
|
-
};
|
|
1737
|
-
};
|
|
1738
|
-
};
|
|
1739
|
-
/** @description Internal server error */
|
|
1740
|
-
500: {
|
|
1741
|
-
headers: {
|
|
1742
|
-
[name: string]: unknown;
|
|
1743
|
-
};
|
|
1744
|
-
content: {
|
|
1745
|
-
"application/json": {
|
|
1746
|
-
/** @example false */
|
|
1747
|
-
success?: boolean;
|
|
1748
|
-
/** @example Internal server error: An unknown error occurred */
|
|
1749
|
-
error?: string;
|
|
1750
|
-
};
|
|
1751
|
-
};
|
|
1752
|
-
};
|
|
1753
|
-
};
|
|
1754
|
-
};
|
|
1755
|
-
delete?: never;
|
|
1756
|
-
options?: never;
|
|
1757
|
-
head?: never;
|
|
1758
|
-
patch?: never;
|
|
1759
|
-
trace?: never;
|
|
1760
|
-
};
|
|
1761
|
-
"/v1/user-submission-schemas/{keyName}/submissions": {
|
|
1762
|
-
parameters: {
|
|
1763
|
-
query?: never;
|
|
1764
|
-
header?: never;
|
|
1765
|
-
path?: never;
|
|
1766
|
-
cookie?: never;
|
|
1767
|
-
};
|
|
1768
|
-
/**
|
|
1769
|
-
* User Submissions - List Live Submissions
|
|
1770
|
-
* @description **GET** `/v1/user-submission-schemas/:keyName/submissions` Lists live submissions for a schema. Customer apps cannot read non-live submissions.
|
|
1771
|
-
*/
|
|
1772
|
-
get: {
|
|
1773
|
-
parameters: {
|
|
1774
|
-
query?: {
|
|
1775
|
-
first?: number;
|
|
1776
|
-
after?: string;
|
|
1777
|
-
};
|
|
1778
|
-
header: {
|
|
1779
|
-
authorization: string;
|
|
1780
|
-
};
|
|
1781
|
-
path: {
|
|
1782
|
-
keyName: string;
|
|
1783
|
-
};
|
|
1784
|
-
cookie?: never;
|
|
1785
|
-
};
|
|
1786
|
-
requestBody?: never;
|
|
1787
|
-
responses: {
|
|
1788
|
-
/** @description Default Response */
|
|
1789
|
-
200: {
|
|
1790
|
-
headers: {
|
|
1791
|
-
[name: string]: unknown;
|
|
1792
|
-
};
|
|
1793
|
-
content: {
|
|
1794
|
-
"application/json": {
|
|
1795
|
-
success: boolean;
|
|
1796
|
-
data: {
|
|
1797
|
-
cursor: null | string;
|
|
1798
|
-
items: {
|
|
1799
|
-
id: string;
|
|
1800
|
-
data: {
|
|
1801
|
-
[key: string]: unknown;
|
|
1802
|
-
};
|
|
1803
|
-
files: {
|
|
1804
|
-
field: string;
|
|
1805
|
-
contentType: string;
|
|
1806
|
-
fileName?: string;
|
|
1807
|
-
downloadUrl: string;
|
|
1808
|
-
}[];
|
|
1809
|
-
createdAt: string;
|
|
1810
|
-
}[];
|
|
1811
|
-
};
|
|
1812
|
-
};
|
|
1813
|
-
};
|
|
1814
|
-
};
|
|
1815
|
-
/** @description Bad request - missing or invalid parameters */
|
|
1816
|
-
400: {
|
|
1817
|
-
headers: {
|
|
1818
|
-
[name: string]: unknown;
|
|
1819
|
-
};
|
|
1820
|
-
content: {
|
|
1821
|
-
"application/json": {
|
|
1822
|
-
/** @example Bad request */
|
|
1823
|
-
error?: string;
|
|
1824
|
-
};
|
|
1825
|
-
};
|
|
1826
|
-
};
|
|
1827
|
-
/** @description Unauthorized errors */
|
|
1828
|
-
401: {
|
|
2329
|
+
/** @description Forbidden errors */
|
|
2330
|
+
403: {
|
|
1829
2331
|
headers: {
|
|
1830
2332
|
[name: string]: unknown;
|
|
1831
2333
|
};
|
|
1832
2334
|
content: {
|
|
1833
2335
|
"application/json": {
|
|
1834
2336
|
/**
|
|
1835
|
-
* @example
|
|
2337
|
+
* @example Forbidden: Subscription required
|
|
1836
2338
|
* @enum {string}
|
|
1837
2339
|
*/
|
|
1838
|
-
error
|
|
1839
|
-
};
|
|
1840
|
-
};
|
|
1841
|
-
};
|
|
1842
|
-
/** @description Not found */
|
|
1843
|
-
404: {
|
|
1844
|
-
headers: {
|
|
1845
|
-
[name: string]: unknown;
|
|
1846
|
-
};
|
|
1847
|
-
content: {
|
|
1848
|
-
"application/json": {
|
|
1849
|
-
/** @example Not found */
|
|
1850
|
-
error?: string;
|
|
2340
|
+
error: "Forbidden: Subscription required";
|
|
1851
2341
|
};
|
|
1852
2342
|
};
|
|
1853
2343
|
};
|
|
@@ -1867,8 +2357,6 @@ export interface paths {
|
|
|
1867
2357
|
};
|
|
1868
2358
|
};
|
|
1869
2359
|
};
|
|
1870
|
-
put?: never;
|
|
1871
|
-
post?: never;
|
|
1872
2360
|
delete?: never;
|
|
1873
2361
|
options?: never;
|
|
1874
2362
|
head?: never;
|