@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
@@ -15,6 +15,7 @@
15
15
 
16
16
  import * as runtime from '../runtime';
17
17
  import type {
18
+ BrandingLogoType,
18
19
  CreateTenantRequest,
19
20
  HTTPValidationError,
20
21
  PaginatedResponseTenantResponse,
@@ -25,6 +26,8 @@ import type {
25
26
  UpdateTenantRequest,
26
27
  } from '../models/index';
27
28
  import {
29
+ BrandingLogoTypeFromJSON,
30
+ BrandingLogoTypeToJSON,
28
31
  CreateTenantRequestFromJSON,
29
32
  CreateTenantRequestToJSON,
30
33
  HTTPValidationErrorFromJSON,
@@ -55,6 +58,13 @@ export interface DeleteTenantRequest {
55
58
  ksUat?: string | null;
56
59
  }
57
60
 
61
+ export interface DeleteTenantLogoRequest {
62
+ tenantId: string;
63
+ logoType?: BrandingLogoType;
64
+ authorization?: string | null;
65
+ ksUat?: string | null;
66
+ }
67
+
58
68
  export interface DeleteTenantUserRequest {
59
69
  tenantId: string;
60
70
  userId: string;
@@ -98,6 +108,14 @@ export interface UpdateTenantUserRequest {
98
108
  ksUat?: string | null;
99
109
  }
100
110
 
111
+ export interface UploadTenantLogoRequest {
112
+ tenantId: string;
113
+ file: Blob;
114
+ authorization?: string | null;
115
+ ksUat?: string | null;
116
+ logoType?: BrandingLogoType;
117
+ }
118
+
101
119
  /**
102
120
  * TenantsApi - interface
103
121
  *
@@ -161,6 +179,36 @@ export interface TenantsApiInterface {
161
179
  */
162
180
  deleteTenant(requestParameters: DeleteTenantRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
163
181
 
182
+ /**
183
+ * Creates request options for deleteTenantLogo without sending the request
184
+ * @param {string} tenantId
185
+ * @param {BrandingLogoType} [logoType]
186
+ * @param {string} [authorization]
187
+ * @param {string} [ksUat]
188
+ * @throws {RequiredError}
189
+ * @memberof TenantsApiInterface
190
+ */
191
+ deleteTenantLogoRequestOpts(requestParameters: DeleteTenantLogoRequest): Promise<runtime.RequestOpts>;
192
+
193
+ /**
194
+ * Delete a branding logo. Requires OWNER or ADMIN role.
195
+ * @summary Delete Tenant Logo
196
+ * @param {string} tenantId
197
+ * @param {BrandingLogoType} [logoType]
198
+ * @param {string} [authorization]
199
+ * @param {string} [ksUat]
200
+ * @param {*} [options] Override http request option.
201
+ * @throws {RequiredError}
202
+ * @memberof TenantsApiInterface
203
+ */
204
+ deleteTenantLogoRaw(requestParameters: DeleteTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TenantResponse>>;
205
+
206
+ /**
207
+ * Delete a branding logo. Requires OWNER or ADMIN role.
208
+ * Delete Tenant Logo
209
+ */
210
+ deleteTenantLogo(requestParameters: DeleteTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TenantResponse>;
211
+
164
212
  /**
165
213
  * Creates request options for deleteTenantUser without sending the request
166
214
  * @param {string} tenantId
@@ -343,6 +391,38 @@ export interface TenantsApiInterface {
343
391
  */
344
392
  updateTenantUser(requestParameters: UpdateTenantUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TenantUserResponse>;
345
393
 
394
+ /**
395
+ * Creates request options for uploadTenantLogo without sending the request
396
+ * @param {string} tenantId
397
+ * @param {Blob} file
398
+ * @param {string} [authorization]
399
+ * @param {string} [ksUat]
400
+ * @param {BrandingLogoType} [logoType]
401
+ * @throws {RequiredError}
402
+ * @memberof TenantsApiInterface
403
+ */
404
+ uploadTenantLogoRequestOpts(requestParameters: UploadTenantLogoRequest): Promise<runtime.RequestOpts>;
405
+
406
+ /**
407
+ * 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.
408
+ * @summary Upload Tenant Logo
409
+ * @param {string} tenantId
410
+ * @param {Blob} file
411
+ * @param {string} [authorization]
412
+ * @param {string} [ksUat]
413
+ * @param {BrandingLogoType} [logoType]
414
+ * @param {*} [options] Override http request option.
415
+ * @throws {RequiredError}
416
+ * @memberof TenantsApiInterface
417
+ */
418
+ uploadTenantLogoRaw(requestParameters: UploadTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TenantResponse>>;
419
+
420
+ /**
421
+ * 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.
422
+ * Upload Tenant Logo
423
+ */
424
+ uploadTenantLogo(requestParameters: UploadTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TenantResponse>;
425
+
346
426
  }
347
427
 
348
428
  /**
@@ -453,6 +533,61 @@ export class TenantsApi extends runtime.BaseAPI implements TenantsApiInterface {
453
533
  await this.deleteTenantRaw(requestParameters, initOverrides);
454
534
  }
455
535
 
536
+ /**
537
+ * Creates request options for deleteTenantLogo without sending the request
538
+ */
539
+ async deleteTenantLogoRequestOpts(requestParameters: DeleteTenantLogoRequest): Promise<runtime.RequestOpts> {
540
+ if (requestParameters['tenantId'] == null) {
541
+ throw new runtime.RequiredError(
542
+ 'tenantId',
543
+ 'Required parameter "tenantId" was null or undefined when calling deleteTenantLogo().'
544
+ );
545
+ }
546
+
547
+ const queryParameters: any = {};
548
+
549
+ if (requestParameters['logoType'] != null) {
550
+ queryParameters['logo_type'] = requestParameters['logoType'];
551
+ }
552
+
553
+ const headerParameters: runtime.HTTPHeaders = {};
554
+
555
+ if (requestParameters['authorization'] != null) {
556
+ headerParameters['authorization'] = String(requestParameters['authorization']);
557
+ }
558
+
559
+
560
+ let urlPath = `/v1/tenants/{tenant_id}/branding/logo`;
561
+ urlPath = urlPath.replace(`{${"tenant_id"}}`, encodeURIComponent(String(requestParameters['tenantId'])));
562
+
563
+ return {
564
+ path: urlPath,
565
+ method: 'DELETE',
566
+ headers: headerParameters,
567
+ query: queryParameters,
568
+ };
569
+ }
570
+
571
+ /**
572
+ * Delete a branding logo. Requires OWNER or ADMIN role.
573
+ * Delete Tenant Logo
574
+ */
575
+ async deleteTenantLogoRaw(requestParameters: DeleteTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TenantResponse>> {
576
+ const requestOptions = await this.deleteTenantLogoRequestOpts(requestParameters);
577
+ const response = await this.request(requestOptions, initOverrides);
578
+
579
+ return new runtime.JSONApiResponse(response, (jsonValue) => TenantResponseFromJSON(jsonValue));
580
+ }
581
+
582
+ /**
583
+ * Delete a branding logo. Requires OWNER or ADMIN role.
584
+ * Delete Tenant Logo
585
+ */
586
+ async deleteTenantLogo(requestParameters: DeleteTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TenantResponse> {
587
+ const response = await this.deleteTenantLogoRaw(requestParameters, initOverrides);
588
+ return await response.value();
589
+ }
590
+
456
591
  /**
457
592
  * Creates request options for deleteTenantUser without sending the request
458
593
  */
@@ -802,4 +937,87 @@ export class TenantsApi extends runtime.BaseAPI implements TenantsApiInterface {
802
937
  return await response.value();
803
938
  }
804
939
 
940
+ /**
941
+ * Creates request options for uploadTenantLogo without sending the request
942
+ */
943
+ async uploadTenantLogoRequestOpts(requestParameters: UploadTenantLogoRequest): Promise<runtime.RequestOpts> {
944
+ if (requestParameters['tenantId'] == null) {
945
+ throw new runtime.RequiredError(
946
+ 'tenantId',
947
+ 'Required parameter "tenantId" was null or undefined when calling uploadTenantLogo().'
948
+ );
949
+ }
950
+
951
+ if (requestParameters['file'] == null) {
952
+ throw new runtime.RequiredError(
953
+ 'file',
954
+ 'Required parameter "file" was null or undefined when calling uploadTenantLogo().'
955
+ );
956
+ }
957
+
958
+ const queryParameters: any = {};
959
+
960
+ const headerParameters: runtime.HTTPHeaders = {};
961
+
962
+ if (requestParameters['authorization'] != null) {
963
+ headerParameters['authorization'] = String(requestParameters['authorization']);
964
+ }
965
+
966
+ const consumes: runtime.Consume[] = [
967
+ { contentType: 'multipart/form-data' },
968
+ ];
969
+ // @ts-ignore: canConsumeForm may be unused
970
+ const canConsumeForm = runtime.canConsumeForm(consumes);
971
+
972
+ let formParams: { append(param: string, value: any): any };
973
+ let useForm = false;
974
+ // use FormData to transmit files using content-type "multipart/form-data"
975
+ useForm = canConsumeForm;
976
+ if (useForm) {
977
+ formParams = new FormData();
978
+ } else {
979
+ formParams = new URLSearchParams();
980
+ }
981
+
982
+ if (requestParameters['file'] != null) {
983
+ formParams.append('file', requestParameters['file'] as any);
984
+ }
985
+
986
+ if (requestParameters['logoType'] != null) {
987
+ formParams.append('logo_type', requestParameters['logoType'] as any);
988
+ }
989
+
990
+
991
+ let urlPath = `/v1/tenants/{tenant_id}/branding/logo`;
992
+ urlPath = urlPath.replace(`{${"tenant_id"}}`, encodeURIComponent(String(requestParameters['tenantId'])));
993
+
994
+ return {
995
+ path: urlPath,
996
+ method: 'POST',
997
+ headers: headerParameters,
998
+ query: queryParameters,
999
+ body: formParams,
1000
+ };
1001
+ }
1002
+
1003
+ /**
1004
+ * 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.
1005
+ * Upload Tenant Logo
1006
+ */
1007
+ async uploadTenantLogoRaw(requestParameters: UploadTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TenantResponse>> {
1008
+ const requestOptions = await this.uploadTenantLogoRequestOpts(requestParameters);
1009
+ const response = await this.request(requestOptions, initOverrides);
1010
+
1011
+ return new runtime.JSONApiResponse(response, (jsonValue) => TenantResponseFromJSON(jsonValue));
1012
+ }
1013
+
1014
+ /**
1015
+ * 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.
1016
+ * Upload Tenant Logo
1017
+ */
1018
+ async uploadTenantLogo(requestParameters: UploadTenantLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TenantResponse> {
1019
+ const response = await this.uploadTenantLogoRaw(requestParameters, initOverrides);
1020
+ return await response.value();
1021
+ }
1022
+
805
1023
  }
@@ -0,0 +1,54 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management
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
+ /**
17
+ * Types of branding logos that can be uploaded.
18
+ * @export
19
+ */
20
+ export const BrandingLogoType = {
21
+ Logo: 'logo',
22
+ LogoDark: 'logo_dark',
23
+ Favicon: 'favicon'
24
+ } as const;
25
+ export type BrandingLogoType = typeof BrandingLogoType[keyof typeof BrandingLogoType];
26
+
27
+
28
+ export function instanceOfBrandingLogoType(value: any): boolean {
29
+ for (const key in BrandingLogoType) {
30
+ if (Object.prototype.hasOwnProperty.call(BrandingLogoType, key)) {
31
+ if (BrandingLogoType[key as keyof typeof BrandingLogoType] === value) {
32
+ return true;
33
+ }
34
+ }
35
+ }
36
+ return false;
37
+ }
38
+
39
+ export function BrandingLogoTypeFromJSON(json: any): BrandingLogoType {
40
+ return BrandingLogoTypeFromJSONTyped(json, false);
41
+ }
42
+
43
+ export function BrandingLogoTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): BrandingLogoType {
44
+ return json as BrandingLogoType;
45
+ }
46
+
47
+ export function BrandingLogoTypeToJSON(value?: BrandingLogoType | null): any {
48
+ return value as any;
49
+ }
50
+
51
+ export function BrandingLogoTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): BrandingLogoType {
52
+ return value as BrandingLogoType;
53
+ }
54
+
@@ -0,0 +1,122 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management
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
+ * Resolved branding with presigned URLs instead of internal S3 URIs.
18
+ * @export
19
+ * @interface TenantBrandingResponse
20
+ */
21
+ export interface TenantBrandingResponse {
22
+ /**
23
+ * Custom brand name for logo
24
+ * @type {string}
25
+ * @memberof TenantBrandingResponse
26
+ */
27
+ brandName?: string | null;
28
+ /**
29
+ * Primary brand hex color
30
+ * @type {string}
31
+ * @memberof TenantBrandingResponse
32
+ */
33
+ brandColor?: string | null;
34
+ /**
35
+ * Presigned URL for primary logo
36
+ * @type {string}
37
+ * @memberof TenantBrandingResponse
38
+ */
39
+ logoUrl?: string | null;
40
+ /**
41
+ * Presigned URL for dark-mode logo
42
+ * @type {string}
43
+ * @memberof TenantBrandingResponse
44
+ */
45
+ logoDarkUrl?: string | null;
46
+ /**
47
+ * Presigned URL for favicon
48
+ * @type {string}
49
+ * @memberof TenantBrandingResponse
50
+ */
51
+ faviconUrl?: string | null;
52
+ /**
53
+ * Custom CSS variable overrides
54
+ * @type {{ [key: string]: string; }}
55
+ * @memberof TenantBrandingResponse
56
+ */
57
+ themeOverrides?: { [key: string]: string; } | null;
58
+ }
59
+
60
+ /**
61
+ * Check if a given object implements the TenantBrandingResponse interface.
62
+ */
63
+ export function instanceOfTenantBrandingResponse(value: object): value is TenantBrandingResponse {
64
+ return true;
65
+ }
66
+
67
+ export function TenantBrandingResponseFromJSON(json: any): TenantBrandingResponse {
68
+ return TenantBrandingResponseFromJSONTyped(json, false);
69
+ }
70
+
71
+ export function TenantBrandingResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): TenantBrandingResponse {
72
+ if (json == null) {
73
+ return json;
74
+ }
75
+ return {
76
+
77
+ 'brandName': json['brand_name'] == null ? undefined : json['brand_name'],
78
+ 'brandColor': json['brand_color'] == null ? undefined : json['brand_color'],
79
+ 'logoUrl': json['logo_url'] == null ? undefined : json['logo_url'],
80
+ 'logoDarkUrl': json['logo_dark_url'] == null ? undefined : json['logo_dark_url'],
81
+ 'faviconUrl': json['favicon_url'] == null ? undefined : json['favicon_url'],
82
+ 'themeOverrides': json['theme_overrides'] == null ? undefined : json['theme_overrides'],
83
+ };
84
+ }
85
+
86
+ export function TenantBrandingResponseToJSON(json: any): TenantBrandingResponse {
87
+ return TenantBrandingResponseToJSONTyped(json, false);
88
+ }
89
+
90
+ export function TenantBrandingResponseToJSONTyped(value?: TenantBrandingResponse | null, ignoreDiscriminator: boolean = false): any {
91
+ if (value == null) {
92
+ return value;
93
+ }
94
+
95
+ return {
96
+
97
+ 'brand_name': value['brandName'],
98
+ 'brand_color': value['brandColor'],
99
+ 'logo_url': value['logoUrl'],
100
+ 'logo_dark_url': value['logoDarkUrl'],
101
+ 'favicon_url': value['faviconUrl'],
102
+ 'theme_overrides': value['themeOverrides'],
103
+ };
104
+ }
105
+
106
+ export const TenantBrandingResponsePropertyValidationAttributesMap: {
107
+ [property: string]: {
108
+ maxLength?: number,
109
+ minLength?: number,
110
+ pattern?: string,
111
+ maximum?: number,
112
+ exclusiveMaximum?: boolean,
113
+ minimum?: number,
114
+ exclusiveMinimum?: boolean,
115
+ multipleOf?: number,
116
+ maxItems?: number,
117
+ minItems?: number,
118
+ uniqueItems?: boolean
119
+ }
120
+ } = {
121
+ }
122
+
@@ -13,13 +13,20 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
- import type { TenantSettings } from './TenantSettings';
16
+ import type { TenantBrandingResponse } from './TenantBrandingResponse';
17
17
  import {
18
- TenantSettingsFromJSON,
19
- TenantSettingsFromJSONTyped,
20
- TenantSettingsToJSON,
21
- TenantSettingsToJSONTyped,
22
- } from './TenantSettings';
18
+ TenantBrandingResponseFromJSON,
19
+ TenantBrandingResponseFromJSONTyped,
20
+ TenantBrandingResponseToJSON,
21
+ TenantBrandingResponseToJSONTyped,
22
+ } from './TenantBrandingResponse';
23
+ import type { TenantSettingsResponse } from './TenantSettingsResponse';
24
+ import {
25
+ TenantSettingsResponseFromJSON,
26
+ TenantSettingsResponseFromJSONTyped,
27
+ TenantSettingsResponseToJSON,
28
+ TenantSettingsResponseToJSONTyped,
29
+ } from './TenantSettingsResponse';
23
30
 
24
31
  /**
25
32
  * Tenant response model.
@@ -47,10 +54,16 @@ export interface TenantResponse {
47
54
  idpConfig?: { [key: string]: string; } | null;
48
55
  /**
49
56
  *
50
- * @type {TenantSettings}
57
+ * @type {TenantSettingsResponse}
58
+ * @memberof TenantResponse
59
+ */
60
+ settings: TenantSettingsResponse;
61
+ /**
62
+ *
63
+ * @type {TenantBrandingResponse}
51
64
  * @memberof TenantResponse
52
65
  */
53
- settings: TenantSettings;
66
+ branding?: TenantBrandingResponse;
54
67
  }
55
68
 
56
69
  /**
@@ -76,7 +89,8 @@ export function TenantResponseFromJSONTyped(json: any, ignoreDiscriminator: bool
76
89
  'id': json['id'],
77
90
  'name': json['name'],
78
91
  'idpConfig': json['idp_config'] == null ? undefined : json['idp_config'],
79
- 'settings': TenantSettingsFromJSON(json['settings']),
92
+ 'settings': TenantSettingsResponseFromJSON(json['settings']),
93
+ 'branding': json['branding'] == null ? undefined : TenantBrandingResponseFromJSON(json['branding']),
80
94
  };
81
95
  }
82
96
 
@@ -94,7 +108,8 @@ export function TenantResponseToJSONTyped(value?: TenantResponse | null, ignoreD
94
108
  'id': value['id'],
95
109
  'name': value['name'],
96
110
  'idp_config': value['idpConfig'],
97
- 'settings': TenantSettingsToJSON(value['settings']),
111
+ 'settings': TenantSettingsResponseToJSON(value['settings']),
112
+ 'branding': TenantBrandingResponseToJSON(value['branding']),
98
113
  };
99
114
  }
100
115
 
@@ -22,54 +22,56 @@ import {
22
22
  } from './SupportedLanguage';
23
23
 
24
24
  /**
25
- *
25
+ * Tenant settings as exposed via API (no internal S3 URIs).
26
26
  * @export
27
- * @interface TenantSettings
27
+ * @interface TenantSettingsResponse
28
28
  */
29
- export interface TenantSettings {
29
+ export interface TenantSettingsResponse {
30
30
  /**
31
31
  *
32
32
  * @type {SupportedLanguage}
33
- * @memberof TenantSettings
33
+ * @memberof TenantSettingsResponse
34
34
  */
35
- language?: SupportedLanguage;
35
+ language: SupportedLanguage;
36
36
  /**
37
37
  * Tenant description
38
38
  * @type {string}
39
- * @memberof TenantSettings
39
+ * @memberof TenantSettingsResponse
40
40
  */
41
- description?: string;
41
+ description: string;
42
42
  }
43
43
 
44
44
 
45
45
 
46
46
  /**
47
- * Check if a given object implements the TenantSettings interface.
47
+ * Check if a given object implements the TenantSettingsResponse interface.
48
48
  */
49
- export function instanceOfTenantSettings(value: object): value is TenantSettings {
49
+ export function instanceOfTenantSettingsResponse(value: object): value is TenantSettingsResponse {
50
+ if (!('language' in value) || value['language'] === undefined) return false;
51
+ if (!('description' in value) || value['description'] === undefined) return false;
50
52
  return true;
51
53
  }
52
54
 
53
- export function TenantSettingsFromJSON(json: any): TenantSettings {
54
- return TenantSettingsFromJSONTyped(json, false);
55
+ export function TenantSettingsResponseFromJSON(json: any): TenantSettingsResponse {
56
+ return TenantSettingsResponseFromJSONTyped(json, false);
55
57
  }
56
58
 
57
- export function TenantSettingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TenantSettings {
59
+ export function TenantSettingsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): TenantSettingsResponse {
58
60
  if (json == null) {
59
61
  return json;
60
62
  }
61
63
  return {
62
64
 
63
- 'language': json['language'] == null ? undefined : SupportedLanguageFromJSON(json['language']),
64
- 'description': json['description'] == null ? undefined : json['description'],
65
+ 'language': SupportedLanguageFromJSON(json['language']),
66
+ 'description': json['description'],
65
67
  };
66
68
  }
67
69
 
68
- export function TenantSettingsToJSON(json: any): TenantSettings {
69
- return TenantSettingsToJSONTyped(json, false);
70
+ export function TenantSettingsResponseToJSON(json: any): TenantSettingsResponse {
71
+ return TenantSettingsResponseToJSONTyped(json, false);
70
72
  }
71
73
 
72
- export function TenantSettingsToJSONTyped(value?: TenantSettings | null, ignoreDiscriminator: boolean = false): any {
74
+ export function TenantSettingsResponseToJSONTyped(value?: TenantSettingsResponse | null, ignoreDiscriminator: boolean = false): any {
73
75
  if (value == null) {
74
76
  return value;
75
77
  }
@@ -81,7 +83,7 @@ export function TenantSettingsToJSONTyped(value?: TenantSettings | null, ignoreD
81
83
  };
82
84
  }
83
85
 
84
- export const TenantSettingsPropertyValidationAttributesMap: {
86
+ export const TenantSettingsResponsePropertyValidationAttributesMap: {
85
87
  [property: string]: {
86
88
  maxLength?: number,
87
89
  minLength?: number,
@@ -39,6 +39,24 @@ export interface TenantSettingsUpdate {
39
39
  * @memberof TenantSettingsUpdate
40
40
  */
41
41
  description?: string | null;
42
+ /**
43
+ * Custom brand name for logo
44
+ * @type {string}
45
+ * @memberof TenantSettingsUpdate
46
+ */
47
+ brandName?: string | null;
48
+ /**
49
+ * Primary brand hex color (e.g. '#2563eb')
50
+ * @type {string}
51
+ * @memberof TenantSettingsUpdate
52
+ */
53
+ brandColor?: string | null;
54
+ /**
55
+ * Custom CSS variable overrides
56
+ * @type {{ [key: string]: string; }}
57
+ * @memberof TenantSettingsUpdate
58
+ */
59
+ themeOverrides?: { [key: string]: string; } | null;
42
60
  }
43
61
 
44
62
 
@@ -62,6 +80,9 @@ export function TenantSettingsUpdateFromJSONTyped(json: any, ignoreDiscriminator
62
80
 
63
81
  'language': json['language'] == null ? undefined : SupportedLanguageFromJSON(json['language']),
64
82
  'description': json['description'] == null ? undefined : json['description'],
83
+ 'brandName': json['brand_name'] == null ? undefined : json['brand_name'],
84
+ 'brandColor': json['brand_color'] == null ? undefined : json['brand_color'],
85
+ 'themeOverrides': json['theme_overrides'] == null ? undefined : json['theme_overrides'],
65
86
  };
66
87
  }
67
88
 
@@ -78,6 +99,9 @@ export function TenantSettingsUpdateToJSONTyped(value?: TenantSettingsUpdate | n
78
99
 
79
100
  'language': SupportedLanguageToJSON(value['language']),
80
101
  'description': value['description'],
102
+ 'brand_name': value['brandName'],
103
+ 'brand_color': value['brandColor'],
104
+ 'theme_overrides': value['themeOverrides'],
81
105
  };
82
106
  }
83
107
 
@@ -3,6 +3,7 @@
3
3
  export * from './AcceptInviteResponse';
4
4
  export * from './ApiKeyResponse';
5
5
  export * from './Args';
6
+ export * from './BrandingLogoType';
6
7
  export * from './BulkTagRequest';
7
8
  export * from './ChunkBulkResponse';
8
9
  export * from './ChunkContentItem';
@@ -99,8 +100,9 @@ export * from './SubtreeChunkGroup';
99
100
  export * from './SubtreeChunksResponse';
100
101
  export * from './SupportedLanguage';
101
102
  export * from './TagResponse';
103
+ export * from './TenantBrandingResponse';
102
104
  export * from './TenantResponse';
103
- export * from './TenantSettings';
105
+ export * from './TenantSettingsResponse';
104
106
  export * from './TenantSettingsUpdate';
105
107
  export * from './TenantUserEditRequest';
106
108
  export * from './TenantUserResponse';