@knowledge-stack/ksapi 2.4.3 → 2.6.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/.openapi-generator/FILES +10 -0
- package/README.md +7 -2
- package/dist/apis/DocumentsApi.d.ts +9 -0
- package/dist/apis/DocumentsApi.js +9 -0
- package/dist/apis/SystemJobsApi.d.ts +4 -4
- package/dist/apis/SystemJobsApi.js +2 -2
- package/dist/apis/TenantInvitationsApi.d.ts +67 -0
- package/dist/apis/TenantInvitationsApi.js +112 -0
- package/dist/apis/TenantsApi.d.ts +4 -4
- package/dist/apis/TenantsApi.js +2 -2
- package/dist/apis/index.d.ts +1 -0
- package/dist/apis/index.js +1 -0
- package/dist/esm/apis/DocumentsApi.d.ts +9 -0
- package/dist/esm/apis/DocumentsApi.js +9 -0
- package/dist/esm/apis/SystemJobsApi.d.ts +4 -4
- package/dist/esm/apis/SystemJobsApi.js +2 -2
- package/dist/esm/apis/TenantInvitationsApi.d.ts +67 -0
- package/dist/esm/apis/TenantInvitationsApi.js +75 -0
- package/dist/esm/apis/TenantsApi.d.ts +4 -4
- package/dist/esm/apis/TenantsApi.js +2 -2
- package/dist/esm/apis/index.d.ts +1 -0
- package/dist/esm/apis/index.js +1 -0
- package/dist/esm/models/AcceptTenantInvitationRequest.d.ts +53 -0
- package/dist/esm/models/AcceptTenantInvitationRequest.js +48 -0
- package/dist/esm/models/AcceptTenantInvitationResponse.d.ts +59 -0
- package/dist/esm/models/AcceptTenantInvitationResponse.js +52 -0
- package/dist/esm/models/ChunkMetadata.d.ts +12 -0
- package/dist/esm/models/ChunkMetadata.js +4 -0
- package/dist/esm/models/CreateUploadRequest.d.ts +18 -0
- package/dist/esm/models/CreateUploadRequest.js +6 -0
- package/dist/esm/models/DocumentVersionMetadata.d.ts +7 -0
- package/dist/esm/models/DocumentVersionMetadata.js +3 -0
- package/dist/esm/models/DocumentVersionMetadataUpdate.d.ts +7 -0
- package/dist/esm/models/DocumentVersionMetadataUpdate.js +3 -0
- package/dist/esm/models/EmailMetadata.d.ts +119 -0
- package/dist/esm/models/EmailMetadata.js +65 -0
- package/dist/esm/models/EmailParty.d.ts +53 -0
- package/dist/esm/models/EmailParty.js +46 -0
- package/dist/esm/models/EventResponse.d.ts +6 -0
- package/dist/esm/models/EventResponse.js +2 -0
- package/dist/esm/models/ImageTaxonomy.d.ts +1 -0
- package/dist/esm/models/ImageTaxonomy.js +1 -0
- package/dist/esm/models/IngestDocumentResponse.d.ts +18 -0
- package/dist/esm/models/IngestDocumentResponse.js +6 -0
- package/dist/esm/models/SegmentSpan.d.ts +9 -2
- package/dist/esm/models/SegmentSpan.js +2 -0
- package/dist/esm/models/index.d.ts +4 -0
- package/dist/esm/models/index.js +4 -0
- package/dist/models/AcceptTenantInvitationRequest.d.ts +53 -0
- package/dist/models/AcceptTenantInvitationRequest.js +56 -0
- package/dist/models/AcceptTenantInvitationResponse.d.ts +59 -0
- package/dist/models/AcceptTenantInvitationResponse.js +60 -0
- package/dist/models/ChunkMetadata.d.ts +12 -0
- package/dist/models/ChunkMetadata.js +4 -0
- package/dist/models/CreateUploadRequest.d.ts +18 -0
- package/dist/models/CreateUploadRequest.js +6 -0
- package/dist/models/DocumentVersionMetadata.d.ts +7 -0
- package/dist/models/DocumentVersionMetadata.js +3 -0
- package/dist/models/DocumentVersionMetadataUpdate.d.ts +7 -0
- package/dist/models/DocumentVersionMetadataUpdate.js +3 -0
- package/dist/models/EmailMetadata.d.ts +119 -0
- package/dist/models/EmailMetadata.js +73 -0
- package/dist/models/EmailParty.d.ts +53 -0
- package/dist/models/EmailParty.js +54 -0
- package/dist/models/EventResponse.d.ts +6 -0
- package/dist/models/EventResponse.js +2 -0
- package/dist/models/ImageTaxonomy.d.ts +1 -0
- package/dist/models/ImageTaxonomy.js +1 -0
- package/dist/models/IngestDocumentResponse.d.ts +18 -0
- package/dist/models/IngestDocumentResponse.js +6 -0
- package/dist/models/SegmentSpan.d.ts +9 -2
- package/dist/models/SegmentSpan.js +2 -0
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.js +4 -0
- package/docs/AcceptTenantInvitationRequest.md +36 -0
- package/docs/AcceptTenantInvitationResponse.md +38 -0
- package/docs/ChunkMetadata.md +4 -0
- package/docs/CreateUploadRequest.md +6 -0
- package/docs/DocumentVersionMetadata.md +2 -0
- package/docs/DocumentVersionMetadataUpdate.md +2 -0
- package/docs/DocumentsApi.md +13 -4
- package/docs/EmailMetadata.md +57 -0
- package/docs/EmailParty.md +37 -0
- package/docs/EventResponse.md +2 -0
- package/docs/IngestDocumentResponse.md +6 -0
- package/docs/SegmentSpan.md +3 -1
- package/docs/SystemJobsApi.md +1 -1
- package/docs/TenantInvitationsApi.md +85 -0
- package/docs/TenantsApi.md +1 -1
- package/package.json +1 -1
- package/src/apis/DocumentsApi.ts +21 -0
- package/src/apis/SystemJobsApi.ts +4 -4
- package/src/apis/TenantInvitationsApi.ts +136 -0
- package/src/apis/TenantsApi.ts +4 -4
- package/src/apis/index.ts +1 -0
- package/src/models/AcceptTenantInvitationRequest.ts +93 -0
- package/src/models/AcceptTenantInvitationResponse.ts +101 -0
- package/src/models/ChunkMetadata.ts +16 -0
- package/src/models/CreateUploadRequest.ts +24 -0
- package/src/models/DocumentVersionMetadata.ts +15 -0
- package/src/models/DocumentVersionMetadataUpdate.ts +15 -0
- package/src/models/EmailMetadata.ts +183 -0
- package/src/models/EmailParty.ts +91 -0
- package/src/models/EventResponse.ts +8 -0
- package/src/models/ImageTaxonomy.ts +1 -0
- package/src/models/IngestDocumentResponse.ts +24 -0
- package/src/models/SegmentSpan.ts +11 -2
- package/src/models/index.ts +4 -0
|
@@ -180,7 +180,7 @@ export interface SystemJobsApiInterface {
|
|
|
180
180
|
getZipIngestionStatusRequestOpts(requestParameters: GetZipIngestionStatusRequest): Promise<runtime.RequestOpts>;
|
|
181
181
|
|
|
182
182
|
/**
|
|
183
|
-
* Get a
|
|
183
|
+
* Get a fan-out\'s live status + per-member outcomes. Serves both container fan-outs: a ZIP archive\'s members and an email\'s attachments. Both expose the same ``results`` query, so one endpoint covers them rather than duplicating the tenant check and hydration. Tenant-scoped via the TenantId search attribute (no per-path can_read check — intentionally consistent with the sibling generic Temporal endpoints below; the opaque workflow_id is only handed to the uploader, who had can_write on the target). The per-member results come from the workflow\'s ``results`` query (served from retained history), so once Temporal retention expires this 404s.
|
|
184
184
|
* @summary Get Zip Ingestion Status Handler
|
|
185
185
|
* @param {string} workflowId
|
|
186
186
|
* @param {*} [options] Override http request option.
|
|
@@ -190,7 +190,7 @@ export interface SystemJobsApiInterface {
|
|
|
190
190
|
getZipIngestionStatusRaw(requestParameters: GetZipIngestionStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ZipIngestionStatusResponse>>;
|
|
191
191
|
|
|
192
192
|
/**
|
|
193
|
-
* Get a
|
|
193
|
+
* Get a fan-out\'s live status + per-member outcomes. Serves both container fan-outs: a ZIP archive\'s members and an email\'s attachments. Both expose the same ``results`` query, so one endpoint covers them rather than duplicating the tenant check and hydration. Tenant-scoped via the TenantId search attribute (no per-path can_read check — intentionally consistent with the sibling generic Temporal endpoints below; the opaque workflow_id is only handed to the uploader, who had can_write on the target). The per-member results come from the workflow\'s ``results`` query (served from retained history), so once Temporal retention expires this 404s.
|
|
194
194
|
* Get Zip Ingestion Status Handler
|
|
195
195
|
*/
|
|
196
196
|
getZipIngestionStatus(requestParameters: GetZipIngestionStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ZipIngestionStatusResponse>;
|
|
@@ -484,7 +484,7 @@ export class SystemJobsApi extends runtime.BaseAPI implements SystemJobsApiInter
|
|
|
484
484
|
}
|
|
485
485
|
|
|
486
486
|
/**
|
|
487
|
-
* Get a
|
|
487
|
+
* Get a fan-out\'s live status + per-member outcomes. Serves both container fan-outs: a ZIP archive\'s members and an email\'s attachments. Both expose the same ``results`` query, so one endpoint covers them rather than duplicating the tenant check and hydration. Tenant-scoped via the TenantId search attribute (no per-path can_read check — intentionally consistent with the sibling generic Temporal endpoints below; the opaque workflow_id is only handed to the uploader, who had can_write on the target). The per-member results come from the workflow\'s ``results`` query (served from retained history), so once Temporal retention expires this 404s.
|
|
488
488
|
* Get Zip Ingestion Status Handler
|
|
489
489
|
*/
|
|
490
490
|
async getZipIngestionStatusRaw(requestParameters: GetZipIngestionStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ZipIngestionStatusResponse>> {
|
|
@@ -495,7 +495,7 @@ export class SystemJobsApi extends runtime.BaseAPI implements SystemJobsApiInter
|
|
|
495
495
|
}
|
|
496
496
|
|
|
497
497
|
/**
|
|
498
|
-
* Get a
|
|
498
|
+
* Get a fan-out\'s live status + per-member outcomes. Serves both container fan-outs: a ZIP archive\'s members and an email\'s attachments. Both expose the same ``results`` query, so one endpoint covers them rather than duplicating the tenant check and hydration. Tenant-scoped via the TenantId search attribute (no per-path can_read check — intentionally consistent with the sibling generic Temporal endpoints below; the opaque workflow_id is only handed to the uploader, who had can_write on the target). The per-member results come from the workflow\'s ``results`` query (served from retained history), so once Temporal retention expires this 404s.
|
|
499
499
|
* Get Zip Ingestion Status Handler
|
|
500
500
|
*/
|
|
501
501
|
async getZipIngestionStatus(requestParameters: GetZipIngestionStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ZipIngestionStatusResponse> {
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Knowledge Stack API
|
|
5
|
+
* Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 0.1.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
import * as runtime from '../runtime';
|
|
17
|
+
import type {
|
|
18
|
+
AcceptTenantInvitationRequest,
|
|
19
|
+
AcceptTenantInvitationResponse,
|
|
20
|
+
ErrorResponse,
|
|
21
|
+
HTTPValidationError,
|
|
22
|
+
} from '../models/index';
|
|
23
|
+
import {
|
|
24
|
+
AcceptTenantInvitationRequestFromJSON,
|
|
25
|
+
AcceptTenantInvitationRequestToJSON,
|
|
26
|
+
AcceptTenantInvitationResponseFromJSON,
|
|
27
|
+
AcceptTenantInvitationResponseToJSON,
|
|
28
|
+
ErrorResponseFromJSON,
|
|
29
|
+
ErrorResponseToJSON,
|
|
30
|
+
HTTPValidationErrorFromJSON,
|
|
31
|
+
HTTPValidationErrorToJSON,
|
|
32
|
+
} from '../models/index';
|
|
33
|
+
|
|
34
|
+
export interface AcceptTenantInvitationOperationRequest {
|
|
35
|
+
invitationId: string;
|
|
36
|
+
acceptTenantInvitationRequest: AcceptTenantInvitationRequest;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* TenantInvitationsApi - interface
|
|
41
|
+
*
|
|
42
|
+
* @export
|
|
43
|
+
* @interface TenantInvitationsApiInterface
|
|
44
|
+
*/
|
|
45
|
+
export interface TenantInvitationsApiInterface {
|
|
46
|
+
/**
|
|
47
|
+
* Creates request options for acceptTenantInvitation without sending the request
|
|
48
|
+
* @param {string} invitationId
|
|
49
|
+
* @param {AcceptTenantInvitationRequest} acceptTenantInvitationRequest
|
|
50
|
+
* @throws {RequiredError}
|
|
51
|
+
* @memberof TenantInvitationsApiInterface
|
|
52
|
+
*/
|
|
53
|
+
acceptTenantInvitationRequestOpts(requestParameters: AcceptTenantInvitationOperationRequest): Promise<runtime.RequestOpts>;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Accept an invitation, creating the customer tenant and its OWNER. New owner: supply ``password`` — the account is created and signed in. Existing owner: accept while signed in as ``owner_email`` (no password).
|
|
57
|
+
* @summary Accept Tenant Invitation Handler
|
|
58
|
+
* @param {string} invitationId
|
|
59
|
+
* @param {AcceptTenantInvitationRequest} acceptTenantInvitationRequest
|
|
60
|
+
* @param {*} [options] Override http request option.
|
|
61
|
+
* @throws {RequiredError}
|
|
62
|
+
* @memberof TenantInvitationsApiInterface
|
|
63
|
+
*/
|
|
64
|
+
acceptTenantInvitationRaw(requestParameters: AcceptTenantInvitationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AcceptTenantInvitationResponse>>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Accept an invitation, creating the customer tenant and its OWNER. New owner: supply ``password`` — the account is created and signed in. Existing owner: accept while signed in as ``owner_email`` (no password).
|
|
68
|
+
* Accept Tenant Invitation Handler
|
|
69
|
+
*/
|
|
70
|
+
acceptTenantInvitation(requestParameters: AcceptTenantInvitationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AcceptTenantInvitationResponse>;
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
export class TenantInvitationsApi extends runtime.BaseAPI implements TenantInvitationsApiInterface {
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Creates request options for acceptTenantInvitation without sending the request
|
|
81
|
+
*/
|
|
82
|
+
async acceptTenantInvitationRequestOpts(requestParameters: AcceptTenantInvitationOperationRequest): Promise<runtime.RequestOpts> {
|
|
83
|
+
if (requestParameters['invitationId'] == null) {
|
|
84
|
+
throw new runtime.RequiredError(
|
|
85
|
+
'invitationId',
|
|
86
|
+
'Required parameter "invitationId" was null or undefined when calling acceptTenantInvitation().'
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (requestParameters['acceptTenantInvitationRequest'] == null) {
|
|
91
|
+
throw new runtime.RequiredError(
|
|
92
|
+
'acceptTenantInvitationRequest',
|
|
93
|
+
'Required parameter "acceptTenantInvitationRequest" was null or undefined when calling acceptTenantInvitation().'
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const queryParameters: any = {};
|
|
98
|
+
|
|
99
|
+
const headerParameters: runtime.HTTPHeaders = {};
|
|
100
|
+
|
|
101
|
+
headerParameters['Content-Type'] = 'application/json';
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
let urlPath = `/v1/tenant-invitations/{invitation_id}/accept`;
|
|
105
|
+
urlPath = urlPath.replace(`{${"invitation_id"}}`, encodeURIComponent(String(requestParameters['invitationId'])));
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
path: urlPath,
|
|
109
|
+
method: 'POST',
|
|
110
|
+
headers: headerParameters,
|
|
111
|
+
query: queryParameters,
|
|
112
|
+
body: AcceptTenantInvitationRequestToJSON(requestParameters['acceptTenantInvitationRequest']),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Accept an invitation, creating the customer tenant and its OWNER. New owner: supply ``password`` — the account is created and signed in. Existing owner: accept while signed in as ``owner_email`` (no password).
|
|
118
|
+
* Accept Tenant Invitation Handler
|
|
119
|
+
*/
|
|
120
|
+
async acceptTenantInvitationRaw(requestParameters: AcceptTenantInvitationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AcceptTenantInvitationResponse>> {
|
|
121
|
+
const requestOptions = await this.acceptTenantInvitationRequestOpts(requestParameters);
|
|
122
|
+
const response = await this.request(requestOptions, initOverrides);
|
|
123
|
+
|
|
124
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => AcceptTenantInvitationResponseFromJSON(jsonValue));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Accept an invitation, creating the customer tenant and its OWNER. New owner: supply ``password`` — the account is created and signed in. Existing owner: accept while signed in as ``owner_email`` (no password).
|
|
129
|
+
* Accept Tenant Invitation Handler
|
|
130
|
+
*/
|
|
131
|
+
async acceptTenantInvitation(requestParameters: AcceptTenantInvitationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AcceptTenantInvitationResponse> {
|
|
132
|
+
const response = await this.acceptTenantInvitationRaw(requestParameters, initOverrides);
|
|
133
|
+
return await response.value();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
}
|
package/src/apis/TenantsApi.ts
CHANGED
|
@@ -191,7 +191,7 @@ export interface TenantsApiInterface {
|
|
|
191
191
|
deleteTenantRequestOpts(requestParameters: DeleteTenantRequest): Promise<runtime.RequestOpts>;
|
|
192
192
|
|
|
193
193
|
/**
|
|
194
|
-
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys
|
|
194
|
+
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys, S3 bucket, and Qdrant vectors after the DB transaction commits.
|
|
195
195
|
* @summary Delete Tenant
|
|
196
196
|
* @param {string} tenantId
|
|
197
197
|
* @param {*} [options] Override http request option.
|
|
@@ -201,7 +201,7 @@ export interface TenantsApiInterface {
|
|
|
201
201
|
deleteTenantRaw(requestParameters: DeleteTenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
|
|
202
202
|
|
|
203
203
|
/**
|
|
204
|
-
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys
|
|
204
|
+
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys, S3 bucket, and Qdrant vectors after the DB transaction commits.
|
|
205
205
|
* Delete Tenant
|
|
206
206
|
*/
|
|
207
207
|
deleteTenant(requestParameters: DeleteTenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
|
|
@@ -621,7 +621,7 @@ export class TenantsApi extends runtime.BaseAPI implements TenantsApiInterface {
|
|
|
621
621
|
}
|
|
622
622
|
|
|
623
623
|
/**
|
|
624
|
-
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys
|
|
624
|
+
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys, S3 bucket, and Qdrant vectors after the DB transaction commits.
|
|
625
625
|
* Delete Tenant
|
|
626
626
|
*/
|
|
627
627
|
async deleteTenantRaw(requestParameters: DeleteTenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
|
|
@@ -632,7 +632,7 @@ export class TenantsApi extends runtime.BaseAPI implements TenantsApiInterface {
|
|
|
632
632
|
}
|
|
633
633
|
|
|
634
634
|
/**
|
|
635
|
-
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys
|
|
635
|
+
* Delete a tenant. Requires OWNER role in the tenant. Refused (409) while a provider-billed subscription is live — deleting the tenant would not stop Stripe/Ping++ from charging for it; the OWNER must downgrade to free (or let the prepay period expire) first. Deletes the tenant\'s LiteLLM team/keys, S3 bucket, and Qdrant vectors after the DB transaction commits.
|
|
636
636
|
* Delete Tenant
|
|
637
637
|
*/
|
|
638
638
|
async deleteTenant(requestParameters: DeleteTenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
|
package/src/apis/index.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from './SubscriptionsApi';
|
|
|
32
32
|
export * from './SystemJobsApi';
|
|
33
33
|
export * from './TagsApi';
|
|
34
34
|
export * from './TenantGroupsApi';
|
|
35
|
+
export * from './TenantInvitationsApi';
|
|
35
36
|
export * from './TenantsApi';
|
|
36
37
|
export * from './ThreadMessagesApi';
|
|
37
38
|
export * from './ThreadsApi';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Knowledge Stack API
|
|
5
|
+
* Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 0.1.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @export
|
|
19
|
+
* @interface AcceptTenantInvitationRequest
|
|
20
|
+
*/
|
|
21
|
+
export interface AcceptTenantInvitationRequest {
|
|
22
|
+
/**
|
|
23
|
+
* Required only when the owner has no existing KS account.
|
|
24
|
+
* @type {string}
|
|
25
|
+
* @memberof AcceptTenantInvitationRequest
|
|
26
|
+
*/
|
|
27
|
+
password?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @memberof AcceptTenantInvitationRequest
|
|
32
|
+
*/
|
|
33
|
+
firstName?: string | null;
|
|
34
|
+
}
|
|
35
|
+
export const AcceptTenantInvitationRequestPropertyValidationAttributesMap: {
|
|
36
|
+
[property: string]: {
|
|
37
|
+
maxLength?: number,
|
|
38
|
+
minLength?: number,
|
|
39
|
+
pattern?: string,
|
|
40
|
+
maximum?: number,
|
|
41
|
+
exclusiveMaximum?: boolean,
|
|
42
|
+
minimum?: number,
|
|
43
|
+
exclusiveMinimum?: boolean,
|
|
44
|
+
multipleOf?: number,
|
|
45
|
+
maxItems?: number,
|
|
46
|
+
minItems?: number,
|
|
47
|
+
uniqueItems?: boolean
|
|
48
|
+
}
|
|
49
|
+
} = {
|
|
50
|
+
password: {
|
|
51
|
+
minLength: 8,
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Check if a given object implements the AcceptTenantInvitationRequest interface.
|
|
58
|
+
*/
|
|
59
|
+
export function instanceOfAcceptTenantInvitationRequest(value: object): value is AcceptTenantInvitationRequest {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function AcceptTenantInvitationRequestFromJSON(json: any): AcceptTenantInvitationRequest {
|
|
64
|
+
return AcceptTenantInvitationRequestFromJSONTyped(json, false);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function AcceptTenantInvitationRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcceptTenantInvitationRequest {
|
|
68
|
+
if (json == null) {
|
|
69
|
+
return json;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
|
|
73
|
+
'password': json['password'] == null ? undefined : json['password'],
|
|
74
|
+
'firstName': json['first_name'] == null ? undefined : json['first_name'],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function AcceptTenantInvitationRequestToJSON(json: any): AcceptTenantInvitationRequest {
|
|
79
|
+
return AcceptTenantInvitationRequestToJSONTyped(json, false);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function AcceptTenantInvitationRequestToJSONTyped(value?: AcceptTenantInvitationRequest | null, ignoreDiscriminator: boolean = false): any {
|
|
83
|
+
if (value == null) {
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
|
|
89
|
+
'password': value['password'],
|
|
90
|
+
'first_name': value['firstName'],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Knowledge Stack API
|
|
5
|
+
* Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 0.1.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { mapValues } from '../runtime';
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @export
|
|
19
|
+
* @interface AcceptTenantInvitationResponse
|
|
20
|
+
*/
|
|
21
|
+
export interface AcceptTenantInvitationResponse {
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @type {string}
|
|
25
|
+
* @memberof AcceptTenantInvitationResponse
|
|
26
|
+
*/
|
|
27
|
+
tenantId: string;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @memberof AcceptTenantInvitationResponse
|
|
32
|
+
*/
|
|
33
|
+
tenantName: string;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @type {string}
|
|
37
|
+
* @memberof AcceptTenantInvitationResponse
|
|
38
|
+
*/
|
|
39
|
+
userId: string;
|
|
40
|
+
}
|
|
41
|
+
export const AcceptTenantInvitationResponsePropertyValidationAttributesMap: {
|
|
42
|
+
[property: string]: {
|
|
43
|
+
maxLength?: number,
|
|
44
|
+
minLength?: number,
|
|
45
|
+
pattern?: string,
|
|
46
|
+
maximum?: number,
|
|
47
|
+
exclusiveMaximum?: boolean,
|
|
48
|
+
minimum?: number,
|
|
49
|
+
exclusiveMinimum?: boolean,
|
|
50
|
+
multipleOf?: number,
|
|
51
|
+
maxItems?: number,
|
|
52
|
+
minItems?: number,
|
|
53
|
+
uniqueItems?: boolean
|
|
54
|
+
}
|
|
55
|
+
} = {
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Check if a given object implements the AcceptTenantInvitationResponse interface.
|
|
61
|
+
*/
|
|
62
|
+
export function instanceOfAcceptTenantInvitationResponse(value: object): value is AcceptTenantInvitationResponse {
|
|
63
|
+
if (!('tenantId' in value) || value['tenantId'] === undefined) return false;
|
|
64
|
+
if (!('tenantName' in value) || value['tenantName'] === undefined) return false;
|
|
65
|
+
if (!('userId' in value) || value['userId'] === undefined) return false;
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function AcceptTenantInvitationResponseFromJSON(json: any): AcceptTenantInvitationResponse {
|
|
70
|
+
return AcceptTenantInvitationResponseFromJSONTyped(json, false);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function AcceptTenantInvitationResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AcceptTenantInvitationResponse {
|
|
74
|
+
if (json == null) {
|
|
75
|
+
return json;
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
|
|
79
|
+
'tenantId': json['tenant_id'],
|
|
80
|
+
'tenantName': json['tenant_name'],
|
|
81
|
+
'userId': json['user_id'],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function AcceptTenantInvitationResponseToJSON(json: any): AcceptTenantInvitationResponse {
|
|
86
|
+
return AcceptTenantInvitationResponseToJSONTyped(json, false);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function AcceptTenantInvitationResponseToJSONTyped(value?: AcceptTenantInvitationResponse | null, ignoreDiscriminator: boolean = false): any {
|
|
90
|
+
if (value == null) {
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
|
|
96
|
+
'tenant_id': value['tenantId'],
|
|
97
|
+
'tenant_name': value['tenantName'],
|
|
98
|
+
'user_id': value['userId'],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
@@ -89,6 +89,18 @@ export interface ChunkMetadata {
|
|
|
89
89
|
* @memberof ChunkMetadata
|
|
90
90
|
*/
|
|
91
91
|
endMs?: number | null;
|
|
92
|
+
/**
|
|
93
|
+
* Every speaker label appearing in this chunk's segments, sorted. Lets a citation say which turn it came from. None when the provider does not diarize.
|
|
94
|
+
* @type {Array<number>}
|
|
95
|
+
* @memberof ChunkMetadata
|
|
96
|
+
*/
|
|
97
|
+
speakers?: Array<number> | null;
|
|
98
|
+
/**
|
|
99
|
+
* Every language the ASR recognised across this chunk's segments, sorted. A meeting routinely code-switches, so a chunk can hold more than one; the document-level language is only the majority label and misreports a bilingual recording. None for non-media chunks and for media ingested before this field existed.
|
|
100
|
+
* @type {Array<string>}
|
|
101
|
+
* @memberof ChunkMetadata
|
|
102
|
+
*/
|
|
103
|
+
languages?: Array<string> | null;
|
|
92
104
|
/**
|
|
93
105
|
* Per-ASR-segment spans inside this media chunk, in order, each carrying its char offset in the chunk content. Lets citation resolution narrow a chunk-level timeframe to the enclosing segment. None for non-media chunks and media ingested before this field existed.
|
|
94
106
|
* @type {Array<SegmentSpan>}
|
|
@@ -195,6 +207,8 @@ export function ChunkMetadataFromJSONTyped(json: any, ignoreDiscriminator: boole
|
|
|
195
207
|
'secondaryTaxonomy': json['secondary_taxonomy'] == null ? undefined : ImageTaxonomyFromJSON(json['secondary_taxonomy']),
|
|
196
208
|
'startMs': json['start_ms'] == null ? undefined : json['start_ms'],
|
|
197
209
|
'endMs': json['end_ms'] == null ? undefined : json['end_ms'],
|
|
210
|
+
'speakers': json['speakers'] == null ? undefined : json['speakers'],
|
|
211
|
+
'languages': json['languages'] == null ? undefined : json['languages'],
|
|
198
212
|
'segments': json['segments'] == null ? undefined : ((json['segments'] as Array<any>).map(SegmentSpanFromJSON)),
|
|
199
213
|
'sheetName': json['sheet_name'] == null ? undefined : json['sheet_name'],
|
|
200
214
|
'blockType': json['block_type'] == null ? undefined : json['block_type'],
|
|
@@ -227,6 +241,8 @@ export function ChunkMetadataToJSONTyped(value?: ChunkMetadata | null, ignoreDis
|
|
|
227
241
|
'secondary_taxonomy': ImageTaxonomyToJSON(value['secondaryTaxonomy']),
|
|
228
242
|
'start_ms': value['startMs'],
|
|
229
243
|
'end_ms': value['endMs'],
|
|
244
|
+
'speakers': value['speakers'],
|
|
245
|
+
'languages': value['languages'],
|
|
230
246
|
'segments': value['segments'] == null ? undefined : ((value['segments'] as Array<any>).map(SegmentSpanToJSON)),
|
|
231
247
|
'sheet_name': value['sheetName'],
|
|
232
248
|
'block_type': value['blockType'],
|
|
@@ -49,6 +49,24 @@ export interface CreateUploadRequest {
|
|
|
49
49
|
* @memberof CreateUploadRequest
|
|
50
50
|
*/
|
|
51
51
|
tagIds?: Array<string>;
|
|
52
|
+
/**
|
|
53
|
+
* Workflow run this upload belongs to; attributes the resulting document to the run in the audit log. Must be sent together with workflow_definition_id, and only by an assumed identity.
|
|
54
|
+
* @type {string}
|
|
55
|
+
* @memberof CreateUploadRequest
|
|
56
|
+
*/
|
|
57
|
+
workflowRunId?: string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Workflow definition for workflow_run_id.
|
|
60
|
+
* @type {string}
|
|
61
|
+
* @memberof CreateUploadRequest
|
|
62
|
+
*/
|
|
63
|
+
workflowDefinitionId?: string | null;
|
|
64
|
+
/**
|
|
65
|
+
* Replay key for callers that retry (e.g. the ZIP fan-out); completing twice with the same key replays the existing document instead of creating a duplicate.
|
|
66
|
+
* @type {string}
|
|
67
|
+
* @memberof CreateUploadRequest
|
|
68
|
+
*/
|
|
69
|
+
idempotencyKey?: string | null;
|
|
52
70
|
}
|
|
53
71
|
export const CreateUploadRequestPropertyValidationAttributesMap: {
|
|
54
72
|
[property: string]: {
|
|
@@ -94,6 +112,9 @@ export function CreateUploadRequestFromJSONTyped(json: any, ignoreDiscriminator:
|
|
|
94
112
|
'filename': json['filename'],
|
|
95
113
|
'sizeBytes': json['size_bytes'],
|
|
96
114
|
'tagIds': json['tag_ids'] == null ? undefined : json['tag_ids'],
|
|
115
|
+
'workflowRunId': json['workflow_run_id'] == null ? undefined : json['workflow_run_id'],
|
|
116
|
+
'workflowDefinitionId': json['workflow_definition_id'] == null ? undefined : json['workflow_definition_id'],
|
|
117
|
+
'idempotencyKey': json['idempotency_key'] == null ? undefined : json['idempotency_key'],
|
|
97
118
|
};
|
|
98
119
|
}
|
|
99
120
|
|
|
@@ -113,6 +134,9 @@ export function CreateUploadRequestToJSONTyped(value?: CreateUploadRequest | nul
|
|
|
113
134
|
'filename': value['filename'],
|
|
114
135
|
'size_bytes': value['sizeBytes'],
|
|
115
136
|
'tag_ids': value['tagIds'],
|
|
137
|
+
'workflow_run_id': value['workflowRunId'],
|
|
138
|
+
'workflow_definition_id': value['workflowDefinitionId'],
|
|
139
|
+
'idempotency_key': value['idempotencyKey'],
|
|
116
140
|
};
|
|
117
141
|
}
|
|
118
142
|
|
|
@@ -34,6 +34,13 @@ import {
|
|
|
34
34
|
InformationStatisticsToJSON,
|
|
35
35
|
InformationStatisticsToJSONTyped,
|
|
36
36
|
} from './InformationStatistics';
|
|
37
|
+
import type { EmailMetadata } from './EmailMetadata';
|
|
38
|
+
import {
|
|
39
|
+
EmailMetadataFromJSON,
|
|
40
|
+
EmailMetadataFromJSONTyped,
|
|
41
|
+
EmailMetadataToJSON,
|
|
42
|
+
EmailMetadataToJSONTyped,
|
|
43
|
+
} from './EmailMetadata';
|
|
37
44
|
|
|
38
45
|
/**
|
|
39
46
|
* Schema for document_version.system_metadata JSONB field.
|
|
@@ -134,6 +141,12 @@ export interface DocumentVersionMetadata {
|
|
|
134
141
|
* @memberof DocumentVersionMetadata
|
|
135
142
|
*/
|
|
136
143
|
segmentCount?: number | null;
|
|
144
|
+
/**
|
|
145
|
+
* Structured email headers; null for non-email documents
|
|
146
|
+
* @type {EmailMetadata}
|
|
147
|
+
* @memberof DocumentVersionMetadata
|
|
148
|
+
*/
|
|
149
|
+
email?: EmailMetadata | null;
|
|
137
150
|
/**
|
|
138
151
|
* Total formula cells in the workbook (XLSX only)
|
|
139
152
|
* @type {number}
|
|
@@ -256,6 +269,7 @@ export function DocumentVersionMetadataFromJSONTyped(json: any, ignoreDiscrimina
|
|
|
256
269
|
'durationMs': json['duration_ms'] == null ? undefined : json['duration_ms'],
|
|
257
270
|
'language': json['language'] == null ? undefined : json['language'],
|
|
258
271
|
'segmentCount': json['segment_count'] == null ? undefined : json['segment_count'],
|
|
272
|
+
'email': json['email'] == null ? undefined : EmailMetadataFromJSON(json['email']),
|
|
259
273
|
'totalFormulas': json['total_formulas'] == null ? undefined : json['total_formulas'],
|
|
260
274
|
'xlsxParseResultS3': json['xlsx_parse_result_s3'] == null ? undefined : json['xlsx_parse_result_s3'],
|
|
261
275
|
'xlsxNamedRanges': json['xlsx_named_ranges'] == null ? undefined : json['xlsx_named_ranges'],
|
|
@@ -296,6 +310,7 @@ export function DocumentVersionMetadataToJSONTyped(value?: DocumentVersionMetada
|
|
|
296
310
|
'duration_ms': value['durationMs'],
|
|
297
311
|
'language': value['language'],
|
|
298
312
|
'segment_count': value['segmentCount'],
|
|
313
|
+
'email': EmailMetadataToJSON(value['email']),
|
|
299
314
|
'total_formulas': value['totalFormulas'],
|
|
300
315
|
'xlsx_parse_result_s3': value['xlsxParseResultS3'],
|
|
301
316
|
'xlsx_named_ranges': value['xlsxNamedRanges'],
|
|
@@ -34,6 +34,13 @@ import {
|
|
|
34
34
|
InformationStatisticsToJSON,
|
|
35
35
|
InformationStatisticsToJSONTyped,
|
|
36
36
|
} from './InformationStatistics';
|
|
37
|
+
import type { EmailMetadata } from './EmailMetadata';
|
|
38
|
+
import {
|
|
39
|
+
EmailMetadataFromJSON,
|
|
40
|
+
EmailMetadataFromJSONTyped,
|
|
41
|
+
EmailMetadataToJSON,
|
|
42
|
+
EmailMetadataToJSONTyped,
|
|
43
|
+
} from './EmailMetadata';
|
|
37
44
|
|
|
38
45
|
/**
|
|
39
46
|
* Partial update schema for document version metadata.
|
|
@@ -146,6 +153,12 @@ export interface DocumentVersionMetadataUpdate {
|
|
|
146
153
|
* @memberof DocumentVersionMetadataUpdate
|
|
147
154
|
*/
|
|
148
155
|
segmentCount?: number | null;
|
|
156
|
+
/**
|
|
157
|
+
*
|
|
158
|
+
* @type {EmailMetadata}
|
|
159
|
+
* @memberof DocumentVersionMetadataUpdate
|
|
160
|
+
*/
|
|
161
|
+
email?: EmailMetadata | null;
|
|
149
162
|
/**
|
|
150
163
|
*
|
|
151
164
|
* @type {number}
|
|
@@ -265,6 +278,7 @@ export function DocumentVersionMetadataUpdateFromJSONTyped(json: any, ignoreDisc
|
|
|
265
278
|
'durationMs': json['duration_ms'] == null ? undefined : json['duration_ms'],
|
|
266
279
|
'language': json['language'] == null ? undefined : json['language'],
|
|
267
280
|
'segmentCount': json['segment_count'] == null ? undefined : json['segment_count'],
|
|
281
|
+
'email': json['email'] == null ? undefined : EmailMetadataFromJSON(json['email']),
|
|
268
282
|
'totalFormulas': json['total_formulas'] == null ? undefined : json['total_formulas'],
|
|
269
283
|
'xlsxParseResultS3': json['xlsx_parse_result_s3'] == null ? undefined : json['xlsx_parse_result_s3'],
|
|
270
284
|
'xlsxNamedRanges': json['xlsx_named_ranges'] == null ? undefined : json['xlsx_named_ranges'],
|
|
@@ -307,6 +321,7 @@ export function DocumentVersionMetadataUpdateToJSONTyped(value?: DocumentVersion
|
|
|
307
321
|
'duration_ms': value['durationMs'],
|
|
308
322
|
'language': value['language'],
|
|
309
323
|
'segment_count': value['segmentCount'],
|
|
324
|
+
'email': EmailMetadataToJSON(value['email']),
|
|
310
325
|
'total_formulas': value['totalFormulas'],
|
|
311
326
|
'xlsx_parse_result_s3': value['xlsxParseResultS3'],
|
|
312
327
|
'xlsx_named_ranges': value['xlsxNamedRanges'],
|