@knowledge-stack/ksapi 1.49.0 → 1.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.openapi-generator/FILES +6 -2
  2. package/README.md +7 -3
  3. package/dist/apis/TenantsApi.d.ts +98 -1
  4. package/dist/apis/TenantsApi.js +116 -0
  5. package/dist/esm/apis/TenantsApi.d.ts +98 -1
  6. package/dist/esm/apis/TenantsApi.js +116 -0
  7. package/dist/esm/models/BrandingLogoType.d.ts +26 -0
  8. package/dist/esm/models/BrandingLogoType.js +44 -0
  9. package/dist/esm/models/TenantBrandingResponse.d.ts +79 -0
  10. package/dist/esm/models/TenantBrandingResponse.js +52 -0
  11. package/dist/esm/models/TenantResponse.d.ts +10 -3
  12. package/dist/esm/models/TenantResponse.js +6 -3
  13. package/dist/esm/models/TenantSettingsResponse.d.ts +54 -0
  14. package/dist/esm/models/TenantSettingsResponse.js +49 -0
  15. package/dist/esm/models/TenantSettingsUpdate.d.ts +20 -0
  16. package/dist/esm/models/TenantSettingsUpdate.js +6 -0
  17. package/dist/esm/models/index.d.ts +3 -1
  18. package/dist/esm/models/index.js +3 -1
  19. package/dist/models/BrandingLogoType.d.ts +26 -0
  20. package/dist/models/BrandingLogoType.js +52 -0
  21. package/dist/models/TenantBrandingResponse.d.ts +79 -0
  22. package/dist/models/TenantBrandingResponse.js +60 -0
  23. package/dist/models/TenantResponse.d.ts +10 -3
  24. package/dist/models/TenantResponse.js +6 -3
  25. package/dist/models/TenantSettingsResponse.d.ts +54 -0
  26. package/dist/models/TenantSettingsResponse.js +57 -0
  27. package/dist/models/TenantSettingsUpdate.d.ts +20 -0
  28. package/dist/models/TenantSettingsUpdate.js +6 -0
  29. package/dist/models/index.d.ts +3 -1
  30. package/dist/models/index.js +3 -1
  31. package/docs/BrandingLogoType.md +33 -0
  32. package/docs/TenantBrandingResponse.md +45 -0
  33. package/docs/TenantResponse.md +3 -1
  34. package/docs/{TenantSettings.md → TenantSettingsResponse.md} +5 -4
  35. package/docs/TenantSettingsUpdate.md +6 -0
  36. package/docs/TenantsApi.md +159 -0
  37. package/package.json +1 -1
  38. package/src/apis/TenantsApi.ts +218 -0
  39. package/src/models/BrandingLogoType.ts +54 -0
  40. package/src/models/TenantBrandingResponse.ts +122 -0
  41. package/src/models/TenantResponse.ts +25 -10
  42. package/src/models/{TenantSettings.ts → TenantSettingsResponse.ts} +20 -18
  43. package/src/models/TenantSettingsUpdate.ts +24 -0
  44. package/src/models/index.ts +3 -1
  45. package/dist/esm/models/TenantSettings.d.ts +0 -54
  46. package/dist/esm/models/TenantSettings.js +0 -45
  47. package/dist/models/TenantSettings.d.ts +0 -54
  48. package/dist/models/TenantSettings.js +0 -53
@@ -19,7 +19,8 @@ exports.TenantResponseFromJSON = TenantResponseFromJSON;
19
19
  exports.TenantResponseFromJSONTyped = TenantResponseFromJSONTyped;
20
20
  exports.TenantResponseToJSON = TenantResponseToJSON;
21
21
  exports.TenantResponseToJSONTyped = TenantResponseToJSONTyped;
22
- const TenantSettings_1 = require("./TenantSettings");
22
+ const TenantBrandingResponse_1 = require("./TenantBrandingResponse");
23
+ const TenantSettingsResponse_1 = require("./TenantSettingsResponse");
23
24
  /**
24
25
  * Check if a given object implements the TenantResponse interface.
25
26
  */
@@ -43,7 +44,8 @@ function TenantResponseFromJSONTyped(json, ignoreDiscriminator) {
43
44
  'id': json['id'],
44
45
  'name': json['name'],
45
46
  'idpConfig': json['idp_config'] == null ? undefined : json['idp_config'],
46
- 'settings': (0, TenantSettings_1.TenantSettingsFromJSON)(json['settings']),
47
+ 'settings': (0, TenantSettingsResponse_1.TenantSettingsResponseFromJSON)(json['settings']),
48
+ 'branding': json['branding'] == null ? undefined : (0, TenantBrandingResponse_1.TenantBrandingResponseFromJSON)(json['branding']),
47
49
  };
48
50
  }
49
51
  function TenantResponseToJSON(json) {
@@ -57,7 +59,8 @@ function TenantResponseToJSONTyped(value, ignoreDiscriminator = false) {
57
59
  'id': value['id'],
58
60
  'name': value['name'],
59
61
  'idp_config': value['idpConfig'],
60
- 'settings': (0, TenantSettings_1.TenantSettingsToJSON)(value['settings']),
62
+ 'settings': (0, TenantSettingsResponse_1.TenantSettingsResponseToJSON)(value['settings']),
63
+ 'branding': (0, TenantBrandingResponse_1.TenantBrandingResponseToJSON)(value['branding']),
61
64
  };
62
65
  }
63
66
  exports.TenantResponsePropertyValidationAttributesMap = {};
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Knowledge Stack API
3
+ * Knowledge Stack backend API for authentication and knowledge management
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { SupportedLanguage } from './SupportedLanguage';
13
+ /**
14
+ * Tenant settings as exposed via API (no internal S3 URIs).
15
+ * @export
16
+ * @interface TenantSettingsResponse
17
+ */
18
+ export interface TenantSettingsResponse {
19
+ /**
20
+ *
21
+ * @type {SupportedLanguage}
22
+ * @memberof TenantSettingsResponse
23
+ */
24
+ language: SupportedLanguage;
25
+ /**
26
+ * Tenant description
27
+ * @type {string}
28
+ * @memberof TenantSettingsResponse
29
+ */
30
+ description: string;
31
+ }
32
+ /**
33
+ * Check if a given object implements the TenantSettingsResponse interface.
34
+ */
35
+ export declare function instanceOfTenantSettingsResponse(value: object): value is TenantSettingsResponse;
36
+ export declare function TenantSettingsResponseFromJSON(json: any): TenantSettingsResponse;
37
+ export declare function TenantSettingsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): TenantSettingsResponse;
38
+ export declare function TenantSettingsResponseToJSON(json: any): TenantSettingsResponse;
39
+ export declare function TenantSettingsResponseToJSONTyped(value?: TenantSettingsResponse | null, ignoreDiscriminator?: boolean): any;
40
+ export declare const TenantSettingsResponsePropertyValidationAttributesMap: {
41
+ [property: string]: {
42
+ maxLength?: number;
43
+ minLength?: number;
44
+ pattern?: string;
45
+ maximum?: number;
46
+ exclusiveMaximum?: boolean;
47
+ minimum?: number;
48
+ exclusiveMinimum?: boolean;
49
+ multipleOf?: number;
50
+ maxItems?: number;
51
+ minItems?: number;
52
+ uniqueItems?: boolean;
53
+ };
54
+ };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Knowledge Stack API
6
+ * Knowledge Stack backend API for authentication and knowledge management
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.TenantSettingsResponsePropertyValidationAttributesMap = void 0;
17
+ exports.instanceOfTenantSettingsResponse = instanceOfTenantSettingsResponse;
18
+ exports.TenantSettingsResponseFromJSON = TenantSettingsResponseFromJSON;
19
+ exports.TenantSettingsResponseFromJSONTyped = TenantSettingsResponseFromJSONTyped;
20
+ exports.TenantSettingsResponseToJSON = TenantSettingsResponseToJSON;
21
+ exports.TenantSettingsResponseToJSONTyped = TenantSettingsResponseToJSONTyped;
22
+ const SupportedLanguage_1 = require("./SupportedLanguage");
23
+ /**
24
+ * Check if a given object implements the TenantSettingsResponse interface.
25
+ */
26
+ function instanceOfTenantSettingsResponse(value) {
27
+ if (!('language' in value) || value['language'] === undefined)
28
+ return false;
29
+ if (!('description' in value) || value['description'] === undefined)
30
+ return false;
31
+ return true;
32
+ }
33
+ function TenantSettingsResponseFromJSON(json) {
34
+ return TenantSettingsResponseFromJSONTyped(json, false);
35
+ }
36
+ function TenantSettingsResponseFromJSONTyped(json, ignoreDiscriminator) {
37
+ if (json == null) {
38
+ return json;
39
+ }
40
+ return {
41
+ 'language': (0, SupportedLanguage_1.SupportedLanguageFromJSON)(json['language']),
42
+ 'description': json['description'],
43
+ };
44
+ }
45
+ function TenantSettingsResponseToJSON(json) {
46
+ return TenantSettingsResponseToJSONTyped(json, false);
47
+ }
48
+ function TenantSettingsResponseToJSONTyped(value, ignoreDiscriminator = false) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'language': (0, SupportedLanguage_1.SupportedLanguageToJSON)(value['language']),
54
+ 'description': value['description'],
55
+ };
56
+ }
57
+ exports.TenantSettingsResponsePropertyValidationAttributesMap = {};
@@ -28,6 +28,26 @@ export interface TenantSettingsUpdate {
28
28
  * @memberof TenantSettingsUpdate
29
29
  */
30
30
  description?: string | null;
31
+ /**
32
+ * Custom brand name for logo
33
+ * @type {string}
34
+ * @memberof TenantSettingsUpdate
35
+ */
36
+ brandName?: string | null;
37
+ /**
38
+ * Primary brand hex color (e.g. '#2563eb')
39
+ * @type {string}
40
+ * @memberof TenantSettingsUpdate
41
+ */
42
+ brandColor?: string | null;
43
+ /**
44
+ * Custom CSS variable overrides
45
+ * @type {{ [key: string]: string; }}
46
+ * @memberof TenantSettingsUpdate
47
+ */
48
+ themeOverrides?: {
49
+ [key: string]: string;
50
+ } | null;
31
51
  }
32
52
  /**
33
53
  * Check if a given object implements the TenantSettingsUpdate interface.
@@ -36,6 +36,9 @@ function TenantSettingsUpdateFromJSONTyped(json, ignoreDiscriminator) {
36
36
  return {
37
37
  'language': json['language'] == null ? undefined : (0, SupportedLanguage_1.SupportedLanguageFromJSON)(json['language']),
38
38
  'description': json['description'] == null ? undefined : json['description'],
39
+ 'brandName': json['brand_name'] == null ? undefined : json['brand_name'],
40
+ 'brandColor': json['brand_color'] == null ? undefined : json['brand_color'],
41
+ 'themeOverrides': json['theme_overrides'] == null ? undefined : json['theme_overrides'],
39
42
  };
40
43
  }
41
44
  function TenantSettingsUpdateToJSON(json) {
@@ -48,6 +51,9 @@ function TenantSettingsUpdateToJSONTyped(value, ignoreDiscriminator = false) {
48
51
  return {
49
52
  'language': (0, SupportedLanguage_1.SupportedLanguageToJSON)(value['language']),
50
53
  'description': value['description'],
54
+ 'brand_name': value['brandName'],
55
+ 'brand_color': value['brandColor'],
56
+ 'theme_overrides': value['themeOverrides'],
51
57
  };
52
58
  }
53
59
  exports.TenantSettingsUpdatePropertyValidationAttributesMap = {};
@@ -1,6 +1,7 @@
1
1
  export * from './AcceptInviteResponse';
2
2
  export * from './ApiKeyResponse';
3
3
  export * from './Args';
4
+ export * from './BrandingLogoType';
4
5
  export * from './BulkTagRequest';
5
6
  export * from './ChunkBulkResponse';
6
7
  export * from './ChunkContentItem';
@@ -97,8 +98,9 @@ export * from './SubtreeChunkGroup';
97
98
  export * from './SubtreeChunksResponse';
98
99
  export * from './SupportedLanguage';
99
100
  export * from './TagResponse';
101
+ export * from './TenantBrandingResponse';
100
102
  export * from './TenantResponse';
101
- export * from './TenantSettings';
103
+ export * from './TenantSettingsResponse';
102
104
  export * from './TenantSettingsUpdate';
103
105
  export * from './TenantUserEditRequest';
104
106
  export * from './TenantUserResponse';
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  __exportStar(require("./AcceptInviteResponse"), exports);
20
20
  __exportStar(require("./ApiKeyResponse"), exports);
21
21
  __exportStar(require("./Args"), exports);
22
+ __exportStar(require("./BrandingLogoType"), exports);
22
23
  __exportStar(require("./BulkTagRequest"), exports);
23
24
  __exportStar(require("./ChunkBulkResponse"), exports);
24
25
  __exportStar(require("./ChunkContentItem"), exports);
@@ -115,8 +116,9 @@ __exportStar(require("./SubtreeChunkGroup"), exports);
115
116
  __exportStar(require("./SubtreeChunksResponse"), exports);
116
117
  __exportStar(require("./SupportedLanguage"), exports);
117
118
  __exportStar(require("./TagResponse"), exports);
119
+ __exportStar(require("./TenantBrandingResponse"), exports);
118
120
  __exportStar(require("./TenantResponse"), exports);
119
- __exportStar(require("./TenantSettings"), exports);
121
+ __exportStar(require("./TenantSettingsResponse"), exports);
120
122
  __exportStar(require("./TenantSettingsUpdate"), exports);
121
123
  __exportStar(require("./TenantUserEditRequest"), exports);
122
124
  __exportStar(require("./TenantUserResponse"), exports);
@@ -0,0 +1,33 @@
1
+
2
+ # BrandingLogoType
3
+
4
+ Types of branding logos that can be uploaded.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import type { BrandingLogoType } from '@knowledge-stack/ksapi'
15
+
16
+ // TODO: Update the object below with actual values
17
+ const example = {
18
+ } satisfies BrandingLogoType
19
+
20
+ console.log(example)
21
+
22
+ // Convert the instance to a JSON string
23
+ const exampleJSON: string = JSON.stringify(example)
24
+ console.log(exampleJSON)
25
+
26
+ // Parse the JSON string back to an object
27
+ const exampleParsed = JSON.parse(exampleJSON) as BrandingLogoType
28
+ console.log(exampleParsed)
29
+ ```
30
+
31
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
32
+
33
+
@@ -0,0 +1,45 @@
1
+
2
+ # TenantBrandingResponse
3
+
4
+ Resolved branding with presigned URLs instead of internal S3 URIs.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `brandName` | string
11
+ `brandColor` | string
12
+ `logoUrl` | string
13
+ `logoDarkUrl` | string
14
+ `faviconUrl` | string
15
+ `themeOverrides` | { [key: string]: string; }
16
+
17
+ ## Example
18
+
19
+ ```typescript
20
+ import type { TenantBrandingResponse } from '@knowledge-stack/ksapi'
21
+
22
+ // TODO: Update the object below with actual values
23
+ const example = {
24
+ "brandName": null,
25
+ "brandColor": null,
26
+ "logoUrl": null,
27
+ "logoDarkUrl": null,
28
+ "faviconUrl": null,
29
+ "themeOverrides": null,
30
+ } satisfies TenantBrandingResponse
31
+
32
+ console.log(example)
33
+
34
+ // Convert the instance to a JSON string
35
+ const exampleJSON: string = JSON.stringify(example)
36
+ console.log(exampleJSON)
37
+
38
+ // Parse the JSON string back to an object
39
+ const exampleParsed = JSON.parse(exampleJSON) as TenantBrandingResponse
40
+ console.log(exampleParsed)
41
+ ```
42
+
43
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
44
+
45
+
@@ -10,7 +10,8 @@ Name | Type
10
10
  `id` | string
11
11
  `name` | string
12
12
  `idpConfig` | { [key: string]: string; }
13
- `settings` | [TenantSettings](TenantSettings.md)
13
+ `settings` | [TenantSettingsResponse](TenantSettingsResponse.md)
14
+ `branding` | [TenantBrandingResponse](TenantBrandingResponse.md)
14
15
 
15
16
  ## Example
16
17
 
@@ -23,6 +24,7 @@ const example = {
23
24
  "name": null,
24
25
  "idpConfig": null,
25
26
  "settings": null,
27
+ "branding": null,
26
28
  } satisfies TenantResponse
27
29
 
28
30
  console.log(example)
@@ -1,6 +1,7 @@
1
1
 
2
- # TenantSettings
2
+ # TenantSettingsResponse
3
3
 
4
+ Tenant settings as exposed via API (no internal S3 URIs).
4
5
 
5
6
  ## Properties
6
7
 
@@ -12,13 +13,13 @@ Name | Type
12
13
  ## Example
13
14
 
14
15
  ```typescript
15
- import type { TenantSettings } from '@knowledge-stack/ksapi'
16
+ import type { TenantSettingsResponse } from '@knowledge-stack/ksapi'
16
17
 
17
18
  // TODO: Update the object below with actual values
18
19
  const example = {
19
20
  "language": null,
20
21
  "description": null,
21
- } satisfies TenantSettings
22
+ } satisfies TenantSettingsResponse
22
23
 
23
24
  console.log(example)
24
25
 
@@ -27,7 +28,7 @@ const exampleJSON: string = JSON.stringify(example)
27
28
  console.log(exampleJSON)
28
29
 
29
30
  // Parse the JSON string back to an object
30
- const exampleParsed = JSON.parse(exampleJSON) as TenantSettings
31
+ const exampleParsed = JSON.parse(exampleJSON) as TenantSettingsResponse
31
32
  console.log(exampleParsed)
32
33
  ```
33
34
 
@@ -9,6 +9,9 @@ Name | Type
9
9
  ------------ | -------------
10
10
  `language` | [SupportedLanguage](SupportedLanguage.md)
11
11
  `description` | string
12
+ `brandName` | string
13
+ `brandColor` | string
14
+ `themeOverrides` | { [key: string]: string; }
12
15
 
13
16
  ## Example
14
17
 
@@ -19,6 +22,9 @@ import type { TenantSettingsUpdate } from '@knowledge-stack/ksapi'
19
22
  const example = {
20
23
  "language": null,
21
24
  "description": null,
25
+ "brandName": null,
26
+ "brandColor": null,
27
+ "themeOverrides": null,
22
28
  } satisfies TenantSettingsUpdate
23
29
 
24
30
  console.log(example)
@@ -6,12 +6,14 @@ All URIs are relative to *http://localhost:8000*
6
6
  |------------- | ------------- | -------------|
7
7
  | [**createTenant**](TenantsApi.md#createtenantoperation) | **POST** /v1/tenants | Create Tenant |
8
8
  | [**deleteTenant**](TenantsApi.md#deletetenant) | **DELETE** /v1/tenants/{tenant_id} | Delete Tenant |
9
+ | [**deleteTenantLogo**](TenantsApi.md#deletetenantlogo) | **DELETE** /v1/tenants/{tenant_id}/branding/logo | Delete Tenant Logo |
9
10
  | [**deleteTenantUser**](TenantsApi.md#deletetenantuser) | **DELETE** /v1/tenants/{tenant_id}/users/{user_id} | Delete Tenant User |
10
11
  | [**getTenant**](TenantsApi.md#gettenant) | **GET** /v1/tenants/{tenant_id} | Get Tenant |
11
12
  | [**listTenantUsers**](TenantsApi.md#listtenantusers) | **GET** /v1/tenants/{tenant_id}/users | List Tenant Users |
12
13
  | [**listTenants**](TenantsApi.md#listtenants) | **GET** /v1/tenants | List Tenants |
13
14
  | [**updateTenant**](TenantsApi.md#updatetenantoperation) | **PATCH** /v1/tenants/{tenant_id} | Update Tenant |
14
15
  | [**updateTenantUser**](TenantsApi.md#updatetenantuser) | **PATCH** /v1/tenants/{tenant_id}/users/{user_id} | Update Tenant User |
16
+ | [**uploadTenantLogo**](TenantsApi.md#uploadtenantlogo) | **POST** /v1/tenants/{tenant_id}/branding/logo | Upload Tenant Logo |
15
17
 
16
18
 
17
19
 
@@ -163,6 +165,83 @@ No authorization required
163
165
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
164
166
 
165
167
 
168
+ ## deleteTenantLogo
169
+
170
+ > TenantResponse deleteTenantLogo(tenantId, logoType, authorization, ksUat)
171
+
172
+ Delete Tenant Logo
173
+
174
+ Delete a branding logo. Requires OWNER or ADMIN role.
175
+
176
+ ### Example
177
+
178
+ ```ts
179
+ import {
180
+ Configuration,
181
+ TenantsApi,
182
+ } from '@knowledge-stack/ksapi';
183
+ import type { DeleteTenantLogoRequest } from '@knowledge-stack/ksapi';
184
+
185
+ async function example() {
186
+ console.log("🚀 Testing @knowledge-stack/ksapi SDK...");
187
+ const api = new TenantsApi();
188
+
189
+ const body = {
190
+ // string
191
+ tenantId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
192
+ // BrandingLogoType (optional)
193
+ logoType: ...,
194
+ // string (optional)
195
+ authorization: authorization_example,
196
+ // string (optional)
197
+ ksUat: ksUat_example,
198
+ } satisfies DeleteTenantLogoRequest;
199
+
200
+ try {
201
+ const data = await api.deleteTenantLogo(body);
202
+ console.log(data);
203
+ } catch (error) {
204
+ console.error(error);
205
+ }
206
+ }
207
+
208
+ // Run the test
209
+ example().catch(console.error);
210
+ ```
211
+
212
+ ### Parameters
213
+
214
+
215
+ | Name | Type | Description | Notes |
216
+ |------------- | ------------- | ------------- | -------------|
217
+ | **tenantId** | `string` | | [Defaults to `undefined`] |
218
+ | **logoType** | `BrandingLogoType` | | [Optional] [Defaults to `undefined`] [Enum: logo, logo_dark, favicon] |
219
+ | **authorization** | `string` | | [Optional] [Defaults to `undefined`] |
220
+ | **ksUat** | `string` | | [Optional] [Defaults to `undefined`] |
221
+
222
+ ### Return type
223
+
224
+ [**TenantResponse**](TenantResponse.md)
225
+
226
+ ### Authorization
227
+
228
+ No authorization required
229
+
230
+ ### HTTP request headers
231
+
232
+ - **Content-Type**: Not defined
233
+ - **Accept**: `application/json`
234
+
235
+
236
+ ### HTTP response details
237
+ | Status code | Description | Response headers |
238
+ |-------------|-------------|------------------|
239
+ | **200** | Successful Response | - |
240
+ | **422** | Validation Error | - |
241
+
242
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
243
+
244
+
166
245
  ## deleteTenantUser
167
246
 
168
247
  > deleteTenantUser(tenantId, userId, authorization, ksUat)
@@ -627,3 +706,83 @@ No authorization required
627
706
 
628
707
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
629
708
 
709
+
710
+ ## uploadTenantLogo
711
+
712
+ > TenantResponse uploadTenantLogo(tenantId, file, authorization, ksUat, logoType)
713
+
714
+ Upload Tenant Logo
715
+
716
+ Upload a branding logo (primary, dark-mode variant, or favicon). Requires OWNER or ADMIN role. Accepted image types: PNG, JPEG, SVG, WebP, ICO. Max 2 MB.
717
+
718
+ ### Example
719
+
720
+ ```ts
721
+ import {
722
+ Configuration,
723
+ TenantsApi,
724
+ } from '@knowledge-stack/ksapi';
725
+ import type { UploadTenantLogoRequest } from '@knowledge-stack/ksapi';
726
+
727
+ async function example() {
728
+ console.log("🚀 Testing @knowledge-stack/ksapi SDK...");
729
+ const api = new TenantsApi();
730
+
731
+ const body = {
732
+ // string
733
+ tenantId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
734
+ // Blob
735
+ file: BINARY_DATA_HERE,
736
+ // string (optional)
737
+ authorization: authorization_example,
738
+ // string (optional)
739
+ ksUat: ksUat_example,
740
+ // BrandingLogoType (optional)
741
+ logoType: ...,
742
+ } satisfies UploadTenantLogoRequest;
743
+
744
+ try {
745
+ const data = await api.uploadTenantLogo(body);
746
+ console.log(data);
747
+ } catch (error) {
748
+ console.error(error);
749
+ }
750
+ }
751
+
752
+ // Run the test
753
+ example().catch(console.error);
754
+ ```
755
+
756
+ ### Parameters
757
+
758
+
759
+ | Name | Type | Description | Notes |
760
+ |------------- | ------------- | ------------- | -------------|
761
+ | **tenantId** | `string` | | [Defaults to `undefined`] |
762
+ | **file** | `Blob` | | [Defaults to `undefined`] |
763
+ | **authorization** | `string` | | [Optional] [Defaults to `undefined`] |
764
+ | **ksUat** | `string` | | [Optional] [Defaults to `undefined`] |
765
+ | **logoType** | `BrandingLogoType` | | [Optional] [Defaults to `undefined`] [Enum: logo, logo_dark, favicon] |
766
+
767
+ ### Return type
768
+
769
+ [**TenantResponse**](TenantResponse.md)
770
+
771
+ ### Authorization
772
+
773
+ No authorization required
774
+
775
+ ### HTTP request headers
776
+
777
+ - **Content-Type**: `multipart/form-data`
778
+ - **Accept**: `application/json`
779
+
780
+
781
+ ### HTTP response details
782
+ | Status code | Description | Response headers |
783
+ |-------------|-------------|------------------|
784
+ | **200** | Successful Response | - |
785
+ | **422** | Validation Error | - |
786
+
787
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
788
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowledge-stack/ksapi",
3
- "version": "1.49.0",
3
+ "version": "1.51.0",
4
4
  "description": "OpenAPI client for @knowledge-stack/ksapi",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {