@obniz/obniz-now-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/ObnizApiError.d.ts +62 -0
- package/dist/ObnizNow.d.ts +104 -0
- package/dist/ObnizNow.test.d.ts +1 -0
- package/dist/ObnizNowApiError.d.ts +62 -0
- package/dist/index.browser.mjs +3253 -0
- package/dist/index.browser.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3379 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +3376 -0
- package/dist/index.mjs.map +1 -0
- package/dist/sdk-core/apis/AnalyticsApi.d.ts +35 -0
- package/dist/sdk-core/apis/ConnectionModelsApi.d.ts +89 -0
- package/dist/sdk-core/apis/ConnectionsApi.d.ts +61 -0
- package/dist/sdk-core/apis/ConvertersApi.d.ts +28 -0
- package/dist/sdk-core/apis/EventsApi.d.ts +49 -0
- package/dist/sdk-core/apis/GroupsApi.d.ts +62 -0
- package/dist/sdk-core/apis/InboundConnectionsApi.d.ts +47 -0
- package/dist/sdk-core/apis/InboundSourcesApi.d.ts +113 -0
- package/dist/sdk-core/apis/IntegrationsApi.d.ts +121 -0
- package/dist/sdk-core/apis/IntelligencesApi.d.ts +84 -0
- package/dist/sdk-core/apis/IssuesApi.d.ts +63 -0
- package/dist/sdk-core/apis/MachineApi.d.ts +142 -0
- package/dist/sdk-core/apis/MachinesApi.d.ts +97 -0
- package/dist/sdk-core/apis/NotificationsApi.d.ts +72 -0
- package/dist/sdk-core/apis/ReportsApi.d.ts +85 -0
- package/dist/sdk-core/apis/ThreadsApi.d.ts +165 -0
- package/dist/sdk-core/apis/UnitsApi.d.ts +151 -0
- package/dist/sdk-core/apis/index.d.ts +17 -0
- package/dist/sdk-core/index.d.ts +3 -0
- package/dist/sdk-core/models/index.d.ts +5368 -0
- package/dist/sdk-core/runtime.d.ts +181 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/sdk-core/runtime.ts","../src/sdk-core/apis/AnalyticsApi.ts","../src/sdk-core/apis/ConnectionModelsApi.ts","../src/sdk-core/apis/ConnectionsApi.ts","../src/sdk-core/apis/EventsApi.ts","../src/sdk-core/apis/GroupsApi.ts","../src/sdk-core/apis/InboundConnectionsApi.ts","../src/sdk-core/apis/InboundSourcesApi.ts","../src/sdk-core/apis/IntegrationsApi.ts","../src/sdk-core/apis/IntelligencesApi.ts","../src/sdk-core/apis/IssuesApi.ts","../src/sdk-core/apis/MachineApi.ts","../src/sdk-core/apis/MachinesApi.ts","../src/sdk-core/apis/NotificationsApi.ts","../src/sdk-core/apis/ReportsApi.ts","../src/sdk-core/apis/ThreadsApi.ts","../src/sdk-core/apis/UnitsApi.ts","../src/ObnizNowApiError.ts","../src/ObnizNow.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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://api.obniz.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 exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\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 * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AnalyticsResult,\n ErrorResponse,\n ForbiddenPermissionsError,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface AnalyticsApiGetAnalyticsResultsRequest {\n analyticsModelId: string;\n unitId: string;\n start?: string;\n end?: string;\n params?: string;\n}\n\n/**\n * \n */\nexport class AnalyticsApi extends runtime.BaseAPI {\n\n /**\n * Executes the specified analytics model and returns calculation results. The structure of the result objects depends on the analytics model implementation. If start or end is omitted, the analytics model is executed once without interval splitting. **Authorization** - API token is required in the `Authorization` header **Permissions** - `analytics:read` permission is required \n * Get analytics results for a specific model\n */\n async getAnalyticsResultsRaw(requestParameters: AnalyticsApiGetAnalyticsResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<AnalyticsResult>>> {\n if (requestParameters['analyticsModelId'] == null) {\n throw new runtime.RequiredError(\n 'analyticsModelId',\n 'Required parameter \"analyticsModelId\" was null or undefined when calling getAnalyticsResults().'\n );\n }\n\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling getAnalyticsResults().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['start'] != null) {\n queryParameters['start'] = requestParameters['start'];\n }\n\n if (requestParameters['end'] != null) {\n queryParameters['end'] = requestParameters['end'];\n }\n\n if (requestParameters['unitId'] != null) {\n queryParameters['unit_id'] = requestParameters['unitId'];\n }\n\n if (requestParameters['params'] != null) {\n queryParameters['params'] = requestParameters['params'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/analytics/{analytics_model_id}/results`.replace(`{${\"analytics_model_id\"}}`, encodeURIComponent(String(requestParameters['analyticsModelId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Executes the specified analytics model and returns calculation results. The structure of the result objects depends on the analytics model implementation. If start or end is omitted, the analytics model is executed once without interval splitting. **Authorization** - API token is required in the `Authorization` header **Permissions** - `analytics:read` permission is required \n * Get analytics results for a specific model\n */\n async getAnalyticsResults(requestParameters: AnalyticsApiGetAnalyticsResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<AnalyticsResult>> {\n const response = await this.getAnalyticsResultsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AvailableController,\n ConnectionModelDetailed,\n ErrorResponse,\n ForbiddenPermissionsError,\n UnauthorizedError,\n UpdateConnectionModelsRequest,\n UpdateConnectionModelsResponse,\n UpdateInstallConfigRequest,\n UpdateInstallConfigResponse,\n} from '../models/index';\n\nexport interface ConnectionModelsApiGetAvailableConnectionModelsRequest {\n machineId: string;\n}\n\nexport interface ConnectionModelsApiGetConnectionModelByNameRequest {\n machineId: string;\n modelName: string;\n modelVersion?: number;\n}\n\nexport interface ConnectionModelsApiGetMachineConnectionModelsRequest {\n machineId: string;\n}\n\nexport interface ConnectionModelsApiUpdateConnectionModelInstallConfigRequest {\n machineId: string;\n modelName: string;\n updateInstallConfigRequest: UpdateInstallConfigRequest;\n modelVersion?: number;\n}\n\nexport interface ConnectionModelsApiUpdateConnectionModelsOperationRequest {\n machineId: string;\n updateConnectionModelsRequest: UpdateConnectionModelsRequest;\n}\n\n/**\n * \n */\nexport class ConnectionModelsApi extends runtime.BaseAPI {\n\n /**\n * Retrieves all connection models (controllers) that are available for installation on a specific machine. This endpoint filters out models that are already installed on the machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Available controller metadata (identity, version, title, etc.) - Install configuration structure - Installation conditions and requirements - Controller type and capabilities **Filtering**: - Excludes models already installed on the machine - Only shows models where user\\'s role allows installation (based on `installRole`) - Includes intelligence controllers from the account \n * List available connection models for installation\n */\n async getAvailableConnectionModelsRaw(requestParameters: ConnectionModelsApiGetAvailableConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<AvailableController>>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getAvailableConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models/available`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves all connection models (controllers) that are available for installation on a specific machine. This endpoint filters out models that are already installed on the machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Available controller metadata (identity, version, title, etc.) - Install configuration structure - Installation conditions and requirements - Controller type and capabilities **Filtering**: - Excludes models already installed on the machine - Only shows models where user\\'s role allows installation (based on `installRole`) - Includes intelligence controllers from the account \n * List available connection models for installation\n */\n async getAvailableConnectionModels(requestParameters: ConnectionModelsApiGetAvailableConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<AvailableController>> {\n const response = await this.getAvailableConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves detailed information about a specific connection model installed on a machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata - Install configuration structure - Current install configuration values - Permissions indicating whether the user can delete the model **Query parameters**: Can specify `model_version` (defaults to 1) \n * Get specific connection model details\n */\n async getConnectionModelByNameRaw(requestParameters: ConnectionModelsApiGetConnectionModelByNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConnectionModelDetailed>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getConnectionModelByName().'\n );\n }\n\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling getConnectionModelByName().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['modelVersion'] != null) {\n queryParameters['model_version'] = requestParameters['modelVersion'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_model/{model_name}`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))).replace(`{${\"model_name\"}}`, encodeURIComponent(String(requestParameters['modelName']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves detailed information about a specific connection model installed on a machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata - Install configuration structure - Current install configuration values - Permissions indicating whether the user can delete the model **Query parameters**: Can specify `model_version` (defaults to 1) \n * Get specific connection model details\n */\n async getConnectionModelByName(requestParameters: ConnectionModelsApiGetConnectionModelByNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConnectionModelDetailed> {\n const response = await this.getConnectionModelByNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves all connection models (controllers) installed on a specific machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata (model_name, model_version, etc.) - Install configuration structure for each model - Permissions indicating whether the user can delete each model - Controller conditions for installation **Role-based filtering** - Only returns models where user\\'s role ≤ model\\'s `view_role_level` \n * List machine\\'s connection models\n */\n async getMachineConnectionModelsRaw(requestParameters: ConnectionModelsApiGetMachineConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<ConnectionModelDetailed>>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getMachineConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves all connection models (controllers) installed on a specific machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata (model_name, model_version, etc.) - Install configuration structure for each model - Permissions indicating whether the user can delete each model - Controller conditions for installation **Role-based filtering** - Only returns models where user\\'s role ≤ model\\'s `view_role_level` \n * List machine\\'s connection models\n */\n async getMachineConnectionModels(requestParameters: ConnectionModelsApiGetMachineConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ConnectionModelDetailed>> {\n const response = await this.getMachineConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Updates the install configuration for a specific connection model on a machine. This allows changing controller settings without reinstalling the entire model. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:write` permission is required **Use case**: Modify controller parameters after installation (e.g., changing thresholds, intervals, etc.) **Query parameters**: Can specify `model_version` (defaults to 1) \n * Update connection model install configuration\n */\n async updateConnectionModelInstallConfigRaw(requestParameters: ConnectionModelsApiUpdateConnectionModelInstallConfigRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateInstallConfigResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n if (requestParameters['updateInstallConfigRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateInstallConfigRequest',\n 'Required parameter \"updateInstallConfigRequest\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['modelVersion'] != null) {\n queryParameters['model_version'] = requestParameters['modelVersion'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_model/{model_name}/install_config`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))).replace(`{${\"model_name\"}}`, encodeURIComponent(String(requestParameters['modelName']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateInstallConfigRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Updates the install configuration for a specific connection model on a machine. This allows changing controller settings without reinstalling the entire model. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:write` permission is required **Use case**: Modify controller parameters after installation (e.g., changing thresholds, intervals, etc.) **Query parameters**: Can specify `model_version` (defaults to 1) \n * Update connection model install configuration\n */\n async updateConnectionModelInstallConfig(requestParameters: ConnectionModelsApiUpdateConnectionModelInstallConfigRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateInstallConfigResponse> {\n const response = await this.updateConnectionModelInstallConfigRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Performs batch operations (add, update, delete) on connection models for a specific machine. This endpoint allows you to manage all connection models in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:delete` permission is required for deletions - `connections:write` permission is required for additions and updates **Operations**: - **Add**: If model doesn\\'t exist, creates a new connection model - **Update**: If model already exists, updates `view_role_level` and `install_config` - **Delete**: Models not included in the request but currently installed will be deleted **Side effects**: - Updates the machine\\'s `connection_models` array \n * Batch update connection models\n */\n async updateConnectionModelsRaw(requestParameters: ConnectionModelsApiUpdateConnectionModelsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateConnectionModelsResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling updateConnectionModels().'\n );\n }\n\n if (requestParameters['updateConnectionModelsRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateConnectionModelsRequest',\n 'Required parameter \"updateConnectionModelsRequest\" was null or undefined when calling updateConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateConnectionModelsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Performs batch operations (add, update, delete) on connection models for a specific machine. This endpoint allows you to manage all connection models in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:delete` permission is required for deletions - `connections:write` permission is required for additions and updates **Operations**: - **Add**: If model doesn\\'t exist, creates a new connection model - **Update**: If model already exists, updates `view_role_level` and `install_config` - **Delete**: Models not included in the request but currently installed will be deleted **Side effects**: - Updates the machine\\'s `connection_models` array \n * Batch update connection models\n */\n async updateConnectionModels(requestParameters: ConnectionModelsApiUpdateConnectionModelsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateConnectionModelsResponse> {\n const response = await this.updateConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AddConnectionsRequest,\n AddConnectionsResponse,\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ForbiddenPermissionsError,\n ListConnectionsResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface ConnectionsApiAddConnectionsOperationRequest {\n addConnectionsRequest: AddConnectionsRequest;\n}\n\nexport interface ConnectionsApiDeleteConnectionRequest {\n machineId: string;\n modelName: string;\n modelVersion: number;\n}\n\nexport interface ConnectionsApiListConnectionsRequest {\n limit?: number;\n offset?: number;\n types?: string;\n}\n\n/**\n * \n */\nexport class ConnectionsApi extends runtime.BaseAPI {\n\n /**\n * Creates new connection models linking a controller model to one or more machines. Can target specific machines by ID or all machines that don\\'t have this model installed. Automatically handles pagination when using \\'all\\' to process large numbers of machines. **Authorization** - API token is required in the `Authorization` header - Only account owners can access this endpoint **Permissions** - `connections:write` permission is required \n * Add model connections to machines\n */\n async addConnectionsRaw(requestParameters: ConnectionsApiAddConnectionsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddConnectionsResponse>> {\n if (requestParameters['addConnectionsRequest'] == null) {\n throw new runtime.RequiredError(\n 'addConnectionsRequest',\n 'Required parameter \"addConnectionsRequest\" was null or undefined when calling addConnections().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/connections/add`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['addConnectionsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates new connection models linking a controller model to one or more machines. Can target specific machines by ID or all machines that don\\'t have this model installed. Automatically handles pagination when using \\'all\\' to process large numbers of machines. **Authorization** - API token is required in the `Authorization` header - Only account owners can access this endpoint **Permissions** - `connections:write` permission is required \n * Add model connections to machines\n */\n async addConnections(requestParameters: ConnectionsApiAddConnectionsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddConnectionsResponse> {\n const response = await this.addConnectionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Removes a connection model linking a controller to a machine. This disconnects the specified controller model from the machine. **Authorization** - API token is required in the `Authorization` header - Only account owners can access this endpoint **Permissions** - `connections:delete` permission is required \n * Delete a connection model\n */\n async deleteConnectionRaw(requestParameters: ConnectionsApiDeleteConnectionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling deleteConnection().'\n );\n }\n\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling deleteConnection().'\n );\n }\n\n if (requestParameters['modelVersion'] == null) {\n throw new runtime.RequiredError(\n 'modelVersion',\n 'Required parameter \"modelVersion\" was null or undefined when calling deleteConnection().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/connections/{machine_id}/{model_name}/{model_version}`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))).replace(`{${\"model_name\"}}`, encodeURIComponent(String(requestParameters['modelName']))).replace(`{${\"model_version\"}}`, encodeURIComponent(String(requestParameters['modelVersion']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Removes a connection model linking a controller to a machine. This disconnects the specified controller model from the machine. **Authorization** - API token is required in the `Authorization` header - Only account owners can access this endpoint **Permissions** - `connections:delete` permission is required \n * Delete a connection model\n */\n async deleteConnection(requestParameters: ConnectionsApiDeleteConnectionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.deleteConnectionRaw(requestParameters, initOverrides);\n }\n\n /**\n * Retrieves a paginated list of connection models associated with machines in the account. Connections link controller models to machines, enabling specific functionality. Results can be filtered by controller type. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required \n * Get list of connections\n */\n async listConnectionsRaw(requestParameters: ConnectionsApiListConnectionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListConnectionsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['types'] != null) {\n queryParameters['types'] = requestParameters['types'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/connections/list`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves a paginated list of connection models associated with machines in the account. Connections link controller models to machines, enabling specific functionality. Results can be filtered by controller type. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required \n * Get list of connections\n */\n async listConnections(requestParameters: ConnectionsApiListConnectionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListConnectionsResponse> {\n const response = await this.listConnectionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n ErrorResponse,\n ForbiddenPermissionsError,\n ListEventsResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface EventsApiListEventsRequest {\n limit?: number;\n offset?: number;\n start?: string;\n end?: string;\n machineIds?: Array<string>;\n groupId?: string;\n minLevel?: ListEventsMinLevelEnum;\n name?: string;\n}\n\n/**\n * \n */\nexport class EventsApi extends runtime.BaseAPI {\n\n /**\n * Retrieves events in reverse chronological order with optional filtering and pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `events:read` permission is required \n * Get events list\n */\n async listEventsRaw(requestParameters: EventsApiListEventsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListEventsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['start'] != null) {\n queryParameters['start'] = requestParameters['start'];\n }\n\n if (requestParameters['end'] != null) {\n queryParameters['end'] = requestParameters['end'];\n }\n\n if (requestParameters['machineIds'] != null) {\n queryParameters['machine_ids'] = requestParameters['machineIds']!.join(runtime.COLLECTION_FORMATS[\"csv\"]);\n }\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n if (requestParameters['minLevel'] != null) {\n queryParameters['min_level'] = requestParameters['minLevel'];\n }\n\n if (requestParameters['name'] != null) {\n queryParameters['name'] = requestParameters['name'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/events`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves events in reverse chronological order with optional filtering and pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `events:read` permission is required \n * Get events list\n */\n async listEvents(requestParameters: EventsApiListEventsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListEventsResponse> {\n const response = await this.listEventsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListEventsMinLevelEnum = {\n None: 'none',\n Debug: 'debug',\n Info: 'info',\n Warning: 'warning',\n Emergency: 'emergency'\n} as const;\nexport type ListEventsMinLevelEnum = typeof ListEventsMinLevelEnum[keyof typeof ListEventsMinLevelEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n ErrorResponse,\n ErrorResponseWithSuccess,\n ForbiddenPermissionsError,\n GetGroupResponse,\n ListGroupsResponse,\n UnauthorizedError,\n UpdateGroupCustomFieldsRequest,\n UpdateGroupCustomFieldsResponse,\n} from '../models/index';\n\nexport interface GroupsApiGetGroupRequest {\n groupId: string;\n limit?: number;\n offset?: number;\n}\n\nexport interface GroupsApiListGroupsRequest {\n searchWord?: string;\n offset?: number;\n limit?: number;\n}\n\nexport interface GroupsApiUpdateGroupCustomFieldsOperationRequest {\n groupId: string;\n updateGroupCustomFieldsRequest: UpdateGroupCustomFieldsRequest;\n}\n\n/**\n * \n */\nexport class GroupsApi extends runtime.BaseAPI {\n\n /**\n * Returns group information along with machines belonging to the group. The user must belong to the same account and have sufficient permissions (owner role or explicit membership in the requested group). Pagination is applied to the machines list using limit and offset. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:read` permission is required \n * Get group information\n */\n async getGroupRaw(requestParameters: GroupsApiGetGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetGroupResponse>> {\n if (requestParameters['groupId'] == null) {\n throw new runtime.RequiredError(\n 'groupId',\n 'Required parameter \"groupId\" was null or undefined when calling getGroup().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/groups/{group_id}`.replace(`{${\"group_id\"}}`, encodeURIComponent(String(requestParameters['groupId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns group information along with machines belonging to the group. The user must belong to the same account and have sufficient permissions (owner role or explicit membership in the requested group). Pagination is applied to the machines list using limit and offset. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:read` permission is required \n * Get group information\n */\n async getGroup(requestParameters: GroupsApiGetGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetGroupResponse> {\n const response = await this.getGroupRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a paginated list of groups accessible to the user. Access scope depends on user role: - Owner: all groups in the account - Member: only the group the user belongs to Results can be filtered by group name using a case-insensitive partial match. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:read` permission is required \n * Get group list\n */\n async listGroupsRaw(requestParameters: GroupsApiListGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListGroupsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['searchWord'] != null) {\n queryParameters['search_word'] = requestParameters['searchWord'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/groups`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a paginated list of groups accessible to the user. Access scope depends on user role: - Owner: all groups in the account - Member: only the group the user belongs to Results can be filtered by group name using a case-insensitive partial match. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:read` permission is required \n * Get group list\n */\n async listGroups(requestParameters: GroupsApiListGroupsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListGroupsResponse> {\n const response = await this.listGroupsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Replaces custom fields for the specified group. The user must be an account owner or belong to the target group. Existing custom fields are fully replaced by the provided object. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:write` permission is required \n * Update group custom fields\n */\n async updateGroupCustomFieldsRaw(requestParameters: GroupsApiUpdateGroupCustomFieldsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateGroupCustomFieldsResponse>> {\n if (requestParameters['groupId'] == null) {\n throw new runtime.RequiredError(\n 'groupId',\n 'Required parameter \"groupId\" was null or undefined when calling updateGroupCustomFields().'\n );\n }\n\n if (requestParameters['updateGroupCustomFieldsRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateGroupCustomFieldsRequest',\n 'Required parameter \"updateGroupCustomFieldsRequest\" was null or undefined when calling updateGroupCustomFields().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/groups/{group_id}/custom`.replace(`{${\"group_id\"}}`, encodeURIComponent(String(requestParameters['groupId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateGroupCustomFieldsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Replaces custom fields for the specified group. The user must be an account owner or belong to the target group. Existing custom fields are fully replaced by the provided object. **Authorization** - API token is required in the `Authorization` header **Permissions** - `groups:write` permission is required \n * Update group custom fields\n */\n async updateGroupCustomFields(requestParameters: GroupsApiUpdateGroupCustomFieldsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateGroupCustomFieldsResponse> {\n const response = await this.updateGroupCustomFieldsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n BatchCreateConnectionsRequest,\n BatchCreateConnectionsResponse,\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ListInboundConnectionsResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface InboundConnectionsApiBatchCreateConnectionsOperationRequest {\n id: string;\n batchCreateConnectionsRequest: BatchCreateConnectionsRequest;\n}\n\nexport interface InboundConnectionsApiListInboundConnectionsRequest {\n id: string;\n limit?: number;\n offset?: number;\n}\n\n/**\n * \n */\nexport class InboundConnectionsApi extends runtime.BaseAPI {\n\n /**\n * Creates multiple machines and their inbound connections in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Results** Each unit in the request gets a result indicating success or error. \n * Batch create inbound connections\n */\n async batchCreateConnectionsRaw(requestParameters: InboundConnectionsApiBatchCreateConnectionsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BatchCreateConnectionsResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling batchCreateConnections().'\n );\n }\n\n if (requestParameters['batchCreateConnectionsRequest'] == null) {\n throw new runtime.RequiredError(\n 'batchCreateConnectionsRequest',\n 'Required parameter \"batchCreateConnectionsRequest\" was null or undefined when calling batchCreateConnections().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}/connections/batch-create`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['batchCreateConnectionsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates multiple machines and their inbound connections in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Results** Each unit in the request gets a result indicating success or error. \n * Batch create inbound connections\n */\n async batchCreateConnections(requestParameters: InboundConnectionsApiBatchCreateConnectionsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BatchCreateConnectionsResponse> {\n const response = await this.batchCreateConnectionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a paginated list of inbound connections for a specific inbound source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required \n * List inbound connections\n */\n async listInboundConnectionsRaw(requestParameters: InboundConnectionsApiListInboundConnectionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListInboundConnectionsResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling listInboundConnections().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}/connections/list`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a paginated list of inbound connections for a specific inbound source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required \n * List inbound connections\n */\n async listInboundConnections(requestParameters: InboundConnectionsApiListInboundConnectionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListInboundConnectionsResponse> {\n const response = await this.listInboundConnectionsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AddInboundSourceRequest,\n AddInboundSourceResponse,\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ForbiddenPermissionsError,\n InboundSource,\n ListInboundSourcesResponse,\n ReceiveDataResponse,\n ReceiveInboundData402Response,\n RemoveDetectionRequest,\n UnauthorizedError,\n UpdateInboundSourceRequest,\n} from '../models/index';\n\nexport interface InboundSourcesApiAddInboundSourceOperationRequest {\n addInboundSourceRequest: AddInboundSourceRequest;\n}\n\nexport interface InboundSourcesApiDeleteInboundSourceRequest {\n id: string;\n}\n\nexport interface InboundSourcesApiGetInboundSourceRequest {\n id: string;\n}\n\nexport interface InboundSourcesApiListInboundSourcesRequest {\n name?: string;\n limit?: number;\n offset?: number;\n}\n\nexport interface InboundSourcesApiReceiveInboundDataRequest {\n id: string;\n}\n\nexport interface InboundSourcesApiRemoveDetectionOperationRequest {\n id: string;\n removeDetectionRequest: RemoveDetectionRequest;\n}\n\nexport interface InboundSourcesApiUpdateInboundSourceOperationRequest {\n id: string;\n updateInboundSourceRequest: UpdateInboundSourceRequest;\n}\n\n/**\n * \n */\nexport class InboundSourcesApi extends runtime.BaseAPI {\n\n /**\n * Creates a new inbound data source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Supported Gateway Models** - SLGW_01 - Salta Gateway **Supported Formats** - application/x-www-form-urlencoded - application/json \n * Create inbound source\n */\n async addInboundSourceRaw(requestParameters: InboundSourcesApiAddInboundSourceOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddInboundSourceResponse>> {\n if (requestParameters['addInboundSourceRequest'] == null) {\n throw new runtime.RequiredError(\n 'addInboundSourceRequest',\n 'Required parameter \"addInboundSourceRequest\" was null or undefined when calling addInboundSource().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/add-source`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['addInboundSourceRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates a new inbound data source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Supported Gateway Models** - SLGW_01 - Salta Gateway **Supported Formats** - application/x-www-form-urlencoded - application/json \n * Create inbound source\n */\n async addInboundSource(requestParameters: InboundSourcesApiAddInboundSourceOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddInboundSourceResponse> {\n const response = await this.addInboundSourceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Deletes an existing inbound source by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:delete` permission is required \n * Delete inbound source\n */\n async deleteInboundSourceRaw(requestParameters: InboundSourcesApiDeleteInboundSourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling deleteInboundSource().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Deletes an existing inbound source by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:delete` permission is required \n * Delete inbound source\n */\n async deleteInboundSource(requestParameters: InboundSourcesApiDeleteInboundSourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.deleteInboundSourceRaw(requestParameters, initOverrides);\n }\n\n /**\n * Retrieves a single inbound source by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required \n * Get inbound source\n */\n async getInboundSourceRaw(requestParameters: InboundSourcesApiGetInboundSourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<InboundSource>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getInboundSource().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves a single inbound source by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required \n * Get inbound source\n */\n async getInboundSource(requestParameters: InboundSourcesApiGetInboundSourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<InboundSource> {\n const response = await this.getInboundSourceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a paginated list of inbound sources. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required **Filtering** - Filter by name (partial match) \n * List inbound sources\n */\n async listInboundSourcesRaw(requestParameters: InboundSourcesApiListInboundSourcesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListInboundSourcesResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['name'] != null) {\n queryParameters['name'] = requestParameters['name'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/list`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a paginated list of inbound sources. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:read` permission is required **Filtering** - Filter by name (partial match) \n * List inbound sources\n */\n async listInboundSources(requestParameters: InboundSourcesApiListInboundSourcesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListInboundSourcesResponse> {\n const response = await this.listInboundSourcesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Receives sensor data from external gateway devices. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources_upload:write` permission is required **Rate Limiting** - Limited by account plan (InboundSourcesUpload limit) - Returns 402 when limit is exceeded **Supported Formats** - application/x-www-form-urlencoded (SLGW_01 gateway) - application/json (not yet supported - returns 501) \n * Receive sensor data\n */\n async receiveInboundDataRaw(requestParameters: InboundSourcesApiReceiveInboundDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ReceiveDataResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling receiveInboundData().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Receives sensor data from external gateway devices. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources_upload:write` permission is required **Rate Limiting** - Limited by account plan (InboundSourcesUpload limit) - Returns 402 when limit is exceeded **Supported Formats** - application/x-www-form-urlencoded (SLGW_01 gateway) - application/json (not yet supported - returns 501) \n * Receive sensor data\n */\n async receiveInboundData(requestParameters: InboundSourcesApiReceiveInboundDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ReceiveDataResponse | null | undefined > {\n const response = await this.receiveInboundDataRaw(requestParameters, initOverrides);\n switch (response.raw.status) {\n case 200:\n return await response.value();\n case 204:\n return null;\n default:\n return await response.value();\n }\n }\n\n /**\n * Removes a sensor ID from the inbound source\\'s external_detections list. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:delete` permission is required \n * Remove sensor detection\n */\n async removeDetectionRaw(requestParameters: InboundSourcesApiRemoveDetectionOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling removeDetection().'\n );\n }\n\n if (requestParameters['removeDetectionRequest'] == null) {\n throw new runtime.RequiredError(\n 'removeDetectionRequest',\n 'Required parameter \"removeDetectionRequest\" was null or undefined when calling removeDetection().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}/remove-detection`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['removeDetectionRequest'],\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Removes a sensor ID from the inbound source\\'s external_detections list. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:delete` permission is required \n * Remove sensor detection\n */\n async removeDetection(requestParameters: InboundSourcesApiRemoveDetectionOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.removeDetectionRaw(requestParameters, initOverrides);\n }\n\n /**\n * Partially updates an existing inbound source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Updatable Fields** - id - account_id - name - format - gateway_id - gateway_model - created_at - updated_at \n * Update inbound source\n */\n async updateInboundSourceRaw(requestParameters: InboundSourcesApiUpdateInboundSourceOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling updateInboundSource().'\n );\n }\n\n if (requestParameters['updateInboundSourceRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateInboundSourceRequest',\n 'Required parameter \"updateInboundSourceRequest\" was null or undefined when calling updateInboundSource().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/inbound/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'PATCH',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateInboundSourceRequest'],\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Partially updates an existing inbound source. **Authorization** - API token is required in the `Authorization` header **Permissions** - `inbound_sources:write` permission is required **Updatable Fields** - id - account_id - name - format - gateway_id - gateway_model - created_at - updated_at \n * Update inbound source\n */\n async updateInboundSource(requestParameters: InboundSourcesApiUpdateInboundSourceOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.updateInboundSourceRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AddIntegrationsRequest,\n AddIntegrationsResponse,\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ForbiddenPermissionsError,\n Integration,\n ListIntegrationsResponse,\n RateLimitError,\n TransformIntegrationRequest,\n UnauthorizedError,\n UpdateIntegrationRequest,\n} from '../models/index';\n\nexport interface IntegrationsApiAddIntegrationsOperationRequest {\n addIntegrationsRequest: AddIntegrationsRequest;\n}\n\nexport interface IntegrationsApiDeleteIntegrationRequest {\n id: string;\n}\n\nexport interface IntegrationsApiGetIntegrationRequest {\n id: string;\n}\n\nexport interface IntegrationsApiGetIntegrationDataRequest {\n id: string;\n}\n\nexport interface IntegrationsApiListIntegrationsRequest {\n machineIds?: string;\n name?: string;\n limit?: number;\n offset?: number;\n}\n\nexport interface IntegrationsApiTransformIntegrationOperationRequest {\n transformIntegrationRequest: TransformIntegrationRequest;\n}\n\nexport interface IntegrationsApiUpdateIntegrationOperationRequest {\n id: string;\n updateIntegrationRequest: UpdateIntegrationRequest;\n}\n\n/**\n * \n */\nexport class IntegrationsApi extends runtime.BaseAPI {\n\n /**\n * Creates integrations for multiple machines in a single request. One integration is created per machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required \n * Add integrations for multiple machines\n */\n async addIntegrationsRaw(requestParameters: IntegrationsApiAddIntegrationsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddIntegrationsResponse>> {\n if (requestParameters['addIntegrationsRequest'] == null) {\n throw new runtime.RequiredError(\n 'addIntegrationsRequest',\n 'Required parameter \"addIntegrationsRequest\" was null or undefined when calling addIntegrations().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/add-integration`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['addIntegrationsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates integrations for multiple machines in a single request. One integration is created per machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required \n * Add integrations for multiple machines\n */\n async addIntegrations(requestParameters: IntegrationsApiAddIntegrationsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddIntegrationsResponse> {\n const response = await this.addIntegrationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Deletes an existing integration by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:delete` permission is required \n * Delete integration\n */\n async deleteIntegrationRaw(requestParameters: IntegrationsApiDeleteIntegrationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling deleteIntegration().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Deletes an existing integration by ID. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:delete` permission is required \n * Delete integration\n */\n async deleteIntegration(requestParameters: IntegrationsApiDeleteIntegrationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.deleteIntegrationRaw(requestParameters, initOverrides);\n }\n\n /**\n * Returns detailed information about a specific integration. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required \n * Get integration by ID\n */\n async getIntegrationRaw(requestParameters: IntegrationsApiGetIntegrationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Integration>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getIntegration().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns detailed information about a specific integration. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required \n * Get integration by ID\n */\n async getIntegration(requestParameters: IntegrationsApiGetIntegrationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Integration> {\n const response = await this.getIntegrationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves transformed machine data through an API Pull integration. This endpoint: - Validates the integration exists and is enabled - Collects machine state data since last usage - Transforms data according to integration schema **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required **Rate Limiting** - Rate limits are based on account plan - Returns X-RateLimit-Limit and X-RateLimit-Remaining headers **Notes** - Only works with APIPull type integrations - Returns data collected since the integration was last used (or last 30 minutes) \n * Get integration data\n */\n async getIntegrationDataRaw(requestParameters: IntegrationsApiGetIntegrationDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: any; }>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getIntegrationData().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/{id}/data`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Retrieves transformed machine data through an API Pull integration. This endpoint: - Validates the integration exists and is enabled - Collects machine state data since last usage - Transforms data according to integration schema **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required **Rate Limiting** - Rate limits are based on account plan - Returns X-RateLimit-Limit and X-RateLimit-Remaining headers **Notes** - Only works with APIPull type integrations - Returns data collected since the integration was last used (or last 30 minutes) \n * Get integration data\n */\n async getIntegrationData(requestParameters: IntegrationsApiGetIntegrationDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: any; }> {\n const response = await this.getIntegrationDataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a paginated list of integrations. **Authorization**: - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required **Filtering**: - Filter by machine IDs - Filter by integration name (partial match) \n * List integrations\n */\n async listIntegrationsRaw(requestParameters: IntegrationsApiListIntegrationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListIntegrationsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['machineIds'] != null) {\n queryParameters['machine_ids'] = requestParameters['machineIds'];\n }\n\n if (requestParameters['name'] != null) {\n queryParameters['name'] = requestParameters['name'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/list`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a paginated list of integrations. **Authorization**: - API token is required in the `Authorization` header **Permissions** - `integrations:read` permission is required **Filtering**: - Filter by machine IDs - Filter by integration name (partial match) \n * List integrations\n */\n async listIntegrations(requestParameters: IntegrationsApiListIntegrationsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListIntegrationsResponse> {\n const response = await this.listIntegrationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Tests an integration schema by transforming sample or provided data. This endpoint allows you to: - Validate integration schema before creating an integration - Test data transformation with sample controller data - Provide custom data to test transformation - Preview the output format **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required **Supported Integration Types** - PubSub - Transforms data for Google Cloud Pub/Sub - APIPull - Transforms data for API Pull endpoints - APIPush - Transforms data for API Push endpoints \n * Test integration transformation\n */\n async transformIntegrationRaw(requestParameters: IntegrationsApiTransformIntegrationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: any; }>> {\n if (requestParameters['transformIntegrationRequest'] == null) {\n throw new runtime.RequiredError(\n 'transformIntegrationRequest',\n 'Required parameter \"transformIntegrationRequest\" was null or undefined when calling transformIntegration().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/transform`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['transformIntegrationRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Tests an integration schema by transforming sample or provided data. This endpoint allows you to: - Validate integration schema before creating an integration - Test data transformation with sample controller data - Provide custom data to test transformation - Preview the output format **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required **Supported Integration Types** - PubSub - Transforms data for Google Cloud Pub/Sub - APIPull - Transforms data for API Pull endpoints - APIPush - Transforms data for API Push endpoints \n * Test integration transformation\n */\n async transformIntegration(requestParameters: IntegrationsApiTransformIntegrationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: any; }> {\n const response = await this.transformIntegrationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Partially updates an existing integration. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required **Updatable Fields** - Any field from the Integration schema can be updated using this endpoint. - Common fields include name, enabled, schema, configuration, service, credentials. \n * Update integration\n */\n async updateIntegrationRaw(requestParameters: IntegrationsApiUpdateIntegrationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling updateIntegration().'\n );\n }\n\n if (requestParameters['updateIntegrationRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateIntegrationRequest',\n 'Required parameter \"updateIntegrationRequest\" was null or undefined when calling updateIntegration().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/integrations/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'PATCH',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateIntegrationRequest'],\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Partially updates an existing integration. **Authorization** - API token is required in the `Authorization` header **Permissions** - `integrations:write` permission is required **Updatable Fields** - Any field from the Integration schema can be updated using this endpoint. - Common fields include name, enabled, schema, configuration, service, credentials. \n * Update integration\n */\n async updateIntegration(requestParameters: IntegrationsApiUpdateIntegrationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.updateIntegrationRaw(requestParameters, initOverrides);\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ForbiddenPermissionsError,\n GetIntelligenceResponse,\n Intelligence,\n IntelligenceInput,\n IntelligenceSuccessResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface IntelligencesApiAddIntelligenceRequest {\n intelligenceInput: IntelligenceInput;\n}\n\nexport interface IntelligencesApiDeleteIntelligenceRequest {\n name: string;\n version: number;\n}\n\nexport interface IntelligencesApiEditIntelligenceRequest {\n name: string;\n version: number;\n intelligenceInput: IntelligenceInput;\n}\n\nexport interface IntelligencesApiGetIntelligenceRequest {\n name: string;\n version: number;\n}\n\n/**\n * \n */\nexport class IntelligencesApi extends runtime.BaseAPI {\n\n /**\n * Creates a new intelligence controller. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:write` permission is required **Validation** - Name and version combination must be unique - Version must be a positive integer - All required fields must be provided - `type` must be a valid ControllerType - `publishment` must be a valid ControllerPublishment - `code_type` must be a valid CodeType \n * Add intelligence\n */\n async addIntelligenceRaw(requestParameters: IntelligencesApiAddIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<IntelligenceSuccessResponse>> {\n if (requestParameters['intelligenceInput'] == null) {\n throw new runtime.RequiredError(\n 'intelligenceInput',\n 'Required parameter \"intelligenceInput\" was null or undefined when calling addIntelligence().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/intelligences/add-intelligence`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['intelligenceInput'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates a new intelligence controller. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:write` permission is required **Validation** - Name and version combination must be unique - Version must be a positive integer - All required fields must be provided - `type` must be a valid ControllerType - `publishment` must be a valid ControllerPublishment - `code_type` must be a valid CodeType \n * Add intelligence\n */\n async addIntelligence(requestParameters: IntelligencesApiAddIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<IntelligenceSuccessResponse> {\n const response = await this.addIntelligenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Deletes an intelligence controller and its associated authority. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:delete` permission is required \n * Delete intelligence\n */\n async deleteIntelligenceRaw(requestParameters: IntelligencesApiDeleteIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['name'] == null) {\n throw new runtime.RequiredError(\n 'name',\n 'Required parameter \"name\" was null or undefined when calling deleteIntelligence().'\n );\n }\n\n if (requestParameters['version'] == null) {\n throw new runtime.RequiredError(\n 'version',\n 'Required parameter \"version\" was null or undefined when calling deleteIntelligence().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/intelligences/{name}/{version}`.replace(`{${\"name\"}}`, encodeURIComponent(String(requestParameters['name']))).replace(`{${\"version\"}}`, encodeURIComponent(String(requestParameters['version']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Deletes an intelligence controller and its associated authority. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:delete` permission is required \n * Delete intelligence\n */\n async deleteIntelligence(requestParameters: IntelligencesApiDeleteIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.deleteIntelligenceRaw(requestParameters, initOverrides);\n }\n\n /**\n * Updates an existing intelligence controller. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:write` permission is required **Validation** - Version must be a positive integer - All required fields must be provided - `type` must be a valid ControllerType - `publishment` must be a valid ControllerPublishment - `code_type` must be a valid CodeType \n * Edit intelligence\n */\n async editIntelligenceRaw(requestParameters: IntelligencesApiEditIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<IntelligenceSuccessResponse>> {\n if (requestParameters['name'] == null) {\n throw new runtime.RequiredError(\n 'name',\n 'Required parameter \"name\" was null or undefined when calling editIntelligence().'\n );\n }\n\n if (requestParameters['version'] == null) {\n throw new runtime.RequiredError(\n 'version',\n 'Required parameter \"version\" was null or undefined when calling editIntelligence().'\n );\n }\n\n if (requestParameters['intelligenceInput'] == null) {\n throw new runtime.RequiredError(\n 'intelligenceInput',\n 'Required parameter \"intelligenceInput\" was null or undefined when calling editIntelligence().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/intelligences/{name}/{version}/edit`.replace(`{${\"name\"}}`, encodeURIComponent(String(requestParameters['name']))).replace(`{${\"version\"}}`, encodeURIComponent(String(requestParameters['version']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['intelligenceInput'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Updates an existing intelligence controller. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:write` permission is required **Validation** - Version must be a positive integer - All required fields must be provided - `type` must be a valid ControllerType - `publishment` must be a valid ControllerPublishment - `code_type` must be a valid CodeType \n * Edit intelligence\n */\n async editIntelligence(requestParameters: IntelligencesApiEditIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<IntelligenceSuccessResponse> {\n const response = await this.editIntelligenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a list of all available intelligence controllers. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:read` permission is required **Visibility Rules** - Public intelligences are visible to all users - Private intelligences are visible only if user has authority \n * List all intelligences\n */\n async getAllIntelligencesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Intelligence>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/intelligences/get-all`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a list of all available intelligence controllers. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:read` permission is required **Visibility Rules** - Public intelligences are visible to all users - Private intelligences are visible only if user has authority \n * List all intelligences\n */\n async getAllIntelligences(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Intelligence>> {\n const response = await this.getAllIntelligencesRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves a specific intelligence controller by name and version. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:read` permission is required **Responce** - Returns `allowedToEdit: true` if user\\'s account owns the intelligence - Returns `allowedToEdit: false` otherwise \n * Get intelligence\n */\n async getIntelligenceRaw(requestParameters: IntelligencesApiGetIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetIntelligenceResponse>> {\n if (requestParameters['name'] == null) {\n throw new runtime.RequiredError(\n 'name',\n 'Required parameter \"name\" was null or undefined when calling getIntelligence().'\n );\n }\n\n if (requestParameters['version'] == null) {\n throw new runtime.RequiredError(\n 'version',\n 'Required parameter \"version\" was null or undefined when calling getIntelligence().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/intelligences/{name}/{version}`.replace(`{${\"name\"}}`, encodeURIComponent(String(requestParameters['name']))).replace(`{${\"version\"}}`, encodeURIComponent(String(requestParameters['version']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves a specific intelligence controller by name and version. **Authorization** - API token is required in the `Authorization` header **Permissions** - `intelligences:read` permission is required **Responce** - Returns `allowedToEdit: true` if user\\'s account owns the intelligence - Returns `allowedToEdit: false` otherwise \n * Get intelligence\n */\n async getIntelligence(requestParameters: IntelligencesApiGetIntelligenceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetIntelligenceResponse> {\n const response = await this.getIntelligenceRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n CloseIssueResponse,\n ErrorResponse,\n ForbiddenPermissionsError,\n ListIssuesResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface IssuesApiCloseIssueRequest {\n id: string;\n}\n\nexport interface IssuesApiListIssuesRequest {\n limit?: number;\n offset?: number;\n searchFilter?: ListIssuesSearchFilterEnum;\n searchWord?: string;\n isOpen?: ListIssuesIsOpenEnum;\n}\n\n/**\n * \n */\nexport class IssuesApi extends runtime.BaseAPI {\n\n /**\n * Marks an issue as closed by setting the closed_at timestamp **Authorization** - API token is required in the `Authorization` header **Permissions** - `issues:write` permission is required \n * Close an issue\n */\n async closeIssueRaw(requestParameters: IssuesApiCloseIssueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CloseIssueResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling closeIssue().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/issues/{id}/close`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Marks an issue as closed by setting the closed_at timestamp **Authorization** - API token is required in the `Authorization` header **Permissions** - `issues:write` permission is required \n * Close an issue\n */\n async closeIssue(requestParameters: IssuesApiCloseIssueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CloseIssueResponse> {\n const response = await this.closeIssueRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves issues associated with the account and group with optional filtering and pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `issues:read` permission is required \n * Get issues list\n */\n async listIssuesRaw(requestParameters: IssuesApiListIssuesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListIssuesResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['searchFilter'] != null) {\n queryParameters['search_filter'] = requestParameters['searchFilter'];\n }\n\n if (requestParameters['searchWord'] != null) {\n queryParameters['search_word'] = requestParameters['searchWord'];\n }\n\n if (requestParameters['isOpen'] != null) {\n queryParameters['is_open'] = requestParameters['isOpen'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/issues`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves issues associated with the account and group with optional filtering and pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `issues:read` permission is required \n * Get issues list\n */\n async listIssues(requestParameters: IssuesApiListIssuesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListIssuesResponse> {\n const response = await this.listIssuesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListIssuesSearchFilterEnum = {\n Name: 'name'\n} as const;\nexport type ListIssuesSearchFilterEnum = typeof ListIssuesSearchFilterEnum[keyof typeof ListIssuesSearchFilterEnum];\n/**\n * @export\n */\nexport const ListIssuesIsOpenEnum = {\n True: 'true',\n False: 'false'\n} as const;\nexport type ListIssuesIsOpenEnum = typeof ListIssuesIsOpenEnum[keyof typeof ListIssuesIsOpenEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AvailableController,\n ConnectionModelDetailed,\n DeleteMachineResponse,\n ErrorResponse,\n ForbiddenPermissionsError,\n MachineGroupsResponse,\n MachineWithState,\n UnauthorizedError,\n UpdateConnectionModelsRequest,\n UpdateConnectionModelsResponse,\n UpdateInstallConfigRequest,\n UpdateInstallConfigResponse,\n UpdateMachinePublicRequest,\n UpdateMachinePublicResponse,\n} from '../models/index';\n\nexport interface MachineApiDeleteMachineRequest {\n machineId: string;\n}\n\nexport interface MachineApiGetAvailableConnectionModelsRequest {\n machineId: string;\n}\n\nexport interface MachineApiGetConnectionModelByNameRequest {\n machineId: string;\n modelName: string;\n modelVersion?: number;\n}\n\nexport interface MachineApiGetMachineRequest {\n machineId: string;\n}\n\nexport interface MachineApiGetMachineConnectionModelsRequest {\n machineId: string;\n}\n\nexport interface MachineApiGetMachineGroupsRequest {\n machineId: string;\n}\n\nexport interface MachineApiUpdateConnectionModelInstallConfigRequest {\n machineId: string;\n modelName: string;\n updateInstallConfigRequest: UpdateInstallConfigRequest;\n modelVersion?: number;\n}\n\nexport interface MachineApiUpdateConnectionModelsOperationRequest {\n machineId: string;\n updateConnectionModelsRequest: UpdateConnectionModelsRequest;\n}\n\nexport interface MachineApiUpdateMachinePublicOperationRequest {\n machineId: string;\n updateMachinePublicRequest: UpdateMachinePublicRequest;\n}\n\n/**\n * \n */\nexport class MachineApi extends runtime.BaseAPI {\n\n /**\n * Permanently deletes a machine and all its associated data. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:delete` permission is required **Side effects**: - Deletes the machine from the database - Cascades deletion to related records (connections, events, etc.) **Warning**: This operation is irreversible! \n * Delete a machine\n */\n async deleteMachineRaw(requestParameters: MachineApiDeleteMachineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeleteMachineResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling deleteMachine().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Permanently deletes a machine and all its associated data. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:delete` permission is required **Side effects**: - Deletes the machine from the database - Cascades deletion to related records (connections, events, etc.) **Warning**: This operation is irreversible! \n * Delete a machine\n */\n async deleteMachine(requestParameters: MachineApiDeleteMachineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeleteMachineResponse> {\n const response = await this.deleteMachineRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves all connection models (controllers) that are available for installation on a specific machine. This endpoint filters out models that are already installed on the machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Available controller metadata (identity, version, title, etc.) - Install configuration structure - Installation conditions and requirements - Controller type and capabilities **Filtering**: - Excludes models already installed on the machine - Only shows models where user\\'s role allows installation (based on `installRole`) - Includes intelligence controllers from the account \n * List available connection models for installation\n */\n async getAvailableConnectionModelsRaw(requestParameters: MachineApiGetAvailableConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<AvailableController>>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getAvailableConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models/available`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves all connection models (controllers) that are available for installation on a specific machine. This endpoint filters out models that are already installed on the machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Available controller metadata (identity, version, title, etc.) - Install configuration structure - Installation conditions and requirements - Controller type and capabilities **Filtering**: - Excludes models already installed on the machine - Only shows models where user\\'s role allows installation (based on `installRole`) - Includes intelligence controllers from the account \n * List available connection models for installation\n */\n async getAvailableConnectionModels(requestParameters: MachineApiGetAvailableConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<AvailableController>> {\n const response = await this.getAvailableConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves detailed information about a specific connection model installed on a machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata - Install configuration structure - Current install configuration values - Permissions indicating whether the user can delete the model **Query parameters**: Can specify `model_version` (defaults to 1) \n * Get specific connection model details\n */\n async getConnectionModelByNameRaw(requestParameters: MachineApiGetConnectionModelByNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConnectionModelDetailed>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getConnectionModelByName().'\n );\n }\n\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling getConnectionModelByName().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['modelVersion'] != null) {\n queryParameters['model_version'] = requestParameters['modelVersion'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_model/{model_name}`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))).replace(`{${\"model_name\"}}`, encodeURIComponent(String(requestParameters['modelName']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves detailed information about a specific connection model installed on a machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata - Install configuration structure - Current install configuration values - Permissions indicating whether the user can delete the model **Query parameters**: Can specify `model_version` (defaults to 1) \n * Get specific connection model details\n */\n async getConnectionModelByName(requestParameters: MachineApiGetConnectionModelByNameRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConnectionModelDetailed> {\n const response = await this.getConnectionModelByNameRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves detailed information about a specific machine, including its current state. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required **Response includes**: - Machine metadata (name, id, connection models, etc.) - Current machine state (`machine_stat`) - key-value pairs of the latest state data \n * Get machine details\n */\n async getMachineRaw(requestParameters: MachineApiGetMachineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MachineWithState>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getMachine().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves detailed information about a specific machine, including its current state. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required **Response includes**: - Machine metadata (name, id, connection models, etc.) - Current machine state (`machine_stat`) - key-value pairs of the latest state data \n * Get machine details\n */\n async getMachine(requestParameters: MachineApiGetMachineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MachineWithState> {\n const response = await this.getMachineRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves all connection models (controllers) installed on a specific machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata (model_name, model_version, etc.) - Install configuration structure for each model - Permissions indicating whether the user can delete each model - Controller conditions for installation **Role-based filtering** - Only returns models where user\\'s role ≤ model\\'s `view_role_level` \n * List machine\\'s connection models\n */\n async getMachineConnectionModelsRaw(requestParameters: MachineApiGetMachineConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<ConnectionModelDetailed>>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getMachineConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves all connection models (controllers) installed on a specific machine. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:read` permission is required **Response includes**: - Connection model metadata (model_name, model_version, etc.) - Install configuration structure for each model - Permissions indicating whether the user can delete each model - Controller conditions for installation **Role-based filtering** - Only returns models where user\\'s role ≤ model\\'s `view_role_level` \n * List machine\\'s connection models\n */\n async getMachineConnectionModels(requestParameters: MachineApiGetMachineConnectionModelsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ConnectionModelDetailed>> {\n const response = await this.getMachineConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves a list of groups that the specified machine is assigned to. **Authorization** - API token is required in the `Authorization` header - User must have access to the account that owns the machine **Permissions** - `machines:read` permission is required **Response includes**: - Machine ID - List of groups (id and name) that the machine belongs to \n * Get machine groups\n */\n async getMachineGroupsRaw(requestParameters: MachineApiGetMachineGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MachineGroupsResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling getMachineGroups().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/groups`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves a list of groups that the specified machine is assigned to. **Authorization** - API token is required in the `Authorization` header - User must have access to the account that owns the machine **Permissions** - `machines:read` permission is required **Response includes**: - Machine ID - List of groups (id and name) that the machine belongs to \n * Get machine groups\n */\n async getMachineGroups(requestParameters: MachineApiGetMachineGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MachineGroupsResponse> {\n const response = await this.getMachineGroupsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Updates the install configuration for a specific connection model on a machine. This allows changing controller settings without reinstalling the entire model. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:write` permission is required **Use case**: Modify controller parameters after installation (e.g., changing thresholds, intervals, etc.) **Query parameters**: Can specify `model_version` (defaults to 1) \n * Update connection model install configuration\n */\n async updateConnectionModelInstallConfigRaw(requestParameters: MachineApiUpdateConnectionModelInstallConfigRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateInstallConfigResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n if (requestParameters['updateInstallConfigRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateInstallConfigRequest',\n 'Required parameter \"updateInstallConfigRequest\" was null or undefined when calling updateConnectionModelInstallConfig().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['modelVersion'] != null) {\n queryParameters['model_version'] = requestParameters['modelVersion'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_model/{model_name}/install_config`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))).replace(`{${\"model_name\"}}`, encodeURIComponent(String(requestParameters['modelName']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateInstallConfigRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Updates the install configuration for a specific connection model on a machine. This allows changing controller settings without reinstalling the entire model. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:write` permission is required **Use case**: Modify controller parameters after installation (e.g., changing thresholds, intervals, etc.) **Query parameters**: Can specify `model_version` (defaults to 1) \n * Update connection model install configuration\n */\n async updateConnectionModelInstallConfig(requestParameters: MachineApiUpdateConnectionModelInstallConfigRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateInstallConfigResponse> {\n const response = await this.updateConnectionModelInstallConfigRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Performs batch operations (add, update, delete) on connection models for a specific machine. This endpoint allows you to manage all connection models in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:delete` permission is required for deletions - `connections:write` permission is required for additions and updates **Operations**: - **Add**: If model doesn\\'t exist, creates a new connection model - **Update**: If model already exists, updates `view_role_level` and `install_config` - **Delete**: Models not included in the request but currently installed will be deleted **Side effects**: - Updates the machine\\'s `connection_models` array \n * Batch update connection models\n */\n async updateConnectionModelsRaw(requestParameters: MachineApiUpdateConnectionModelsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateConnectionModelsResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling updateConnectionModels().'\n );\n }\n\n if (requestParameters['updateConnectionModelsRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateConnectionModelsRequest',\n 'Required parameter \"updateConnectionModelsRequest\" was null or undefined when calling updateConnectionModels().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/connection_models`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateConnectionModelsRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Performs batch operations (add, update, delete) on connection models for a specific machine. This endpoint allows you to manage all connection models in a single request. **Authorization** - API token is required in the `Authorization` header **Permissions** - `connections:delete` permission is required for deletions - `connections:write` permission is required for additions and updates **Operations**: - **Add**: If model doesn\\'t exist, creates a new connection model - **Update**: If model already exists, updates `view_role_level` and `install_config` - **Delete**: Models not included in the request but currently installed will be deleted **Side effects**: - Updates the machine\\'s `connection_models` array \n * Batch update connection models\n */\n async updateConnectionModels(requestParameters: MachineApiUpdateConnectionModelsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateConnectionModelsResponse> {\n const response = await this.updateConnectionModelsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Updates the public visibility status of a machine. When a machine is public, its data can be accessed without authentication through public endpoints. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required **Side effects** - Updates `is_public` flag on the machine \n * Update machine public visibility\n */\n async updateMachinePublicRaw(requestParameters: MachineApiUpdateMachinePublicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateMachinePublicResponse>> {\n if (requestParameters['machineId'] == null) {\n throw new runtime.RequiredError(\n 'machineId',\n 'Required parameter \"machineId\" was null or undefined when calling updateMachinePublic().'\n );\n }\n\n if (requestParameters['updateMachinePublicRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateMachinePublicRequest',\n 'Required parameter \"updateMachinePublicRequest\" was null or undefined when calling updateMachinePublic().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machine/{machine_id}/public`.replace(`{${\"machine_id\"}}`, encodeURIComponent(String(requestParameters['machineId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateMachinePublicRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Updates the public visibility status of a machine. When a machine is public, its data can be accessed without authentication through public endpoints. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required **Side effects** - Updates `is_public` flag on the machine \n * Update machine public visibility\n */\n async updateMachinePublic(requestParameters: MachineApiUpdateMachinePublicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateMachinePublicResponse> {\n const response = await this.updateMachinePublicRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n AddBleMachineError,\n AddBleMachineRequest,\n AddBleMachineResponse,\n AddMachineRequest,\n AddMachineResponse,\n ErrorResponse,\n ForbiddenPermissionOrOwnerOnly,\n ForbiddenPermissionsError,\n ListMachinesResponse,\n SimpleMachine,\n UnauthorizedError,\n UnregisterObnizRequest,\n} from '../models/index';\n\nexport interface MachinesApiAddBleMachineOperationRequest {\n addBleMachineRequest: AddBleMachineRequest;\n}\n\nexport interface MachinesApiAddMachineOperationRequest {\n addMachineRequest: AddMachineRequest;\n}\n\nexport interface MachinesApiGetAvailableMachinesForModelRequest {\n modelName: string;\n modelVersion: string;\n}\n\nexport interface MachinesApiListMachinesRequest {\n limit?: number;\n offset?: number;\n searchFilter?: ListMachinesSearchFilterEnum;\n searchWord?: string;\n states?: string;\n}\n\nexport interface MachinesApiUnregisterObnizOperationRequest {\n unregisterObnizRequest: UnregisterObnizRequest;\n}\n\n/**\n * \n */\nexport class MachinesApi extends runtime.BaseAPI {\n\n /**\n * Creates a new machine for a Bluetooth Low Energy (BLE) device. This operation performs the following steps: - Creates a new machine within the account - Optionally installs a controller based on the specified `parts` value - Assigns the machine to one or more groups - Creates a BLE converter linking the device address to the machine **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required **Notes** - If the specified `parts` value does not have a corresponding controller, the machine is created without installing a controller - The BLE address must be unique within the account \n * Add a BLE device as a machine\n */\n async addBleMachineRaw(requestParameters: MachinesApiAddBleMachineOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddBleMachineResponse>> {\n if (requestParameters['addBleMachineRequest'] == null) {\n throw new runtime.RequiredError(\n 'addBleMachineRequest',\n 'Required parameter \"addBleMachineRequest\" was null or undefined when calling addBleMachine().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machines/add/ble`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['addBleMachineRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates a new machine for a Bluetooth Low Energy (BLE) device. This operation performs the following steps: - Creates a new machine within the account - Optionally installs a controller based on the specified `parts` value - Assigns the machine to one or more groups - Creates a BLE converter linking the device address to the machine **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required **Notes** - If the specified `parts` value does not have a corresponding controller, the machine is created without installing a controller - The BLE address must be unique within the account \n * Add a BLE device as a machine\n */\n async addBleMachine(requestParameters: MachinesApiAddBleMachineOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddBleMachineResponse> {\n const response = await this.addBleMachineRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Registers an obniz device and creates a new machine linked to it. Checks device availability, registers it if needed, sets up configuration, and installs the app. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required \n * Add an obniz device as a machine\n */\n async addMachineRaw(requestParameters: MachinesApiAddMachineOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AddMachineResponse>> {\n if (requestParameters['addMachineRequest'] == null) {\n throw new runtime.RequiredError(\n 'addMachineRequest',\n 'Required parameter \"addMachineRequest\" was null or undefined when calling addMachine().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machines/add`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['addMachineRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Registers an obniz device and creates a new machine linked to it. Checks device availability, registers it if needed, sets up configuration, and installs the app. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required \n * Add an obniz device as a machine\n */\n async addMachine(requestParameters: MachinesApiAddMachineOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AddMachineResponse> {\n const response = await this.addMachineRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves all machines in the account that don\\'t have a specified model/version installed. Used to find machines where a model can be added. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required \n * Get machines without a specific model\n */\n async getAvailableMachinesForModelRaw(requestParameters: MachinesApiGetAvailableMachinesForModelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<SimpleMachine>>> {\n if (requestParameters['modelName'] == null) {\n throw new runtime.RequiredError(\n 'modelName',\n 'Required parameter \"modelName\" was null or undefined when calling getAvailableMachinesForModel().'\n );\n }\n\n if (requestParameters['modelVersion'] == null) {\n throw new runtime.RequiredError(\n 'modelVersion',\n 'Required parameter \"modelVersion\" was null or undefined when calling getAvailableMachinesForModel().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['modelName'] != null) {\n queryParameters['model_name'] = requestParameters['modelName'];\n }\n\n if (requestParameters['modelVersion'] != null) {\n queryParameters['model_version'] = requestParameters['modelVersion'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machines/available-for-model`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves all machines in the account that don\\'t have a specified model/version installed. Used to find machines where a model can be added. **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required \n * Get machines without a specific model\n */\n async getAvailableMachinesForModel(requestParameters: MachinesApiGetAvailableMachinesForModelRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<SimpleMachine>> {\n const response = await this.getAvailableMachinesForModelRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves machines within the account with optional filtering by name, obniz ID, group, or state conditions **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required \n * Get machines list\n */\n async listMachinesRaw(requestParameters: MachinesApiListMachinesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListMachinesResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['searchFilter'] != null) {\n queryParameters['search_filter'] = requestParameters['searchFilter'];\n }\n\n if (requestParameters['searchWord'] != null) {\n queryParameters['search_word'] = requestParameters['searchWord'];\n }\n\n if (requestParameters['states'] != null) {\n queryParameters['states'] = requestParameters['states'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machines`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves machines within the account with optional filtering by name, obniz ID, group, or state conditions **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:read` permission is required \n * Get machines list\n */\n async listMachines(requestParameters: MachinesApiListMachinesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListMachinesResponse> {\n const response = await this.listMachinesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Removes the association between machines and an obniz device by setting connected_obniz_id to null for all machines linked to the specified obniz ID **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required \n * Unregister obniz device from machines\n */\n async unregisterObnizRaw(requestParameters: MachinesApiUnregisterObnizOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {\n if (requestParameters['unregisterObnizRequest'] == null) {\n throw new runtime.RequiredError(\n 'unregisterObnizRequest',\n 'Required parameter \"unregisterObnizRequest\" was null or undefined when calling unregisterObniz().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/machines/unregist/obniz`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['unregisterObnizRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Removes the association between machines and an obniz device by setting connected_obniz_id to null for all machines linked to the specified obniz ID **Authorization** - API token is required in the `Authorization` header **Permissions** - `machines:write` permission is required \n * Unregister obniz device from machines\n */\n async unregisterObniz(requestParameters: MachinesApiUnregisterObnizOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {\n const response = await this.unregisterObnizRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListMachinesSearchFilterEnum = {\n MachineName: 'machine_name',\n ObnizId: 'obniz_id',\n GroupName: 'group_name'\n} as const;\nexport type ListMachinesSearchFilterEnum = typeof ListMachinesSearchFilterEnum[keyof typeof ListMachinesSearchFilterEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n CreateNotificationRequest,\n CreateNotificationResponse,\n ErrorResponse,\n ForbiddenPermissionsError,\n ListNotificationsResponse,\n TestNotificationResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface NotificationsApiCreateNotificationOperationRequest {\n createNotificationRequest: CreateNotificationRequest;\n}\n\nexport interface NotificationsApiDeleteNotificationRequest {\n id: string;\n}\n\nexport interface NotificationsApiListNotificationsRequest {\n limit?: number;\n offset?: number;\n groupId?: string;\n}\n\nexport interface NotificationsApiTestNotificationRequest {\n id: string;\n}\n\n/**\n * \n */\nexport class NotificationsApi extends runtime.BaseAPI {\n\n /**\n * Creates a new notification destination with validation for email addresses (checks format and duplicates) **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:write` permission is required \n * Create a notification destination\n */\n async createNotificationRaw(requestParameters: NotificationsApiCreateNotificationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateNotificationResponse>> {\n if (requestParameters['createNotificationRequest'] == null) {\n throw new runtime.RequiredError(\n 'createNotificationRequest',\n 'Required parameter \"createNotificationRequest\" was null or undefined when calling createNotification().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/notifications`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['createNotificationRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates a new notification destination with validation for email addresses (checks format and duplicates) **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:write` permission is required \n * Create a notification destination\n */\n async createNotification(requestParameters: NotificationsApiCreateNotificationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateNotificationResponse> {\n const response = await this.createNotificationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Permanently removes a notification destination from the account **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:delete` permission is required \n * Delete a notification destination\n */\n async deleteNotificationRaw(requestParameters: NotificationsApiDeleteNotificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling deleteNotification().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/notifications/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Permanently removes a notification destination from the account **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:delete` permission is required \n * Delete a notification destination\n */\n async deleteNotification(requestParameters: NotificationsApiDeleteNotificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n await this.deleteNotificationRaw(requestParameters, initOverrides);\n }\n\n /**\n * Retrieves notification destinations within the account with pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:read` permission is required \n * Get notifications list\n */\n async listNotificationsRaw(requestParameters: NotificationsApiListNotificationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListNotificationsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/notifications`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves notification destinations within the account with pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:read` permission is required \n * Get notifications list\n */\n async listNotifications(requestParameters: NotificationsApiListNotificationsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListNotificationsResponse> {\n const response = await this.listNotificationsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Sends a test notification to verify the configuration is working correctly **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:write` permission is required \n * Test a notification destination\n */\n async testNotificationRaw(requestParameters: NotificationsApiTestNotificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TestNotificationResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling testNotification().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/notifications/{id}/test`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Sends a test notification to verify the configuration is working correctly **Authorization** - API token is required in the `Authorization` header **Permissions** - `notifications:write` permission is required \n * Test a notification destination\n */\n async testNotification(requestParameters: NotificationsApiTestNotificationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TestNotificationResponse> {\n const response = await this.testNotificationRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n CSVExportStatusResponse,\n CreateCSVExportRequest,\n CreateCSVExportResponse,\n ErrorResponse,\n ForbiddenPermissionsError,\n ListCSVExportsResponse,\n ListReportsResponse,\n UnauthorizedError,\n} from '../models/index';\n\nexport interface ReportsApiCreateCSVExportOperationRequest {\n createCSVExportRequest: CreateCSVExportRequest;\n}\n\nexport interface ReportsApiGetCSVExportStatusRequest {\n exportId: string;\n}\n\nexport interface ReportsApiListCSVExportsRequest {\n limit?: number;\n offset?: number;\n groupId?: string;\n status?: ListCSVExportsStatusEnum;\n}\n\nexport interface ReportsApiListReportsRequest {\n limit?: number;\n offset?: number;\n groupId?: string;\n}\n\n/**\n * \n */\nexport class ReportsApi extends runtime.BaseAPI {\n\n /**\n * Creates a new CSV export job for the specified units and properties. **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:write` permission is required **Plan Limitations** - Subject to plan limits for report generation - Maximum concurrent CSV exports applies **Validation** - units array must not be empty - properties array must not be empty - start_date and end_date are required - Each unit must have unit_id and label - Each property must have a key \n * Create CSV export\n */\n async createCSVExportRaw(requestParameters: ReportsApiCreateCSVExportOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateCSVExportResponse>> {\n if (requestParameters['createCSVExportRequest'] == null) {\n throw new runtime.RequiredError(\n 'createCSVExportRequest',\n 'Required parameter \"createCSVExportRequest\" was null or undefined when calling createCSVExport().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/reports/csv`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['createCSVExportRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Creates a new CSV export job for the specified units and properties. **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:write` permission is required **Plan Limitations** - Subject to plan limits for report generation - Maximum concurrent CSV exports applies **Validation** - units array must not be empty - properties array must not be empty - start_date and end_date are required - Each unit must have unit_id and label - Each property must have a key \n * Create CSV export\n */\n async createCSVExport(requestParameters: ReportsApiCreateCSVExportOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateCSVExportResponse> {\n const response = await this.createCSVExportRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves the status and details of a specific CSV export job. - User must own the export (account_id must match) **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required **Export Status** - pending: Export queued but not started - processing: Export in progress - completed: Export finished, file available for download - failed: Export failed \n * Get CSV export status\n */\n async getCSVExportStatusRaw(requestParameters: ReportsApiGetCSVExportStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CSVExportStatusResponse>> {\n if (requestParameters['exportId'] == null) {\n throw new runtime.RequiredError(\n 'exportId',\n 'Required parameter \"exportId\" was null or undefined when calling getCSVExportStatus().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/reports/csv/{exportId}`.replace(`{${\"exportId\"}}`, encodeURIComponent(String(requestParameters['exportId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves the status and details of a specific CSV export job. - User must own the export (account_id must match) **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required **Export Status** - pending: Export queued but not started - processing: Export in progress - completed: Export finished, file available for download - failed: Export failed \n * Get CSV export status\n */\n async getCSVExportStatus(requestParameters: ReportsApiGetCSVExportStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CSVExportStatusResponse> {\n const response = await this.getCSVExportStatusRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Returns a paginated list of CSV export jobs for the account. **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required **Filtering** - Filter by group_id (optional) - Filter by status (optional) \n * List CSV exports\n */\n async listCSVExportsRaw(requestParameters: ReportsApiListCSVExportsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListCSVExportsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n if (requestParameters['status'] != null) {\n queryParameters['status'] = requestParameters['status'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/reports/csv`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Returns a paginated list of CSV export jobs for the account. **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required **Filtering** - Filter by group_id (optional) - Filter by status (optional) \n * List CSV exports\n */\n async listCSVExports(requestParameters: ReportsApiListCSVExportsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListCSVExportsResponse> {\n const response = await this.listCSVExportsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves export reports associated with the account and group with pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required \n * Get reports list\n */\n async listReportsRaw(requestParameters: ReportsApiListReportsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListReportsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/reports`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves export reports associated with the account and group with pagination **Authorization** - API token is required in the `Authorization` header **Permissions** - `reports:read` permission is required \n * Get reports list\n */\n async listReports(requestParameters: ReportsApiListReportsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListReportsResponse> {\n const response = await this.listReportsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const ListCSVExportsStatusEnum = {\n Pending: 'pending',\n Processing: 'processing',\n Completed: 'completed',\n Failed: 'failed'\n} as const;\nexport type ListCSVExportsStatusEnum = typeof ListCSVExportsStatusEnum[keyof typeof ListCSVExportsStatusEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n CreateThread400Response,\n CreateThreadPostResponse,\n CreateThreadRequest,\n CreateThreadResponse,\n ErrorResponse,\n ForbiddenPermissionsError,\n GetThreadEntitiesResponse,\n GetThreadResponse,\n ListThreadPostsResponse,\n ListThreadsResponse,\n UnauthorizedError,\n UpdateThreadPostRequest,\n UpdateThreadPostResponse,\n UpdateThreadRequest,\n UpdateThreadResponse,\n ValidationError,\n} from '../models/index';\n\nexport interface ThreadsApiCreateThreadOperationRequest {\n createThreadRequest: CreateThreadRequest;\n}\n\nexport interface ThreadsApiCreateThreadPostRequest {\n id: string;\n content: string;\n entities?: string;\n files?: Array<Blob>;\n}\n\nexport interface ThreadsApiDownloadThreadFileRequest {\n threadId: string;\n fileName: string;\n}\n\nexport interface ThreadsApiGetThreadByIdRequest {\n id: string;\n groupId?: string;\n}\n\nexport interface ThreadsApiGetThreadEntitiesRequest {\n id: string;\n entityType?: GetThreadEntitiesEntityTypeEnum;\n}\n\nexport interface ThreadsApiListThreadPostsRequest {\n id: string;\n}\n\nexport interface ThreadsApiListThreadsRequest {\n limit?: number;\n offset?: number;\n search?: string;\n isOpen?: ListThreadsIsOpenEnum;\n groupId?: string;\n}\n\nexport interface ThreadsApiUpdateThreadOperationRequest {\n id: string;\n updateThreadRequest: UpdateThreadRequest;\n}\n\nexport interface ThreadsApiUpdateThreadPostOperationRequest {\n id: string;\n number: number;\n updateThreadPostRequest: UpdateThreadPostRequest;\n}\n\n/**\n * \n */\nexport class ThreadsApi extends runtime.BaseAPI {\n\n /**\n * Create a new thread (field record). Supports both JSON and multipart/form-data requests. Validation rules: - Title: required, max 255 characters - Content: required, max 1000 characters - Allowed file types: .jpg, .jpeg, .png, .pdf, .csv, .xlsx, .xls - Each entity must have exactly one of: machine_id, issue_id, or event_id **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Create new thread\n */\n async createThreadRaw(requestParameters: ThreadsApiCreateThreadOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateThreadResponse>> {\n if (requestParameters['createThreadRequest'] == null) {\n throw new runtime.RequiredError(\n 'createThreadRequest',\n 'Required parameter \"createThreadRequest\" was null or undefined when calling createThread().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['createThreadRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Create a new thread (field record). Supports both JSON and multipart/form-data requests. Validation rules: - Title: required, max 255 characters - Content: required, max 1000 characters - Allowed file types: .jpg, .jpeg, .png, .pdf, .csv, .xlsx, .xls - Each entity must have exactly one of: machine_id, issue_id, or event_id **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Create new thread\n */\n async createThread(requestParameters: ThreadsApiCreateThreadOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateThreadResponse> {\n const response = await this.createThreadRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Create a new post in a thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Create thread post\n */\n async createThreadPostRaw(requestParameters: ThreadsApiCreateThreadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateThreadPostResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling createThreadPost().'\n );\n }\n\n if (requestParameters['content'] == null) {\n throw new runtime.RequiredError(\n 'content',\n 'Required parameter \"content\" was null or undefined when calling createThreadPost().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const consumes: runtime.Consume[] = [\n { contentType: 'multipart/form-data' },\n ];\n // @ts-ignore: canConsumeForm may be unused\n const canConsumeForm = runtime.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any };\n let useForm = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new URLSearchParams();\n }\n\n if (requestParameters['content'] != null) {\n formParams.append('content', requestParameters['content'] as any);\n }\n\n if (requestParameters['entities'] != null) {\n formParams.append('entities', requestParameters['entities'] as any);\n }\n\n if (requestParameters['files'] != null) {\n requestParameters['files'].forEach((element) => {\n formParams.append('files', element as any);\n })\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}/posts`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: formParams,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Create a new post in a thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Create thread post\n */\n async createThreadPost(requestParameters: ThreadsApiCreateThreadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateThreadPostResponse> {\n const response = await this.createThreadPostRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Download a file attached to a thread post **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Download thread file\n */\n async downloadThreadFileRaw(requestParameters: ThreadsApiDownloadThreadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {\n if (requestParameters['threadId'] == null) {\n throw new runtime.RequiredError(\n 'threadId',\n 'Required parameter \"threadId\" was null or undefined when calling downloadThreadFile().'\n );\n }\n\n if (requestParameters['fileName'] == null) {\n throw new runtime.RequiredError(\n 'fileName',\n 'Required parameter \"fileName\" was null or undefined when calling downloadThreadFile().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{threadId}/files/{fileName}`.replace(`{${\"threadId\"}}`, encodeURIComponent(String(requestParameters['threadId']))).replace(`{${\"fileName\"}}`, encodeURIComponent(String(requestParameters['fileName']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.BlobApiResponse(response);\n }\n\n /**\n * Download a file attached to a thread post **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Download thread file\n */\n async downloadThreadFile(requestParameters: ThreadsApiDownloadThreadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {\n const response = await this.downloadThreadFileRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get a specific thread by ID **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread by ID\n */\n async getThreadByIdRaw(requestParameters: ThreadsApiGetThreadByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetThreadResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getThreadById().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Get a specific thread by ID **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread by ID\n */\n async getThreadById(requestParameters: ThreadsApiGetThreadByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetThreadResponse> {\n const response = await this.getThreadByIdRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get all entities related to a thread (machines, issues, events) **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread entities\n */\n async getThreadEntitiesRaw(requestParameters: ThreadsApiGetThreadEntitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetThreadEntitiesResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling getThreadEntities().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['entityType'] != null) {\n queryParameters['entity_type'] = requestParameters['entityType'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}/entities`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Get all entities related to a thread (machines, issues, events) **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread entities\n */\n async getThreadEntities(requestParameters: ThreadsApiGetThreadEntitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetThreadEntitiesResponse> {\n const response = await this.getThreadEntitiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get posts for a specific thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread posts\n */\n async listThreadPostsRaw(requestParameters: ThreadsApiListThreadPostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListThreadPostsResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling listThreadPosts().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}/posts`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Get posts for a specific thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get thread posts\n */\n async listThreadPosts(requestParameters: ThreadsApiListThreadPostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListThreadPostsResponse> {\n const response = await this.listThreadPostsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get threads (field records) associated with the account and group **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get threads list\n */\n async listThreadsRaw(requestParameters: ThreadsApiListThreadsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ListThreadsResponse>> {\n const queryParameters: any = {};\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['search'] != null) {\n queryParameters['search'] = requestParameters['search'];\n }\n\n if (requestParameters['isOpen'] != null) {\n queryParameters['is_open'] = requestParameters['isOpen'];\n }\n\n if (requestParameters['groupId'] != null) {\n queryParameters['group_id'] = requestParameters['groupId'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Get threads (field records) associated with the account and group **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:read` permission is required \n * Get threads list\n */\n async listThreads(requestParameters: ThreadsApiListThreadsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ListThreadsResponse> {\n const response = await this.listThreadsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Update thread (change status) **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Update thread status\n */\n async updateThreadRaw(requestParameters: ThreadsApiUpdateThreadOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateThreadResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling updateThread().'\n );\n }\n\n if (requestParameters['updateThreadRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateThreadRequest',\n 'Required parameter \"updateThreadRequest\" was null or undefined when calling updateThread().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateThreadRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Update thread (change status) **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Update thread status\n */\n async updateThread(requestParameters: ThreadsApiUpdateThreadOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateThreadResponse> {\n const response = await this.updateThreadRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Update a specific post in a thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Update thread post\n */\n async updateThreadPostRaw(requestParameters: ThreadsApiUpdateThreadPostOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpdateThreadPostResponse>> {\n if (requestParameters['id'] == null) {\n throw new runtime.RequiredError(\n 'id',\n 'Required parameter \"id\" was null or undefined when calling updateThreadPost().'\n );\n }\n\n if (requestParameters['number'] == null) {\n throw new runtime.RequiredError(\n 'number',\n 'Required parameter \"number\" was null or undefined when calling updateThreadPost().'\n );\n }\n\n if (requestParameters['updateThreadPostRequest'] == null) {\n throw new runtime.RequiredError(\n 'updateThreadPostRequest',\n 'Required parameter \"updateThreadPostRequest\" was null or undefined when calling updateThreadPost().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/threads/{id}/posts/{number}`.replace(`{${\"id\"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${\"number\"}}`, encodeURIComponent(String(requestParameters['number']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['updateThreadPostRequest'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Update a specific post in a thread **Authorization** - API token is required in the `Authorization` header **Permissions** - `threads:write` permission is required \n * Update thread post\n */\n async updateThreadPost(requestParameters: ThreadsApiUpdateThreadPostOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpdateThreadPostResponse> {\n const response = await this.updateThreadPostRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const GetThreadEntitiesEntityTypeEnum = {\n Machine: 'machine',\n Issue: 'issue',\n Event: 'event'\n} as const;\nexport type GetThreadEntitiesEntityTypeEnum = typeof GetThreadEntitiesEntityTypeEnum[keyof typeof GetThreadEntitiesEntityTypeEnum];\n/**\n * @export\n */\nexport const ListThreadsIsOpenEnum = {\n True: 'true',\n False: 'false'\n} as const;\nexport type ListThreadsIsOpenEnum = typeof ListThreadsIsOpenEnum[keyof typeof ListThreadsIsOpenEnum];\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * API EN\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \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\nimport * as runtime from '../runtime';\nimport type {\n ErrorResponse,\n ForbiddenPermissionsError,\n StateHistoryResponse,\n UnauthorizedError,\n UnitHistoryItem,\n UnitLoadResponse,\n UploadAssetResponse,\n} from '../models/index';\n\nexport interface UnitsApiDeleteUnitStateRequest {\n unitId: string;\n key: string;\n}\n\nexport interface UnitsApiDownloadAssetRequest {\n unitId: string;\n assetId: string;\n contentType?: DownloadAssetContentTypeEnum;\n}\n\nexport interface UnitsApiGetUnitHistoryRequest {\n unitId: string;\n start?: string;\n end?: string;\n ratio?: number;\n}\n\nexport interface UnitsApiGetUnitStateHistoryRequest {\n unitId: string;\n keys: string;\n start?: string;\n end?: string;\n offset?: number;\n limit?: number;\n}\n\nexport interface UnitsApiGetUnitStatesRequest {\n unitId: string;\n}\n\nexport interface UnitsApiLoadUnitDataRequest {\n unitId: string;\n start?: string;\n end?: string;\n ratio?: number;\n}\n\nexport interface UnitsApiUpdateUnitStatesRequest {\n unitId: string;\n requestBody: { [key: string]: string; };\n}\n\nexport interface UnitsApiUploadAssetRequest {\n unitId: string;\n file?: Blob;\n}\n\n/**\n * \n */\nexport class UnitsApi extends runtime.BaseAPI {\n\n /**\n * Permanently removes a specific state and its history for a unit **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:delete` permission is required \n * Delete a unit state by key\n */\n async deleteUnitStateRaw(requestParameters: UnitsApiDeleteUnitStateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling deleteUnitState().'\n );\n }\n\n if (requestParameters['key'] == null) {\n throw new runtime.RequiredError(\n 'key',\n 'Required parameter \"key\" was null or undefined when calling deleteUnitState().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/states/{key}`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))).replace(`{${\"key\"}}`, encodeURIComponent(String(requestParameters['key']))),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Permanently removes a specific state and its history for a unit **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:delete` permission is required \n * Delete a unit state by key\n */\n async deleteUnitState(requestParameters: UnitsApiDeleteUnitStateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {\n const response = await this.deleteUnitStateRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Downloads a file asset from S3 storage. Optional contentType query parameter to retrieve JSON content inline. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Download an asset file\n */\n async downloadAssetRaw(requestParameters: UnitsApiDownloadAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling downloadAsset().'\n );\n }\n\n if (requestParameters['assetId'] == null) {\n throw new runtime.RequiredError(\n 'assetId',\n 'Required parameter \"assetId\" was null or undefined when calling downloadAsset().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['contentType'] != null) {\n queryParameters['contentType'] = requestParameters['contentType'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/assets/{asset_id}`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))).replace(`{${\"asset_id\"}}`, encodeURIComponent(String(requestParameters['assetId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.BlobApiResponse(response);\n }\n\n /**\n * Downloads a file asset from S3 storage. Optional contentType query parameter to retrieve JSON content inline. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Download an asset file\n */\n async downloadAsset(requestParameters: UnitsApiDownloadAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {\n const response = await this.downloadAssetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves historical data for a specific unit within a specified time period with optional data sampling **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Get unit history data\n */\n async getUnitHistoryRaw(requestParameters: UnitsApiGetUnitHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<UnitHistoryItem>>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling getUnitHistory().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['start'] != null) {\n queryParameters['start'] = requestParameters['start'];\n }\n\n if (requestParameters['end'] != null) {\n queryParameters['end'] = requestParameters['end'];\n }\n\n if (requestParameters['ratio'] != null) {\n queryParameters['ratio'] = requestParameters['ratio'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/history`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves historical data for a specific unit within a specified time period with optional data sampling **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Get unit history data\n */\n async getUnitHistory(requestParameters: UnitsApiGetUnitHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<UnitHistoryItem>> {\n const response = await this.getUnitHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves historical state data for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required **Query Parameters** - `keys` is required (comma-separated or array) - `start` and `end` define the time range (ISO8601 format) - `offset` and `limit` control pagination \n * Get unit state history\n */\n async getUnitStateHistoryRaw(requestParameters: UnitsApiGetUnitStateHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StateHistoryResponse>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling getUnitStateHistory().'\n );\n }\n\n if (requestParameters['keys'] == null) {\n throw new runtime.RequiredError(\n 'keys',\n 'Required parameter \"keys\" was null or undefined when calling getUnitStateHistory().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['keys'] != null) {\n queryParameters['keys'] = requestParameters['keys'];\n }\n\n if (requestParameters['start'] != null) {\n queryParameters['start'] = requestParameters['start'];\n }\n\n if (requestParameters['end'] != null) {\n queryParameters['end'] = requestParameters['end'];\n }\n\n if (requestParameters['offset'] != null) {\n queryParameters['offset'] = requestParameters['offset'];\n }\n\n if (requestParameters['limit'] != null) {\n queryParameters['limit'] = requestParameters['limit'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/states/history`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves historical state data for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required **Query Parameters** - `keys` is required (comma-separated or array) - `start` and `end` define the time range (ISO8601 format) - `offset` and `limit` control pagination \n * Get unit state history\n */\n async getUnitStateHistory(requestParameters: UnitsApiGetUnitStateHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StateHistoryResponse> {\n const response = await this.getUnitStateHistoryRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves all state key-value pairs for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Get unit states\n */\n async getUnitStatesRaw(requestParameters: UnitsApiGetUnitStatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: string; }>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling getUnitStates().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/states`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Retrieves all state key-value pairs for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Get unit states\n */\n async getUnitStates(requestParameters: UnitsApiGetUnitStatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: string; }> {\n const response = await this.getUnitStatesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Retrieves historical data from Cassandra with double-parsed JSON data format and summary statistics (count, tail_date) **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Load unit data with parsed format\n */\n async loadUnitDataRaw(requestParameters: UnitsApiLoadUnitDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UnitLoadResponse>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling loadUnitData().'\n );\n }\n\n const queryParameters: any = {};\n\n if (requestParameters['start'] != null) {\n queryParameters['start'] = requestParameters['start'];\n }\n\n if (requestParameters['end'] != null) {\n queryParameters['end'] = requestParameters['end'];\n }\n\n if (requestParameters['ratio'] != null) {\n queryParameters['ratio'] = requestParameters['ratio'];\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/load`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Retrieves historical data from Cassandra with double-parsed JSON data format and summary statistics (count, tail_date) **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:read` permission is required \n * Load unit data with parsed format\n */\n async loadUnitData(requestParameters: UnitsApiLoadUnitDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UnitLoadResponse> {\n const response = await this.loadUnitDataRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Inserts or updates state key-value pairs for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:write` permission is required **Note** - Multiple key-value pairs can be updated in a single request - Each state change is recorded with a timestamp in history \n * Update unit states\n */\n async updateUnitStatesRaw(requestParameters: UnitsApiUpdateUnitStatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling updateUnitStates().'\n );\n }\n\n if (requestParameters['requestBody'] == null) {\n throw new runtime.RequiredError(\n 'requestBody',\n 'Required parameter \"requestBody\" was null or undefined when calling updateUnitStates().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/states`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['requestBody'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Inserts or updates state key-value pairs for a specific unit. **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:write` permission is required **Note** - Multiple key-value pairs can be updated in a single request - Each state change is recorded with a timestamp in history \n * Update unit states\n */\n async updateUnitStates(requestParameters: UnitsApiUpdateUnitStatesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {\n const response = await this.updateUnitStatesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Uploads a file asset to S3 storage for a specific unit. Supports two methods: 1. multipart/form-data: For file uploads 2. application/json: For direct JSON content with {filename, content} **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:write` permission is required \n * Upload an asset file\n */\n async uploadAssetRaw(requestParameters: UnitsApiUploadAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UploadAssetResponse>> {\n if (requestParameters['unitId'] == null) {\n throw new runtime.RequiredError(\n 'unitId',\n 'Required parameter \"unitId\" was null or undefined when calling uploadAsset().'\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n if (this.configuration && this.configuration.apiKey) {\n headerParameters[\"Authorization\"] = await this.configuration.apiKey(\"Authorization\"); // ApiToken authentication\n }\n\n const consumes: runtime.Consume[] = [\n { contentType: 'multipart/form-data' },\n { contentType: 'application/json' },\n ];\n // @ts-ignore: canConsumeForm may be unused\n const canConsumeForm = runtime.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any };\n let useForm = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new URLSearchParams();\n }\n\n if (requestParameters['file'] != null) {\n formParams.append('file', requestParameters['file'] as any);\n }\n\n const response = await this.request({\n path: `/api/1/units/{unit_id}/assets`.replace(`{${\"unit_id\"}}`, encodeURIComponent(String(requestParameters['unitId']))),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: formParams,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response);\n }\n\n /**\n * Uploads a file asset to S3 storage for a specific unit. Supports two methods: 1. multipart/form-data: For file uploads 2. application/json: For direct JSON content with {filename, content} **Authorization** - API token is required in the `Authorization` header **Permissions** - `units:write` permission is required \n * Upload an asset file\n */\n async uploadAsset(requestParameters: UnitsApiUploadAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UploadAssetResponse> {\n const response = await this.uploadAssetRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n\n/**\n * @export\n */\nexport const DownloadAssetContentTypeEnum = {\n Json: 'json'\n} as const;\nexport type DownloadAssetContentTypeEnum = typeof DownloadAssetContentTypeEnum[keyof typeof DownloadAssetContentTypeEnum];\n","import { ResponseError } from \"./sdk-core/runtime\";\n\n/**\n * Enhanced API error with automatically parsed response data\n * \n * All API methods automatically convert ResponseError to ObnizApiError,\n * so you get parsed error information without manual handling.\n * \n * @example\n * ```typescript\n * try {\n * await client.machines.getMachine({ id: 'invalid-id' });\n * } catch (error) {\n * if (error instanceof ObnizApiError) {\n * console.error(`API Error [${error.status}]: ${error.message}`);\n * console.error('Error data:', error.data);\n * }\n * }\n * ```\n */\nexport class ObnizNowApiError extends Error {\n /** HTTP status code (e.g., 404, 500) */\n public readonly status: number;\n \n /** HTTP status text (e.g., \"Not Found\", \"Internal Server Error\") */\n public readonly statusText: string;\n \n /** Parsed response body data */\n public readonly data: any;\n \n /** Original ResponseError for advanced use cases */\n public readonly originalError!: ResponseError;\n\n constructor(responseError: ResponseError, status: number, statusText: string, data: any) {\n const message = data?.error || data?.message || statusText || `HTTP ${status}`;\n super(message);\n \n this.name = \"ObnizApiError\";\n this.status = status;\n this.statusText = statusText;\n this.data = data;\n \n // Store originalError as non-enumerable property to keep it out of console.log\n // but still accessible for advanced use cases\n Object.defineProperty(this, 'originalError', {\n value: responseError,\n writable: false,\n enumerable: false, // Не будет засирать console.log!\n configurable: false\n });\n \n // Maintain proper stack trace (ES2015+)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ObnizNowApiError);\n }\n }\n\n /**\n * Create ObnizApiError from ResponseError by parsing the response\n */\n static async fromResponseError(error: ResponseError): Promise<ObnizNowApiError> {\n const status = error.response.status;\n const statusText = error.response.statusText;\n \n let data: any;\n try {\n // Try to parse as JSON\n const text = await error.response.text();\n data = JSON.parse(text);\n } catch {\n // If not JSON, wrap as error object\n try {\n data = { error: await error.response.text() };\n } catch {\n data = { error: statusText };\n }\n }\n \n return new ObnizNowApiError(error, status, statusText, data);\n }\n \n /**\n * Get response headers (useful for rate limiting, caching, etc.)\n * \n * @example\n * ```typescript\n * const rateLimit = error.getResponseHeaders().get('x-ratelimit-remaining');\n * ```\n */\n getResponseHeaders(): Headers {\n return this.originalError.response.headers;\n }\n \n /**\n * Get full request URL\n */\n getRequestUrl(): string {\n return this.originalError.response.url;\n }\n \n /**\n * Control JSON serialization - don't include originalError\n */\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n statusText: this.statusText,\n data: this.data,\n stack: this.stack,\n };\n }\n}\n\n/**\n * Wraps an API object to automatically convert ResponseError to ObnizApiError\n */\nexport function wrapApiWithErrorHandling<T extends object>(api: T): T {\n return new Proxy(api, {\n get(target, prop) {\n const original = target[prop as keyof T];\n \n // Only wrap functions\n if (typeof original !== 'function') {\n return original;\n }\n \n // Return wrapped function that auto-converts errors\n return async function(this: any, ...args: any[]) {\n try {\n return await original.apply(this, args);\n } catch (error) {\n // Convert ResponseError to ObnizApiError\n if (error instanceof ResponseError) {\n throw await ObnizNowApiError.fromResponseError(error);\n }\n // Re-throw other errors as-is\n throw error;\n }\n };\n }\n });\n}\n","import {\n Configuration,\n AnalyticsApi,\n ConnectionModelsApi,\n ConnectionsApi,\n EventsApi,\n GroupsApi,\n InboundConnectionsApi,\n InboundSourcesApi,\n IntegrationsApi,\n IntelligencesApi,\n IssuesApi,\n MachineApi,\n MachinesApi,\n NotificationsApi,\n ReportsApi,\n ThreadsApi,\n UnitsApi,\n} from \"./sdk-core\";\nimport { wrapApiWithErrorHandling } from \"./ObnizNowApiError\";\n\n// Internal use only\nexport interface CookieAuthOptions {\n token: string;\n accountId: string;\n}\n\ntype BaseOptions = {\n baseUrl?: string;\n fetch?: typeof fetch;\n};\n\ntype WithoutCookies = {\n token: string;\n cookies?: never;\n};\n\ntype WithCookies = {\n cookies: CookieAuthOptions;\n token?: never;\n};\n\nexport type ObnizNowTokenOptions = BaseOptions & WithoutCookies;\nexport type ObnizNowCookiesOptions = BaseOptions & WithCookies;\n\nexport type ObnizNowOptions = \n | (BaseOptions & WithoutCookies)\n | (BaseOptions & WithCookies);\n\n/**\n * ObnizNow SDK main class\n * \n * Provides access to all Obniz Now API endpoints.\n * \n * @example\n * ```typescript\n * import { ObnizNow } from '@obniz/sdk';\n * \n * // Initialize with your API token\n * const client = new ObnizNow({ \n * token: 'your-api-token' \n * });\n * \n * // List machines\n * const machines = await client.machines.listMachines({ limit: 10 });\n * \n * // Get analytics results\n * const analytics = await client.analytics.getAnalyticsResults(\n * 'basic_statistics',\n * 'machine-123'\n * );\n * ```\n * \n * @example\n * ```typescript\n * // Custom base URL for local development\n * const devClient = new ObnizNow({ \n * token: 'your-token',\n * baseUrl: 'http://localhost:8080'\n * });\n * ```\n */\nexport class ObnizNow {\n /** Analytics API - Execute and retrieve analytics results */\n public readonly analytics: AnalyticsApi;\n \n /** Connection Models API - Manage connection model configurations */\n public readonly connectionModels: ConnectionModelsApi;\n \n /** Connections API - Manage machine connections */\n public readonly connections: ConnectionsApi;\n \n /** Events API - Access event data and history */\n public readonly events: EventsApi;\n \n /** Groups API - Organize machines into groups */\n public readonly groups: GroupsApi;\n \n /** Inbound Connections API - Manage inbound data connections */\n public readonly inboundConnections: InboundConnectionsApi;\n \n /** Inbound Sources API - Configure data sources */\n public readonly inboundSources: InboundSourcesApi;\n \n /** Integrations API - Manage third-party integrations */\n public readonly integrations: IntegrationsApi;\n \n /** Intelligences API - AI and intelligence features */\n public readonly intelligences: IntelligencesApi;\n \n /** Issues API - Track and manage issues */\n public readonly issues: IssuesApi;\n \n /** Machine API - Single machine operations */\n public readonly machine: MachineApi;\n \n /** Machines API - Machine management and operations */\n public readonly machines: MachinesApi;\n \n /** Notifications API - Manage notification settings */\n public readonly notifications: NotificationsApi;\n \n /** Reports API - Generate and retrieve reports */\n public readonly reports: ReportsApi;\n \n /** Threads API - Discussion threads and communications */\n public readonly threads: ThreadsApi;\n \n /** Units API - Unit data and state management */\n public readonly units: UnitsApi;\n\n /**\n * Creates a new ObnizNow SDK client instance\n * \n * @param options - Configuration options\n * @param options.token - API authentication token (required)\n * @param options.baseUrl - Base URL for API requests (optional, defaults to 'https://api.obniz.com')\n * @param options.fetch - Custom fetch implementation (optional, for Node.js < 18 or custom scenarios)\n * \n * @throws {Error} When token is not provided\n * \n * @example\n * ```typescript\n * const client = new ObnizNow({ token: 'your-api-token' });\n * ```\n */\n constructor(options: ObnizNowOptions) {\n const token = (options as ObnizNowTokenOptions).token;\n const cookies = (options as ObnizNowCookiesOptions).cookies;\n const baseUrl = options.baseUrl ?? \"https://api.obniz.com\";\n const fetchApi = options.fetch || (typeof fetch !== \"undefined\" ? fetch : undefined);\n\n if (!token && !cookies) {\n throw new Error(\"Either 'token' or 'cookies' must be provided\");\n }\n\n if (token && cookies) {\n throw new Error(\"Only one of 'token' or 'cookies' can be provided, not both\");\n }\n\n let customFetch: typeof fetch | undefined;\n if (cookies) {\n customFetch = async (url: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const finalInit = {\n ...init,\n credentials: \"include\" as RequestCredentials,\n headers: {\n ...init?.headers,\n Cookie: `token=${cookies.token}; account_id=${cookies.accountId}`,\n },\n };\n return (fetchApi || fetch)(url, finalInit);\n };\n }\n\n const config = new Configuration({\n basePath: baseUrl,\n apiKey: token ? `Bearer ${token}` : undefined,\n fetchApi: customFetch || fetchApi,\n credentials: cookies ? \"include\" : undefined,\n });\n\n // Wrap all APIs with automatic error handling\n this.analytics = wrapApiWithErrorHandling(new AnalyticsApi(config));\n this.connectionModels = wrapApiWithErrorHandling(new ConnectionModelsApi(config));\n this.connections = wrapApiWithErrorHandling(new ConnectionsApi(config));\n this.events = wrapApiWithErrorHandling(new EventsApi(config));\n this.groups = wrapApiWithErrorHandling(new GroupsApi(config));\n this.inboundConnections = wrapApiWithErrorHandling(new InboundConnectionsApi(config));\n this.inboundSources = wrapApiWithErrorHandling(new InboundSourcesApi(config));\n this.integrations = wrapApiWithErrorHandling(new IntegrationsApi(config));\n this.intelligences = wrapApiWithErrorHandling(new IntelligencesApi(config));\n this.issues = wrapApiWithErrorHandling(new IssuesApi(config));\n this.machine = wrapApiWithErrorHandling(new MachineApi(config));\n this.machines = wrapApiWithErrorHandling(new MachinesApi(config));\n this.notifications = wrapApiWithErrorHandling(new NotificationsApi(config));\n this.reports = wrapApiWithErrorHandling(new ReportsApi(config));\n this.threads = wrapApiWithErrorHandling(new ThreadsApi(config));\n this.units = wrapApiWithErrorHandling(new UnitsApi(config));\n }\n}\n"],"names":["runtime.BaseAPI","runtime.RequiredError","runtime.JSONApiResponse","runtime.VoidApiResponse","runtime.COLLECTION_FORMATS","canConsumeForm","runtime.canConsumeForm","runtime.BlobApiResponse"],"mappings":"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"}
|