UNPKG

@fulltag/kinde-mgmt-sdk

Version:

Automatically generated SDK for the Kinde Mgmt API

1 lines 862 kB
{"version":3,"sources":["../src/runtime.ts","../src/models/AddAPIsRequest.ts","../src/models/AddOrganizationUsersRequestUsersInner.ts","../src/models/AddOrganizationUsersRequest.ts","../src/models/AddOrganizationUsersResponse.ts","../src/models/ApiResult.ts","../src/models/Applications.ts","../src/models/AuthorizeAppApiResponse.ts","../src/models/Category.ts","../src/models/ConnectedAppsAccessToken.ts","../src/models/ConnectedAppsAuthUrl.ts","../src/models/Connection.ts","../src/models/CreateApisResponseApi.ts","../src/models/CreateApisResponse.ts","../src/models/CreateApplicationRequest.ts","../src/models/CreateApplicationResponseApplication.ts","../src/models/CreateApplicationResponse.ts","../src/models/CreateCategoryRequest.ts","../src/models/CreateCategoryResponseCategory.ts","../src/models/CreateCategoryResponse.ts","../src/models/CreateConnectionRequest.ts","../src/models/CreateConnectionResponseConnection.ts","../src/models/CreateConnectionResponse.ts","../src/models/CreateFeatureFlagRequest.ts","../src/models/CreateIdentityResponseIdentity.ts","../src/models/CreateIdentityResponse.ts","../src/models/CreateOrganizationRequest.ts","../src/models/CreateOrganizationResponseOrganization.ts","../src/models/CreateOrganizationResponse.ts","../src/models/CreateOrganizationUserPermissionRequest.ts","../src/models/CreateOrganizationUserRoleRequest.ts","../src/models/CreatePermissionRequest.ts","../src/models/CreatePropertyRequest.ts","../src/models/CreatePropertyResponseProperty.ts","../src/models/CreatePropertyResponse.ts","../src/models/CreateRoleRequest.ts","../src/models/CreateSubscriberSuccessResponseSubscriber.ts","../src/models/CreateSubscriberSuccessResponse.ts","../src/models/CreateUserIdentityRequest.ts","../src/models/CreateUserRequestIdentitiesInnerDetails.ts","../src/models/CreateUserRequestIdentitiesInner.ts","../src/models/CreateUserRequestProfile.ts","../src/models/CreateUserRequest.ts","../src/models/UserIdentityResult.ts","../src/models/UserIdentity.ts","../src/models/CreateUserResponse.ts","../src/models/CreateWebHookRequest.ts","../src/models/CreateWebhookResponseWebhook.ts","../src/models/CreateWebhookResponse.ts","../src/models/DeleteApiResponse.ts","../src/models/DeleteWebhookResponse.ts","../src/models/ModelError.ts","../src/models/ErrorResponse.ts","../src/models/EventType.ts","../src/models/GetApiResponseApiApplicationsInner.ts","../src/models/GetApiResponseApi.ts","../src/models/GetApiResponse.ts","../src/models/GetApisResponseApisInner.ts","../src/models/GetApisResponse.ts","../src/models/GetApplicationResponseApplication.ts","../src/models/GetApplicationResponse.ts","../src/models/GetApplicationsResponse.ts","../src/models/GetBusinessResponseBusiness.ts","../src/models/GetBusinessResponse.ts","../src/models/GetCategoriesResponse.ts","../src/models/GetConnectionsResponse.ts","../src/models/GetOrganizationFeatureFlagsResponseFeatureFlagsValue.ts","../src/models/GetEnvironmentFeatureFlagsResponse.ts","../src/models/GetEventResponseEvent.ts","../src/models/GetEventResponse.ts","../src/models/GetEventTypesResponse.ts","../src/models/Identity.ts","../src/models/GetIdentitiesResponse.ts","../src/models/GetIndustriesResponseIndustriesInner.ts","../src/models/GetIndustriesResponse.ts","../src/models/GetOrganizationFeatureFlagsResponse.ts","../src/models/GetOrganizationResponseLinkColor.ts","../src/models/GetOrganizationResponseBackgroundColor.ts","../src/models/GetOrganizationResponse.ts","../src/models/OrganizationUser.ts","../src/models/GetOrganizationUsersResponse.ts","../src/models/OrganizationItemSchema.ts","../src/models/GetOrganizationsResponse.ts","../src/models/OrganizationUserPermissionRolesInner.ts","../src/models/OrganizationUserPermission.ts","../src/models/GetOrganizationsUserPermissionsResponse.ts","../src/models/OrganizationUserRole.ts","../src/models/GetOrganizationsUserRolesResponse.ts","../src/models/Permissions.ts","../src/models/GetPermissionsResponse.ts","../src/models/Property.ts","../src/models/GetPropertiesResponse.ts","../src/models/PropertyValue.ts","../src/models/GetPropertyValuesResponse.ts","../src/models/RedirectCallbackUrls.ts","../src/models/GetRedirectCallbackUrlsResponse.ts","../src/models/Roles.ts","../src/models/GetRolesResponse.ts","../src/models/Subscriber.ts","../src/models/GetSubscriberResponse.ts","../src/models/SubscribersSubscriber.ts","../src/models/GetSubscribersResponse.ts","../src/models/GetTimezonesResponseTimezonesInner.ts","../src/models/GetTimezonesResponse.ts","../src/models/Webhook.ts","../src/models/GetWebhooksResponse.ts","../src/models/LogoutRedirectUrls.ts","../src/models/NotFoundResponseErrors.ts","../src/models/NotFoundResponse.ts","../src/models/OrganizationUserRolePermissionsPermissions.ts","../src/models/OrganizationUserRolePermissions.ts","../src/models/ReplaceLogoutRedirectURLsRequest.ts","../src/models/ReplaceRedirectCallbackURLsRequest.ts","../src/models/Role.ts","../src/models/RolesPermissionResponseInner.ts","../src/models/SetUserPasswordRequest.ts","../src/models/SuccessResponse.ts","../src/models/TokenErrorResponse.ts","../src/models/TokenIntrospect.ts","../src/models/UpdateAPIApplicationsRequestApplicationsInner.ts","../src/models/UpdateAPIApplicationsRequest.ts","../src/models/UpdateApplicationRequest.ts","../src/models/UpdateBusinessRequest.ts","../src/models/UpdateCategoryRequest.ts","../src/models/UpdateConnectionRequest.ts","../src/models/UpdateEnvironementFeatureFlagOverrideRequest.ts","../src/models/UpdateIdentityRequest.ts","../src/models/UpdateOrganizationPropertiesRequest.ts","../src/models/UpdateOrganizationRequest.ts","../src/models/UpdateOrganizationUsersRequestUsersInner.ts","../src/models/UpdateOrganizationUsersRequest.ts","../src/models/UpdateOrganizationUsersResponse.ts","../src/models/UpdatePropertyRequest.ts","../src/models/UpdateRolePermissionsRequestPermissionsInner.ts","../src/models/UpdateRolePermissionsRequest.ts","../src/models/UpdateRolePermissionsResponse.ts","../src/models/UpdateRolesRequest.ts","../src/models/UpdateUserRequest.ts","../src/models/UpdateUserResponse.ts","../src/models/UpdateWebHookRequest.ts","../src/models/UpdateWebhookResponseWebhook.ts","../src/models/UpdateWebhookResponse.ts","../src/models/UserIdentitiesInner.ts","../src/models/User.ts","../src/models/UserProfile.ts","../src/models/UserProfileV2.ts","../src/models/UsersResponseUsersInner.ts","../src/models/UsersResponse.ts","../src/apis/APIsApi.ts","../src/apis/ApplicationsApi.ts","../src/apis/BusinessApi.ts","../src/apis/CallbacksApi.ts","../src/apis/ConnectedAppsApi.ts","../src/apis/ConnectionsApi.ts","../src/apis/EnvironmentsApi.ts","../src/apis/FeatureFlagsApi.ts","../src/apis/IdentitiesApi.ts","../src/apis/IndustriesApi.ts","../src/apis/OAuthApi.ts","../src/apis/OrganizationsApi.ts","../src/apis/PermissionsApi.ts","../src/apis/PropertiesApi.ts","../src/apis/PropertyCategoriesApi.ts","../src/apis/RolesApi.ts","../src/apis/SubscribersApi.ts","../src/apis/TimezonesApi.ts","../src/apis/UsersApi.ts","../src/apis/WebhooksApi.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"https://app.kinde.com\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | Promise<string> | ((name: string) => string | Promise<string>); // parameter for apiKey security\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AddAPIsRequest\n */\nexport interface AddAPIsRequest {\n /**\n * The name of the API. (1-64 characters).\n * @type {string}\n * @memberof AddAPIsRequest\n */\n name: string;\n /**\n * A unique identifier for the API - commonly the URL. This value will be used as the `audience` parameter in authorization claims. (1-64 characters)\n * @type {string}\n * @memberof AddAPIsRequest\n */\n audience: string;\n}\n\n/**\n * Check if a given object implements the AddAPIsRequest interface.\n */\nexport function instanceOfAddAPIsRequest(value: object): value is AddAPIsRequest {\n if (!('name' in value) || value['name'] === undefined) return false;\n if (!('audience' in value) || value['audience'] === undefined) return false;\n return true;\n}\n\nexport function AddAPIsRequestFromJSON(json: any): AddAPIsRequest {\n return AddAPIsRequestFromJSONTyped(json, false);\n}\n\nexport function AddAPIsRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddAPIsRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'name': json['name'],\n 'audience': json['audience'],\n };\n}\n\n export function AddAPIsRequestToJSON(json: any): AddAPIsRequest {\n return AddAPIsRequestToJSONTyped(json, false);\n }\n\n export function AddAPIsRequestToJSONTyped(value?: AddAPIsRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'name': value['name'],\n 'audience': value['audience'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AddOrganizationUsersRequestUsersInner\n */\nexport interface AddOrganizationUsersRequestUsersInner {\n /**\n * The users id.\n * @type {string}\n * @memberof AddOrganizationUsersRequestUsersInner\n */\n id?: string;\n /**\n * Role keys to assign to the user.\n * @type {Array<string>}\n * @memberof AddOrganizationUsersRequestUsersInner\n */\n roles?: Array<string>;\n /**\n * Permission keys to assign to the user.\n * @type {Array<string>}\n * @memberof AddOrganizationUsersRequestUsersInner\n */\n permissions?: Array<string>;\n}\n\n/**\n * Check if a given object implements the AddOrganizationUsersRequestUsersInner interface.\n */\nexport function instanceOfAddOrganizationUsersRequestUsersInner(value: object): value is AddOrganizationUsersRequestUsersInner {\n return true;\n}\n\nexport function AddOrganizationUsersRequestUsersInnerFromJSON(json: any): AddOrganizationUsersRequestUsersInner {\n return AddOrganizationUsersRequestUsersInnerFromJSONTyped(json, false);\n}\n\nexport function AddOrganizationUsersRequestUsersInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddOrganizationUsersRequestUsersInner {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'roles': json['roles'] == null ? undefined : json['roles'],\n 'permissions': json['permissions'] == null ? undefined : json['permissions'],\n };\n}\n\n export function AddOrganizationUsersRequestUsersInnerToJSON(json: any): AddOrganizationUsersRequestUsersInner {\n return AddOrganizationUsersRequestUsersInnerToJSONTyped(json, false);\n }\n\n export function AddOrganizationUsersRequestUsersInnerToJSONTyped(value?: AddOrganizationUsersRequestUsersInner | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'roles': value['roles'],\n 'permissions': value['permissions'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AddOrganizationUsersRequestUsersInner } from './AddOrganizationUsersRequestUsersInner';\nimport {\n AddOrganizationUsersRequestUsersInnerFromJSON,\n AddOrganizationUsersRequestUsersInnerFromJSONTyped,\n AddOrganizationUsersRequestUsersInnerToJSON,\n AddOrganizationUsersRequestUsersInnerToJSONTyped,\n} from './AddOrganizationUsersRequestUsersInner';\n\n/**\n * \n * @export\n * @interface AddOrganizationUsersRequest\n */\nexport interface AddOrganizationUsersRequest {\n /**\n * Users to be added to the organization.\n * @type {Array<AddOrganizationUsersRequestUsersInner>}\n * @memberof AddOrganizationUsersRequest\n */\n users?: Array<AddOrganizationUsersRequestUsersInner>;\n}\n\n/**\n * Check if a given object implements the AddOrganizationUsersRequest interface.\n */\nexport function instanceOfAddOrganizationUsersRequest(value: object): value is AddOrganizationUsersRequest {\n return true;\n}\n\nexport function AddOrganizationUsersRequestFromJSON(json: any): AddOrganizationUsersRequest {\n return AddOrganizationUsersRequestFromJSONTyped(json, false);\n}\n\nexport function AddOrganizationUsersRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddOrganizationUsersRequest {\n if (json == null) {\n return json;\n }\n return {\n \n 'users': json['users'] == null ? undefined : ((json['users'] as Array<any>).map(AddOrganizationUsersRequestUsersInnerFromJSON)),\n };\n}\n\n export function AddOrganizationUsersRequestToJSON(json: any): AddOrganizationUsersRequest {\n return AddOrganizationUsersRequestToJSONTyped(json, false);\n }\n\n export function AddOrganizationUsersRequestToJSONTyped(value?: AddOrganizationUsersRequest | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'users': value['users'] == null ? undefined : ((value['users'] as Array<any>).map(AddOrganizationUsersRequestUsersInnerToJSON)),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AddOrganizationUsersResponse\n */\nexport interface AddOrganizationUsersResponse {\n /**\n * Response code.\n * @type {string}\n * @memberof AddOrganizationUsersResponse\n */\n code?: string;\n /**\n * Response message.\n * @type {string}\n * @memberof AddOrganizationUsersResponse\n */\n message?: string;\n /**\n * \n * @type {Array<string>}\n * @memberof AddOrganizationUsersResponse\n */\n usersAdded?: Array<string>;\n}\n\n/**\n * Check if a given object implements the AddOrganizationUsersResponse interface.\n */\nexport function instanceOfAddOrganizationUsersResponse(value: object): value is AddOrganizationUsersResponse {\n return true;\n}\n\nexport function AddOrganizationUsersResponseFromJSON(json: any): AddOrganizationUsersResponse {\n return AddOrganizationUsersResponseFromJSONTyped(json, false);\n}\n\nexport function AddOrganizationUsersResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddOrganizationUsersResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'code': json['code'] == null ? undefined : json['code'],\n 'message': json['message'] == null ? undefined : json['message'],\n 'usersAdded': json['users_added'] == null ? undefined : json['users_added'],\n };\n}\n\n export function AddOrganizationUsersResponseToJSON(json: any): AddOrganizationUsersResponse {\n return AddOrganizationUsersResponseToJSONTyped(json, false);\n }\n\n export function AddOrganizationUsersResponseToJSONTyped(value?: AddOrganizationUsersResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'code': value['code'],\n 'message': value['message'],\n 'users_added': value['usersAdded'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ApiResult\n */\nexport interface ApiResult {\n /**\n * The result of the api operation.\n * @type {string}\n * @memberof ApiResult\n */\n result?: string;\n}\n\n/**\n * Check if a given object implements the ApiResult interface.\n */\nexport function instanceOfApiResult(value: object): value is ApiResult {\n return true;\n}\n\nexport function ApiResultFromJSON(json: any): ApiResult {\n return ApiResultFromJSONTyped(json, false);\n}\n\nexport function ApiResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): ApiResult {\n if (json == null) {\n return json;\n }\n return {\n \n 'result': json['result'] == null ? undefined : json['result'],\n };\n}\n\n export function ApiResultToJSON(json: any): ApiResult {\n return ApiResultToJSONTyped(json, false);\n }\n\n export function ApiResultToJSONTyped(value?: ApiResult | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'result': value['result'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Applications\n */\nexport interface Applications {\n /**\n * \n * @type {string}\n * @memberof Applications\n */\n id?: string;\n /**\n * \n * @type {string}\n * @memberof Applications\n */\n name?: string;\n /**\n * \n * @type {string}\n * @memberof Applications\n */\n type?: string;\n}\n\n/**\n * Check if a given object implements the Applications interface.\n */\nexport function instanceOfApplications(value: object): value is Applications {\n return true;\n}\n\nexport function ApplicationsFromJSON(json: any): Applications {\n return ApplicationsFromJSONTyped(json, false);\n}\n\nexport function ApplicationsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Applications {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'name': json['name'] == null ? undefined : json['name'],\n 'type': json['type'] == null ? undefined : json['type'],\n };\n}\n\n export function ApplicationsToJSON(json: any): Applications {\n return ApplicationsToJSONTyped(json, false);\n }\n\n export function ApplicationsToJSONTyped(value?: Applications | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'name': value['name'],\n 'type': value['type'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AuthorizeAppApiResponse\n */\nexport interface AuthorizeAppApiResponse {\n /**\n * \n * @type {string}\n * @memberof AuthorizeAppApiResponse\n */\n message?: string;\n /**\n * \n * @type {string}\n * @memberof AuthorizeAppApiResponse\n */\n code?: string;\n /**\n * \n * @type {Array<string>}\n * @memberof AuthorizeAppApiResponse\n */\n applicationsDisconnected?: Array<string>;\n /**\n * \n * @type {Array<string>}\n * @memberof AuthorizeAppApiResponse\n */\n applicationsConnected?: Array<string>;\n}\n\n/**\n * Check if a given object implements the AuthorizeAppApiResponse interface.\n */\nexport function instanceOfAuthorizeAppApiResponse(value: object): value is AuthorizeAppApiResponse {\n return true;\n}\n\nexport function AuthorizeAppApiResponseFromJSON(json: any): AuthorizeAppApiResponse {\n return AuthorizeAppApiResponseFromJSONTyped(json, false);\n}\n\nexport function AuthorizeAppApiResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AuthorizeAppApiResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'message': json['message'] == null ? undefined : json['message'],\n 'code': json['code'] == null ? undefined : json['code'],\n 'applicationsDisconnected': json['applications_disconnected'] == null ? undefined : json['applications_disconnected'],\n 'applicationsConnected': json['applications_connected'] == null ? undefined : json['applications_connected'],\n };\n}\n\n export function AuthorizeAppApiResponseToJSON(json: any): AuthorizeAppApiResponse {\n return AuthorizeAppApiResponseToJSONTyped(json, false);\n }\n\n export function AuthorizeAppApiResponseToJSONTyped(value?: AuthorizeAppApiResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'message': value['message'],\n 'code': value['code'],\n 'applications_disconnected': value['applicationsDisconnected'],\n 'applications_connected': value['applicationsConnected'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Category\n */\nexport interface Category {\n /**\n * \n * @type {string}\n * @memberof Category\n */\n id?: string;\n /**\n * \n * @type {string}\n * @memberof Category\n */\n name?: string;\n}\n\n/**\n * Check if a given object implements the Category interface.\n */\nexport function instanceOfCategory(value: object): value is Category {\n return true;\n}\n\nexport function CategoryFromJSON(json: any): Category {\n return CategoryFromJSONTyped(json, false);\n}\n\nexport function CategoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): Category {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'name': json['name'] == null ? undefined : json['name'],\n };\n}\n\n export function CategoryToJSON(json: any): Category {\n return CategoryToJSONTyped(json, false);\n }\n\n export function CategoryToJSONTyped(value?: Category | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'name': value['name'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ConnectedAppsAccessToken\n */\nexport interface ConnectedAppsAccessToken {\n /**\n * The access token to access a third-party provider.\n * @type {string}\n * @memberof ConnectedAppsAccessToken\n */\n accessToken?: string;\n /**\n * The date and time that the access token expires.\n * @type {string}\n * @memberof ConnectedAppsAccessToken\n */\n accessTokenExpiry?: string;\n}\n\n/**\n * Check if a given object implements the ConnectedAppsAccessToken interface.\n */\nexport function instanceOfConnectedAppsAccessToken(value: object): value is ConnectedAppsAccessToken {\n return true;\n}\n\nexport function ConnectedAppsAccessTokenFromJSON(json: any): ConnectedAppsAccessToken {\n return ConnectedAppsAccessTokenFromJSONTyped(json, false);\n}\n\nexport function ConnectedAppsAccessTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConnectedAppsAccessToken {\n if (json == null) {\n return json;\n }\n return {\n \n 'accessToken': json['access_token'] == null ? undefined : json['access_token'],\n 'accessTokenExpiry': json['access_token_expiry'] == null ? undefined : json['access_token_expiry'],\n };\n}\n\n export function ConnectedAppsAccessTokenToJSON(json: any): ConnectedAppsAccessToken {\n return ConnectedAppsAccessTokenToJSONTyped(json, false);\n }\n\n export function ConnectedAppsAccessTokenToJSONTyped(value?: ConnectedAppsAccessToken | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'access_token': value['accessToken'],\n 'access_token_expiry': value['accessTokenExpiry'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ConnectedAppsAuthUrl\n */\nexport interface ConnectedAppsAuthUrl {\n /**\n * A URL that is used to authenticate an end-user against a connected app.\n * @type {string}\n * @memberof ConnectedAppsAuthUrl\n */\n url?: string;\n /**\n * A unique identifier for the login session.\n * @type {string}\n * @memberof ConnectedAppsAuthUrl\n */\n sessionId?: string;\n}\n\n/**\n * Check if a given object implements the ConnectedAppsAuthUrl interface.\n */\nexport function instanceOfConnectedAppsAuthUrl(value: object): value is ConnectedAppsAuthUrl {\n return true;\n}\n\nexport function ConnectedAppsAuthUrlFromJSON(json: any): ConnectedAppsAuthUrl {\n return ConnectedAppsAuthUrlFromJSONTyped(json, false);\n}\n\nexport function ConnectedAppsAuthUrlFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConnectedAppsAuthUrl {\n if (json == null) {\n return json;\n }\n return {\n \n 'url': json['url'] == null ? undefined : json['url'],\n 'sessionId': json['session_id'] == null ? undefined : json['session_id'],\n };\n}\n\n export function ConnectedAppsAuthUrlToJSON(json: any): ConnectedAppsAuthUrl {\n return ConnectedAppsAuthUrlToJSONTyped(json, false);\n }\n\n export function ConnectedAppsAuthUrlToJSONTyped(value?: ConnectedAppsAuthUrl | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'url': value['url'],\n 'session_id': value['sessionId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Connection\n */\nexport interface Connection {\n /**\n * \n * @type {string}\n * @memberof Connection\n */\n id?: string;\n /**\n * \n * @type {string}\n * @memberof Connection\n */\n name?: string;\n /**\n * \n * @type {string}\n * @memberof Connection\n */\n displayName?: string;\n /**\n * \n * @type {string}\n * @memberof Connection\n */\n strategy?: string;\n}\n\n/**\n * Check if a given object implements the Connection interface.\n */\nexport function instanceOfConnection(value: object): value is Connection {\n return true;\n}\n\nexport function ConnectionFromJSON(json: any): Connection {\n return ConnectionFromJSONTyped(json, false);\n}\n\nexport function ConnectionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Connection {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n 'name': json['name'] == null ? undefined : json['name'],\n 'displayName': json['display_name'] == null ? undefined : json['display_name'],\n 'strategy': json['strategy'] == null ? undefined : json['strategy'],\n };\n}\n\n export function ConnectionToJSON(json: any): Connection {\n return ConnectionToJSONTyped(json, false);\n }\n\n export function ConnectionToJSONTyped(value?: Connection | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n 'name': value['name'],\n 'display_name': value['displayName'],\n 'strategy': value['strategy'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateApisResponseApi\n */\nexport interface CreateApisResponseApi {\n /**\n * The unique ID for the API.\n * @type {string}\n * @memberof CreateApisResponseApi\n */\n id?: string;\n}\n\n/**\n * Check if a given object implements the CreateApisResponseApi interface.\n */\nexport function instanceOfCreateApisResponseApi(value: object): value is CreateApisResponseApi {\n return true;\n}\n\nexport function CreateApisResponseApiFromJSON(json: any): CreateApisResponseApi {\n return CreateApisResponseApiFromJSONTyped(json, false);\n}\n\nexport function CreateApisResponseApiFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateApisResponseApi {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'] == null ? undefined : json['id'],\n };\n}\n\n export function CreateApisResponseApiToJSON(json: any): CreateApisResponseApi {\n return CreateApisResponseApiToJSONTyped(json, false);\n }\n\n export function CreateApisResponseApiToJSONTyped(value?: CreateApisResponseApi | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'id': value['id'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { CreateApisResponseApi } from './CreateApisResponseApi';\nimport {\n CreateApisResponseApiFromJSON,\n CreateApisResponseApiFromJSONTyped,\n CreateApisResponseApiToJSON,\n CreateApisResponseApiToJSONTyped,\n} from './CreateApisResponseApi';\n\n/**\n * \n * @export\n * @interface CreateApisResponse\n */\nexport interface CreateApisResponse {\n /**\n * A Kinde generated message.\n * @type {string}\n * @memberof CreateApisResponse\n */\n message?: string;\n /**\n * A Kinde generated status code.\n * @type {string}\n * @memberof CreateApisResponse\n */\n code?: string;\n /**\n * \n * @type {CreateApisResponseApi}\n * @memberof CreateApisResponse\n */\n api?: CreateApisResponseApi;\n}\n\n/**\n * Check if a given object implements the CreateApisResponse interface.\n */\nexport function instanceOfCreateApisResponse(value: object): value is CreateApisResponse {\n return true;\n}\n\nexport function CreateApisResponseFromJSON(json: any): CreateApisResponse {\n return CreateApisResponseFromJSONTyped(json, false);\n}\n\nexport function CreateApisResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateApisResponse {\n if (json == null) {\n return json;\n }\n return {\n \n 'message': json['message'] == null ? undefined : json['message'],\n 'code': json['code'] == null ? undefined : json['code'],\n 'api': json['api'] == null ? undefined : CreateApisResponseApiFromJSON(json['api']),\n };\n}\n\n export function CreateApisResponseToJSON(json: any): CreateApisResponse {\n return CreateApisResponseToJSONTyped(json, false);\n }\n\n export function CreateApisResponseToJSONTyped(value?: CreateApisResponse | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'message': value['message'],\n 'code': value['code'],\n 'api': CreateApisResponseApiToJSON(value['api']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Kinde Management API\n * Provides endpoints to manage your Kinde Businesses\n *\n * The version of the OpenAPI document: 1\n * Contact: support@kinde.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CreateApplicationRequest\n */\nexport interface CreateApplicationRequest {\n /**\n * The application's name.\n * @type {string}\n * @memberof CreateApplicationRequest\n */\n name: string;\n /*