@deviceinsight/ng-ui-api-client 10.43.0 → 10.45.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/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/types/adx.d.ts +2 -1
- package/dist/types/adx.d.ts.map +1 -1
- package/package.json +17 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/axios.ts","../src/aggregation.ts","../src/pagination.ts","../src/assetGroup.ts","../src/asset.ts","../src/authorities.ts","../src/assetDefinition.ts","../src/assetGroupHierarchies.ts","../src/assetGroupDefinition.ts","../src/blobox.ts","../src/configuration.ts","../src/datapoint.ts","../src/adxData.ts","../src/dataProcessingDefinition.ts","../src/kpi.ts","../src/event.ts","../src/locale.ts","../src/grantedAccess.ts","../src/namedquery.ts","../src/oauth.ts","../src/property.ts","../src/role.ts","../src/ruleDefinition.ts","../src/notificationTemplates.ts","../src/subscription.ts","../src/units.ts","../src/user.ts","../src/userGroup.ts","../src/licenses.ts","../src/version.ts","../src/remoteservice.ts","../src/preparedCommand.ts","../src/commands.ts","../src/authorizationServers.ts","../src/dryRun.ts","../src/shadowKeys.ts","../src/bundles.ts","../src/auditLog.ts","../src/powerBi.ts","../src/tsi.ts","../src/ux4iot.ts","../src/adx.ts","../src/initialAccountGroupAssignmentRules.ts"],"sourcesContent":["import {AxiosInstance, AxiosRequestConfig, AxiosResponse} from 'axios';\n\nexport const extractData = <T>(response: AxiosResponse<T>): T => {\n\tif (!response || response.data === undefined) {\n\t\tthrow Error('response object has no \"data\" entry');\n\t}\n\n\treturn response.data;\n};\n\ndeclare global {\n\tinterface Window {\n\t\tnguiAxios: AxiosInstance;\n\t}\n}\n\nexport const setAxios = (_axios: AxiosInstance, force?: boolean): void => {\n\tif (force || !window.nguiAxios) {\n\t\twindow.nguiAxios = _axios;\n\t} else {\n\t\tconsole.warn('window.nguiAxios instance already set');\n\t}\n};\nexport const getAxios = (): AxiosInstance => {\n\tif (window.nguiAxios == null) {\n\t\tthrow Error('window.nguiAxios instance not set');\n\t}\n\n\treturn window.nguiAxios;\n};\n\nexport const setAxiosConfig = (config: AxiosRequestConfig): void => {\n\tif (window.nguiAxios) {\n\t\tfor (const key in Object.keys(config)) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(window.nguiAxios.defaults, key)) {\n\t\t\t\tthrow Error(`Trying to set an unknown axios config property: ${key}`);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error checked, and it works\n\t\twindow.nguiAxios.defaults = {\n\t\t\t...window.nguiAxios.defaults,\n\t\t\t...config\n\t\t};\n\t}\n};\n\nexport const retryRequest = async (requestFn: any, retries = 5, delay = 100) => {\n\tfor (let attempt = 0; attempt < retries; attempt++) {\n\t\ttry {\n\t\t\treturn await requestFn();\n\t\t} catch (error: any) {\n\t\t\tif (attempt < retries - 1) {\n\t\t\t\tconst waitTime = delay * Math.pow(2, attempt) + Math.random() * 100;\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, waitTime));\n\t\t\t} else {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {extractData, getAxios} from './axios';\n\ntype AggregationGrouping = {\n\tfield: string;\n\tsize?: number;\n\tnumberInterval?: number;\n\tdateInterval?: string;\n\tprecision?: number;\n\tminDocCount?: number;\n};\n\ntype AggregationSorting = {\n\tcolumnName: string;\n\torder: 'asc' | 'desc';\n};\n\nexport type MetricFunction =\n\t| 'avg'\n\t| 'cardinality'\n\t| 'max'\n\t| 'min'\n\t| 'sum'\n\t| 'count'\n\t| 'stats'\n\t| 'percentile'\n\t| 'percentileRanks';\n\ntype AggregationMetric = {\n\tfunction: MetricFunction;\n\tfield: string;\n\tcolumnName: string;\n};\n\nexport type AggregationConfig = {\n\tquery: string;\n\taggregationGrouping: AggregationGrouping[];\n\taggregationMetrics: AggregationMetric[];\n\taggregationSorting: AggregationSorting;\n};\n\ntype Column = {\n\tcolumnName: string;\n\tdatatype: string;\n};\n\ntype Row = Record<string, any>;\n\nexport type AggregationResult = {\n\tgroupingColumns: Column[];\n\tmetricColumns: Column[];\n\ttotalHits: number;\n\trows: Row;\n};\n\nexport const fetchAggregation = (aggregationConfig: AggregationConfig): Promise<any> =>\n\tgetAxios().post('/v2/assets/aggregation', aggregationConfig).then(extractData);\n","import {PaginationRequestPropertyAdxData} from './adxData';\n\nexport type Pageable<T> = {\n\tcontent: Array<T>;\n\ttotalElements: number;\n\ttotalElementsAccurate: boolean;\n\ttotalPages: number;\n\tnumber: number; // page number\n\tfirst: boolean;\n\tlast: boolean;\n\tsize: number;\n\tsort: Array<Sort>;\n};\n\nexport type SortDirection = 'ASC' | 'DESC';\n\nexport type Sort = {\n\tproperty: string;\n\tdirection: SortDirection;\n};\n\nexport type PaginationSettings = {\n\tpage: number;\n\tsize: number;\n\tsort: Sort;\n};\n\nexport function paginationSettingsToQueryParams(paginationSettings: PaginationSettings | undefined) {\n\tif (paginationSettings) {\n\t\tconst {\n\t\t\tpage,\n\t\t\tsize,\n\t\t\tsort: {property, direction}\n\t\t} = paginationSettings;\n\t\treturn {page, size, sort: `${property},${direction}`};\n\t}\n}\n\nexport type PaginationSettingsAdxData = {\n\tsort: string;\n\tpage: number;\n\tsize: number;\n\ttotalElements: number;\n\ttotalPages: number;\n\tfirstPage: boolean;\n\tlastPage: boolean;\n};\n\nexport type PaginationRequestAdxData = {\n\tsort: Sort;\n\tpage: number;\n\tsize: number;\n};\n\nexport function paginationSettingsAdxToQueryParams(\n\tpaginationSettings: PaginationRequestAdxData | undefined\n): PaginationRequestPropertyAdxData | undefined {\n\tif (paginationSettings) {\n\t\tconst {\n\t\t\tpage,\n\t\t\tsize,\n\t\t\tsort: {property, direction}\n\t\t} = paginationSettings;\n\t\treturn {page, size, sort: `${property},${direction}`};\n\t}\n\treturn undefined;\n}\n","import {getAxios, extractData} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {PropertyValues} from './property';\nimport {paginationSettingsToQueryParams} from './pagination';\n\nexport type AssetGroupNew = {\n\tdefinitionId: number;\n\tdefinitionName: string;\n\tparentId: number | null | undefined;\n\tname: string;\n\tdisplayName: string | null | undefined;\n\tproperties: PropertyValues;\n\tstaticProperties: PropertyValues;\n};\n\nexport type AssetGroup = AssetGroupNew & {\n\tid: number;\n};\n\ntype FetchAssetGroupsParams = {\n\truleId: number;\n\tdefinitionId: number;\n\tdefinitionName: string;\n\tprocessingDefinitionId: number;\n\tshadow: boolean;\n};\n\nexport const fetchAssetGroups = (\n\tqueryParams?: Partial<FetchAssetGroupsParams>,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get('/v2/assetGroups', {params: {...queryParams, ...paginationSettingsToQueryParams(paginationSettings)}})\n\t\t.then(extractData);\n};\n\nexport const fetchAssetGroupsById = (id: number[]): Promise<AssetGroup[]> => {\n\treturn getAxios().get('/v2/assetGroups', {params: {id}}).then(extractData);\n};\n\nexport const fetchAssetGroupById = (id: number): Promise<AssetGroup> => {\n\treturn getAxios().get(`/v2/assetGroups/${id}`).then(extractData);\n};\n\nexport const fetchAssetGroupsByDataProcessingDefinitionId = (\n\tdataProcessingDefinitionId: number\n): Promise<Array<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups?processingDefinitionId=${dataProcessingDefinitionId}`)\n\t\t.then(extractData)\n\t\t.then(({content}) => content);\n};\n\nexport const fetchAssetGroupsByRuleId = (ruleId: number): Promise<Array<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups?ruleId=${ruleId}`)\n\t\t.then(extractData)\n\t\t.then(({content}) => content);\n};\n\nexport const createAssetGroup = (assetGroup: AssetGroupNew): Promise<AssetGroup> => {\n\treturn getAxios().post(`/v2/assetGroupDefinitions/${assetGroup.definitionId}/groups`, assetGroup).then(extractData);\n};\n\nexport const updateAssetGroup = (assetGroup: AssetGroup): Promise<AssetGroup> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroup.id}`, assetGroup).then(extractData);\n};\n\nexport const deleteAssetGroup = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${id}`);\n};\n\nexport const searchAssetGroups = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\tconst {page, size, sort} = paginationSettings;\n\tconst params = {\n\t\tpage: page || 0,\n\t\tsize,\n\t\tsort: `${sort.property},${sort.direction}`,\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.post(`/v2/assetGroups/search`, query || '*:*', {\n\t\t\tparams,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const assignAssetsByIds = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'ADD',\n\t\tassetIds\n\t});\n};\n\nexport const assignAssetsByQuery = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'ADD',\n\t\tquery\n\t});\n};\n\nexport const unassignAssetsByIds = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'REMOVE',\n\t\tassetIds\n\t});\n};\n\nexport const unassignAssetsByQuery = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'REMOVE',\n\t\tquery\n\t});\n};\n\nexport const getAncestorGroups = (id: number): Promise<Array<AssetGroup>> => {\n\treturn getAxios().get(`/v2/assetGroups/${id}/ancestorGroups`).then(extractData);\n};\n\nexport const fetchGroupsByIds = (ids: Array<number>): Promise<Array<AssetGroup>> => {\n\tif (!ids.length) {\n\t\treturn Promise.resolve([]);\n\t}\n\n\treturn searchAssetGroups(`id:(${ids.join(' OR ')})`, {\n\t\tpage: 0,\n\t\tsize: 2000,\n\t\tsort: {\n\t\t\tproperty: 'name',\n\t\t\tdirection: 'ASC'\n\t\t}\n\t}).then((result) => result.content);\n};\n\nexport const listAllChildAssetGroups = (\n\tassetGroupId: number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\tconst params = paginationSettings\n\t\t? {\n\t\t\t\tsize: paginationSettings.size,\n\t\t\t\tpage: paginationSettings.page,\n\t\t\t\tsort: `${paginationSettings.sort.property},${paginationSettings.sort.direction}`\n\t\t\t}\n\t\t: {\n\t\t\t\tsize: 1000\n\t\t\t};\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/children`, {params}).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\nimport {Pageable, PaginationSettings, paginationSettingsToQueryParams} from './pagination';\nimport {PropertyValues} from './property';\nimport {fetchAssetGroupsById} from './assetGroup';\n\nexport type GatewayTransportChannel = 'JUMP' | 'IOTHUB';\n\nexport type AssetNew = {\n\tassetDefinitionId: number | null | undefined;\n\tname: string;\n\turn: string;\n\tgatewayId: number | null | undefined;\n\tproperties: PropertyValues;\n\tshadow?: PropertyValues;\n\tisGateway: boolean;\n\ttransportChannel?: GatewayTransportChannel;\n\tassetGroupIds: Array<number>;\n\tancestorAssetGroupIds: Array<number>;\n\tcertificateBootstrapping?: boolean;\n\ttimeZone?: string;\n};\n\nexport type Asset = AssetNew & {\n\tid: number;\n};\n\nexport type Gateway = Asset & {\n\tisGateway: true;\n\tgatewayId: null;\n};\n\nexport type CertificateDetails = {\n\tcontent: string;\n\tcreatedAt: number;\n\trevokedAt: number;\n\tlastUsedAt: number;\n};\n\nexport type GeoDistanceParams = {\n\tdistance: string;\n\tgeoField: string;\n\tpinLocation: string;\n};\n\nexport type GeoBoundingBoxParams = {\n\tgeoField: string;\n\ttopLeft: string;\n\tbottomRight: string;\n};\n\nexport const fetchAssetWithShadowById = (id: number): Promise<Asset> => {\n\treturn getAxios().get(`/v2/assets/${id}/shadow`).then(extractData);\n};\n\nexport const fetchGatewayById = (id: number): Promise<Gateway> => {\n\treturn getAxios().get(`/v2/gateways/${id}`).then(extractData);\n};\n\nexport const fetchAssetByUrn = (urn: string): Promise<Asset> => {\n\treturn getAxios()\n\t\t.get(`/v2/assets/urn/${encodeURIComponent(urn)}`)\n\t\t.then(extractData);\n};\n\nexport type FetchAssetsParams = {\n\tid?: number;\n\tname?: string;\n\turn?: string;\n\tassetType?: 'ASSET' | 'GATEWAY';\n\tassetGroup?: number;\n\tassignedToAnyAssetGroup?: boolean;\n\tgatewayId?: number;\n\tgatewayUrn?: string;\n\truleId?: number;\n\tassetGroupRuleId?: number;\n\tprocessingDefinitionId?: number;\n\tassetGroupProcessingDefinitionId?: number;\n\tshadow?: boolean;\n};\n\nexport const fetchAssets = (\n\tqueryParams?: FetchAssetsParams,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\treturn getAxios()\n\t\t.get('/v2/assets', {params: {...queryParams, ...paginationSettingsToQueryParams(paginationSettings)}})\n\t\t.then(extractData);\n};\n\nexport const fetchAssetsByUrn = (urn: string | string[]): Promise<Array<Asset>> => {\n\treturn getAxios().get('/v2/assets', {params: {urn}}).then(extractData);\n};\n\nexport const fetchAssetsByAssetGroupId = (\n\tassetGroupId: number,\n\tshadow?: boolean,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\treturn fetchAssets({assetGroup: assetGroupId, shadow}, paginationSettings);\n};\n\nexport const fetchAssetsByRuleId = (ruleId: number): Promise<Array<Asset>> => {\n\treturn fetchAssets({ruleId}).then(({content}) => content);\n};\n\nexport const fetchAssetsByDataProcessingDefinitionId = (dataProcessingDefinitionId: number): Promise<Array<Asset>> => {\n\treturn fetchAssets({processingDefinitionId: dataProcessingDefinitionId}).then(({content}) => content);\n};\n\nexport const createAsset = (asset: AssetNew): Promise<Asset> => {\n\tif (asset.isGateway) {\n\t\treturn getAxios().post(`/v2/gateways`, asset).then(extractData);\n\t} else {\n\t\treturn getAxios().post(`/v2/assets`, asset).then(extractData);\n\t}\n};\n\nexport const updateAsset = (asset: Asset): Promise<Asset> => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst {assetGroupIds, ...formData} = asset;\n\tif (asset.isGateway) {\n\t\treturn getAxios().put(`/v2/gateways/${asset.id}`, formData).then(extractData);\n\t} else {\n\t\treturn getAxios().put(`/v2/assets/${asset.id}`, formData).then(extractData);\n\t}\n};\n\nexport const deleteAsset = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${id}`);\n};\n\nexport const searchAssets = (query: string, paginationSettings?: PaginationSettings): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(`/v2/assets/search`, query || '*:*', {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchAssetsWithOpenEvents = (\n\tquery: string,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(`/v2/assets/search`, query || '*:*', {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true,\n\t\t\t\tassetsWithEventsOnly: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchAssetsByProperty = (\n\tproperty: string,\n\tvalue: string | number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.get(`/v2/assets/search`, {\n\t\t\tparams: {\n\t\t\t\tproperty,\n\t\t\t\tvalue,\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchGateways = (query: string, paginationSettings: PaginationSettings): Promise<Pageable<Gateway>> => {\n\treturn searchAssets(`${query} isGateway:true`, paginationSettings) as Promise<Pageable<Gateway>>;\n};\n\nexport const searchAssetsWithGeoDistance = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings,\n\tgeoDistanceParams: GeoDistanceParams\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\tconst {distance, geoField, pinLocation} = geoDistanceParams;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assets/geoDistance`,\n\t\t\t{\n\t\t\t\tdistance,\n\t\t\t\tgeoField,\n\t\t\t\tpinLocation,\n\t\t\t\tquery: query || '*:*'\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tignoreCase: true,\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || ''\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const searchAssetsByGeoBoundingBox = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings,\n\t{geoField, topLeft, bottomRight}: GeoBoundingBoxParams\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assets/geoBoundingBox`,\n\t\t\t{\n\t\t\t\tgeoField,\n\t\t\t\tquery: query || '*:*',\n\t\t\t\ttopLeft,\n\t\t\t\tbottomRight\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tignoreCase: true,\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: sort ? `${sort.property},${sort.direction}` : ''\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const fetchAssetGroupIds = (assetId: number): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/groups`).then(extractData);\n};\n\nexport const assignAssetGroup = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/groups/${assetGroupId}`);\n};\n\nexport const unassignAssetGroup = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/groups/${assetGroupId}`);\n};\n\nexport const updateAssetGroupIds = async (assetId: number, assetGroupIds: Array<number>): Promise<any> => {\n\tconst oldAssetGroupIds = await fetchAssetGroupIds(assetId);\n\tlet availableOldAssetGroupIds: number[] = [];\n\tif (oldAssetGroupIds.length > 0) {\n\t\tavailableOldAssetGroupIds = (await fetchAssetGroupsById(oldAssetGroupIds)).map(({id}) => id);\n\t}\n\tconst addedAssetGroupIds = assetGroupIds.filter((id) => !oldAssetGroupIds.includes(id));\n\tconst removedAssetGroupIds = availableOldAssetGroupIds.filter((id) => assetGroupIds && !assetGroupIds.includes(id));\n\treturn Promise.all([\n\t\t...addedAssetGroupIds.map((assetGroupId) => assignAssetGroup(assetId, assetGroupId)),\n\t\t...removedAssetGroupIds.map((assetGroupId) => unassignAssetGroup(assetId, assetGroupId))\n\t]);\n};\n\nexport const assignGateway = (assetId: number, gatewayId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/gatewayAssignment`, {\n\t\tgatewayId\n\t});\n};\n\nexport const unassignGateway = (assetId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/gatewayAssignment`);\n};\n\nexport const getGatewayConfigurationsSyncStatus = (assetId: number): Promise<any> => {\n\treturn getAxios().get(`/v2/gateways/${assetId}/configurationSyncStatus`).then(extractData);\n};\n\nexport const triggerGatewayConfigurationsSync = (assetId: number): Promise<any> => {\n\treturn getAxios().post(`/v2/gateways/${assetId}/configurationSync`);\n};\n\nexport const retrieveAssetBootstrapJson = (assetUrn: string): Promise<any> => {\n\treturn getAxios().post(`/beta/gateways/urn/${encodeURIComponent(assetUrn)}/bootstrap.json`);\n};\n\nexport const retrieveAssetBootstrapShellCommand = (assetUrn: string): Promise<any> => {\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/beta/gateways/urn/${encodeURIComponent(assetUrn)}/bootstrapCommandLine`,\n\t\t\t{},\n\t\t\t{\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'text/plain'\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const getGatewayCertificateSummary = (assetUrn: string): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates`)\n\t\t.then(extractData);\n};\n\nexport const getCertificateDetails = (assetUrn: string, fingerPrint: string): Promise<CertificateDetails> => {\n\treturn getAxios()\n\t\t.get(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/${fingerPrint}`)\n\t\t.then(extractData);\n};\n\nexport const revokeGatewayCertificate = (assetUrn: string, fingerprint: string): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/${fingerprint}/revocation`);\n};\n\nexport const revokeAllGatewayCertificates = (assetUrn: string): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/revocation`);\n};\n\nexport const fetchGatewayCommandResponses = (gatewayId: number, commandId: number): Promise<Array<any>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/commands/${commandId}/responses`).then(extractData);\n};\n\nexport const requestApplicationLogCommand = (gatewayId: number): Promise<any> => {\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/gateways/${gatewayId}/commands`,\n\t\t\t{\n\t\t\t\texpirySeconds: 60,\n\t\t\t\tcontent: {\n\t\t\t\t\ttype: 'transmitApplicationLogCommand'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const fetchGatewayCapabilities = (gatewayId: number): Promise<Array<string>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/capabilities`).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type Authority = {\n\tauthority: string;\n\tinternal?: boolean;\n};\n\nexport function fetchAuthorities(): Promise<Array<Authority>> {\n\treturn getAxios().get('/v2/authorities').then(extractData);\n}\n\nexport function fetchAuthorityByName(authorityName: string): Promise<Authority> {\n\treturn getAxios().get(`/v2/authorities/${authorityName}`).then(extractData);\n}\n\nexport function createAuthority(authorityName: string): Promise<Authority> {\n\treturn getAxios().put(`/v2/authorities/${authorityName}`).then(extractData);\n}\n\nexport function deleteAuthority(authorityName: string): Promise<void> {\n\treturn getAxios().delete(`/v2/authorities/${authorityName}`);\n}\n","import {Datapoint} from './datapoint';\nimport {extractData, getAxios} from './axios';\n\nexport type AssetDefinitionProperty = {\n\tkey: string;\n\trequired: boolean;\n};\n\nexport type AssetDefinitionStaticProperty = {\n\tkey: string;\n\tvalue: string | number | boolean | null | undefined;\n};\n\nexport type AssetDefinitionNew = {\n\tname: string;\n\tproperties: AssetDefinitionProperty[];\n\tstaticProperties: AssetDefinitionStaticProperty[];\n\tdatapoints: Datapoint[];\n};\n\nexport type AssetDefinition = AssetDefinitionNew & {\n\tid: number;\n};\n\nexport async function fetchAssetDefinitions(): Promise<Array<AssetDefinition>> {\n\treturn getAxios()\n\t\t.get('/v2/assetDefinitions', {\n\t\t\tparams: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000,\n\t\t\t\tsort: 'name,ASC',\n\t\t\t\tignoreCase: true\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n}\n\nexport async function fetchAssetDefinition(id: number): Promise<AssetDefinition> {\n\treturn getAxios().get(`/v2/assetDefinitions/${id}`).then(extractData);\n}\n\nexport async function deleteAssetDefinition(id: number): Promise<void> {\n\treturn getAxios().delete(`/v2/assetDefinitions/${id}`);\n}\n\nexport async function updateAssetDefinition(assetDefinition: AssetDefinition): Promise<AssetDefinition> {\n\treturn getAxios().put(`/v2/assetDefinitions/${assetDefinition.id}`, assetDefinition).then(extractData);\n}\n\nexport async function createAssetDefinition(assetDefinition: AssetDefinitionNew): Promise<AssetDefinition> {\n\treturn getAxios().post('/v2/assetDefinitions', assetDefinition).then(extractData);\n}\n\nexport async function createAssetDefinitionDatapoint(assetDefinitionId: number, datapoint: Datapoint): Promise<void> {\n\tconst {unit, ...params} = datapoint;\n\tif (unit) (params as Record<string, any>).unit = unit.name;\n\treturn getAxios().post(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapoint.name)}`,\n\t\tparams\n\t);\n}\n\nexport async function createAssetDefinitionDatapoints(\n\tassetDefinitionId: number,\n\tdatapoints: Map<string, Datapoint>\n): Promise<void> {\n\t// this conversion is necessary because the API expects the unit to be a string\n\tconst newDatapoints = new Map(\n\t\tArray.from(datapoints, ([name, dp]) => {\n\t\t\tconst {unit, ...params} = dp;\n\t\t\treturn [name, unit ? {...params, unit: unit.name} : params];\n\t\t})\n\t);\n\treturn getAxios().post(`/v2/assetDefinitions/${assetDefinitionId}/datapoints`, Object.fromEntries(newDatapoints));\n}\n\nexport async function deleteAssetDefinitionDatapoint(assetDefinitionId: number, datapointName: string): Promise<void> {\n\treturn getAxios().delete(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapointName)}`\n\t);\n}\n\nexport async function updateAssetDefinitionDatapoint(assetDefinitionId: number, datapoint: Datapoint): Promise<void> {\n\tconst {unit, ...params} = datapoint;\n\tif (unit) (params as Record<string, any>).unit = unit.name;\n\treturn getAxios().put(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapoint.name)}`,\n\t\tparams\n\t);\n}\n","import {extractData, getAxios} from './axios';\n\nexport type AssetGroupHierarchyElement = {\n\tid: number;\n\tparentId: number | null;\n\tname: string;\n\tdisplayName: string;\n\tassetGroupDefinitionId: number;\n\tassetGroupDefinitionName: string;\n\tlevel: number;\n\tassetGroupChildCountDirect: number;\n\tassetGroupChildCountTransitive: number;\n\tassetCountDirect: number;\n\tassetCountTransitive: number;\n};\n\nexport type AssetGroupHierarchyParams = {\n\tassetDefinitionId?: number;\n\tmaxLevel?: number;\n};\n\nexport async function getAssetGroupHierarchies(\n\tassetGroupId: number,\n\tparams?: AssetGroupHierarchyParams\n): Promise<AssetGroupHierarchyElement[]> {\n\tconst response = await getAxios().get(`/v2/assetGroupHierarchies/${assetGroupId}`, {params});\n\treturn extractData(response);\n}\n\nexport type AssetGroupHierarchyRoot = {\n\tid: number;\n\tname: string;\n\tdisplayName: string;\n\tassetCountTransitive: number;\n};\n\nexport type AssetGroupHierarchyRootParams = {\n\tassetDefinitionId?: number;\n};\n\nexport async function getAssetGroupHierarchyRoots(\n\tparams: AssetGroupHierarchyParams = {}\n): Promise<AssetGroupHierarchyRoot[]> {\n\tconst response = await getAxios().get('/v2/assetGroupHierarchyRoots', {params});\n\treturn extractData(response);\n}\n","import {getAxios, extractData} from './axios';\n\ntype PropertyDefinition = {\n\tkey: string;\n\trequired: boolean;\n};\n\ntype StaticPropertyDefinition = {\n\tkey: string;\n\tvalue: number | boolean | string;\n};\n\nexport type NewAssetGroupDefinition = {\n\tname: string;\n\tchildrenPreventDeletion?: boolean;\n\tassetGroupProperties?: PropertyDefinition[];\n\tassetGroupStaticProperties?: StaticPropertyDefinition[];\n};\n\nexport type AssetGroupDefinition = NewAssetGroupDefinition & {\n\tid: number;\n};\n\nexport const fetchAssetGroupDefinitionById = (id: number): Promise<AssetGroupDefinition> => {\n\treturn getAxios().get(`/v2/assetGroupDefinitions/${id}`).then(extractData);\n};\n\nexport const fetchAssetGroupDefinitionByName = (name: string): Promise<AssetGroupDefinition> => {\n\treturn getAxios().get(`/v2/assetGroupDefinitions/name/${name}`).then(extractData);\n};\n\nexport const fetchAssetGroupDefinitions = (): Promise<Array<AssetGroupDefinition>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: 'name,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get('/v2/assetGroupDefinitions', {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => {\n\t\t\tconst restPagePromises = new Array(Math.max(0, pageable.totalPages - 1)).fill(null).map((_, num) => {\n\t\t\t\tconst page = num + 1;\n\t\t\t\treturn getAxios()\n\t\t\t\t\t.get('/v2/assetGroupDefinitions', {\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t...params,\n\t\t\t\t\t\t\tpage\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then(extractData)\n\t\t\t\t\t.then((data) => data.content);\n\t\t\t});\n\t\t\treturn Promise.all(restPagePromises).then((restPages) =>\n\t\t\t\trestPages.reduce((acc, content) => acc.concat(content), pageable.content)\n\t\t\t);\n\t\t});\n};\n\nexport const createAssetGroupDefinition = (\n\tassetGroupDefinition: NewAssetGroupDefinition\n): Promise<AssetGroupDefinition> => {\n\treturn getAxios().post('/v2/assetGroupDefinitions', assetGroupDefinition).then(extractData);\n};\n\nexport const updateAssetGroupDefinition = (\n\tassetGroupDefinition: AssetGroupDefinition\n): Promise<AssetGroupDefinition> => {\n\treturn getAxios()\n\t\t.put(`/v2/assetGroupDefinitions/${assetGroupDefinition.id}`, assetGroupDefinition)\n\t\t.then(extractData);\n};\n\nexport const deleteAssetGroupDefinition = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroupDefinitions/${id}`);\n};\n","import {getAxios, extractData} from './axios';\nimport {AxiosInstance} from 'axios';\n\nexport type LegalPage = 'imprint' | 'privacy';\n\nexport type UserPaginationSettings = {\n\tsize: number;\n};\n\nexport type AdvancedSearchDefaultProperty = {\n\tkey: string;\n\ttype: string;\n};\n\ntype ResourceType = 'assets' | 'assetGroups' | 'assetDefinitions' | 'accounts' | 'accountGroups' | 'tenant';\n\nexport type BlobMeta = {\n\tblobKey: string;\n\tlastModified: string;\n\tcontentType: string;\n\tuserMetadata: {\n\t\t'X-Blob-Meta-Filename': string;\n\t};\n};\n\nconst createUrl = (type: ResourceType, id: string | number | undefined, path: string) => {\n\treturn ['', 'v2', type, id ? encodeURIComponent(id) : null, 'blobs', path]\n\t\t.filter((segment) => segment != null)\n\t\t.join('/');\n};\n\nconst readObject = (\n\ttype: ResourceType,\n\tid: string | number | undefined,\n\tpath: string,\n\tasArrayBuffer: boolean\n): Promise<any> =>\n\tgetAxios()\n\t\t.get(createUrl(type, id, path), asArrayBuffer ? {responseType: 'arraybuffer'} : {})\n\t\t.then(extractData);\n\nconst writeObject = (\n\ttype: ResourceType,\n\tid: string | number | undefined,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> =>\n\t(axiosInstance ?? getAxios()).post(createUrl(type, id, path), value, headers ? {headers} : undefined);\n\nconst deleteObject = (type: ResourceType, id: string | number | undefined, path: string): Promise<void> =>\n\tgetAxios().delete(createUrl(type, id, path));\n\nconst checkObject = (type: ResourceType, id: string | number | undefined, path: string) =>\n\tgetAxios().head(createUrl(type, id, path));\n\nexport const readAssetObject = (assetUrn: string, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('assets', assetUrn, path, !!asArrayBuffer);\n\nexport const writeAssetObject = (\n\tassetUrn: string,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assets', assetUrn, path, value, headers, axiosInstance);\n\nexport const deleteAssetObject = (assetUrn: string, path: string): Promise<void> =>\n\tdeleteObject('assets', assetUrn, path);\n/*\n * Asset Definition Blobox\n */\nexport const readAssetDefinitionObject = (\n\tassetDefinitionId: number,\n\tpath: string,\n\tasArrayBuffer?: boolean\n): Promise<any> => readObject('assetDefinitions', assetDefinitionId, path, !!asArrayBuffer);\n\nexport const writeAssetDefinitionObject = (\n\tassetDefinitionId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assetDefinitions', assetDefinitionId, path, value, headers, axiosInstance);\n\nexport const deleteAssetDefinitionObject = (assetDefinitionId: number, path: string): Promise<void> =>\n\tdeleteObject('assetDefinitions', assetDefinitionId, path);\n\n/*\n * Asset Group Blobox\n */\nexport const readAssetGroupObject = (assetGroupId: number, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('assetGroups', assetGroupId, path, !!asArrayBuffer);\n\nexport const writeAssetGroupObject = (\n\tassetGroupId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assetGroups', assetGroupId, path, value, headers, axiosInstance);\n\nexport const deleteAssetGroupObject = (assetGroupId: number, path: string): Promise<any> =>\n\tdeleteObject('assetGroups', assetGroupId, path);\n\n/*\n * Tenant Blobox\n */\nexport const readTenantObject = (path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('tenant', undefined, path, !!asArrayBuffer);\n\nexport const writeTenantObject = (\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => writeObject('tenant', undefined, path, value, headers, axiosInstance);\n\nexport const deleteTenantObject = (path: string): Promise<any> => deleteObject('tenant', undefined, path);\n\nexport const readUIConfigurations = (): Promise<any> => readTenantObject('uiConfigurations/default');\n\nexport const readUISecrets = (): Promise<any> => readTenantObject('uiSecrets/default');\n\nexport const writeUIConfigurations = (value: unknown): Promise<any> =>\n\twriteTenantObject('uiConfigurations/default', value);\n\nexport const deleteUIConfigurations = (): Promise<any> => deleteTenantObject('uiConfigurations/default');\n\nexport const readConditionMonitoringPriorities = (): Promise<any> =>\n\treadTenantObject('uiConfigurations/conditionmonitoringpriorities');\n\nexport const writeConditionMonitoringPriorities = (value: unknown): Promise<any> =>\n\twriteTenantObject('uiConfigurations/conditionmonitoringpriorities', value);\n\nexport const deleteConditionMonitoringPriorities = (): Promise<any> =>\n\tdeleteTenantObject('uiConfigurations/conditionmonitoringpriorities');\n\nexport const readEULA = (localeCode: string): Promise<ArrayBuffer> =>\n\treadTenantObject(`terms/eula-${localeCode}`, true);\n\nexport const readEULAList = (): Promise<BlobMeta[]> => readTenantObject('terms?meta=true');\n\nexport const writeEULA = (\n\tlocaleCode: string,\n\tvalue: unknown,\n\tfileName: string,\n\tcontentType: string,\n\taxiosInstance?: AxiosInstance\n): Promise<any> =>\n\twriteTenantObject(\n\t\t`terms/eula-${localeCode}`,\n\t\tvalue,\n\t\t{\n\t\t\t'X-Blob-Meta-Filename': fileName,\n\t\t\t'Content-Type': contentType\n\t\t},\n\t\taxiosInstance\n\t);\n\nexport const deleteEULA = (localeCode: string): Promise<any> => deleteTenantObject(`terms/eula-${localeCode}`);\n\nexport const readLegalPage = (legalPage: LegalPage): Promise<any> => readTenantObject(`terms/${legalPage}`);\n\n/*\n * User Blobox\n */\n\nconst checkAccountObject = (path: string): Promise<any> => checkObject('accounts', 'me', path);\n\nexport const readAccountObject = (path: string): Promise<any> => readObject('accounts', 'me', path, false);\n\nexport const writeAccountObject = (path: string, value: unknown): Promise<void> =>\n\twriteObject('accounts', 'me', path, value);\n\nexport const deleteAccountObject = (path: string): Promise<void> => deleteObject('accounts', 'me', path);\n\nexport const checkStartPage = (): Promise<any> => checkAccountObject('uiConfigurations/startpage');\n\nexport const readStartPage = (): Promise<string> => readAccountObject('uiConfigurations/startpage');\n\nexport const writeStartPage = (value: string): Promise<void> => writeAccountObject('uiConfigurations/startpage', value);\n\nexport const writeReleaseNotesVersionsViewed = (value: string[]): Promise<void> =>\n\twriteAccountObject('uiConfigurations/releasenotesversionsviewed', value);\n\nexport const readReleaseNotesVersionsViewed = (): Promise<string[]> =>\n\treadAccountObject('uiConfigurations/releasenotesversionsviewed');\n\nexport const readReleaseNotesSubscription = (): Promise<boolean> =>\n\treadAccountObject('uiConfigurations/releasenotessubscription');\n\nexport const writeReleaseNotesSubscription = (value: boolean): Promise<any> =>\n\twriteAccountObject('uiConfigurations/releasenotessubscription', value);\n\nexport const checkShowUserDocumentation = (): Promise<any> =>\n\tcheckAccountObject('uiConfigurations/showuserdocumentation');\n\nexport const readShowUserDocumentation = (): Promise<boolean> =>\n\treadAccountObject('uiConfigurations/showuserdocumentation');\n\nexport const writeShowUserDocumentation = (value: boolean): Promise<void> =>\n\twriteAccountObject('uiConfigurations/showuserdocumentation', value);\n\nexport const writePaginationSettings = (value: UserPaginationSettings): Promise<any> =>\n\twriteAccountObject('uiConfigurations/paginationsettings', value);\n\nexport const readPaginationSettings = (): Promise<UserPaginationSettings> =>\n\treadAccountObject('uiConfigurations/paginationsettings');\n\nexport const writeFavorites = (value: any): Promise<any> => writeAccountObject('uiConfigurations/favorites', value);\n\nexport const readFavorites = (): any => readAccountObject('uiConfigurations/favorites');\n\nexport const deleteStartPage = (): Promise<any> => deleteAccountObject('uiConfigurations/startpage');\n\nexport const writeAdvancedSearchDefaultProperties = (\n\tdefaultProperties: AdvancedSearchDefaultProperty[],\n\tcontext: string\n): Promise<any> => writeAccountObject(`uiConfigurations/advsearchprops${context}`, defaultProperties);\n\nexport const readAdvancedSearchDefaultProperties = (context: string): Promise<any> =>\n\treadAccountObject(`uiConfigurations/advsearchprops${context}`);\n\n/*\nAsset Blob Series\n */\nexport const readAssetBlobSeries = (assetUrn: string, from: number, to: number): Promise<Array<any>> => {\n\tconst params = {\n\t\tfrom: new Date(from).toISOString(),\n\t\tto: new Date(to).toISOString()\n\t};\n\treturn Promise.all([\n\t\tgetAxios()\n\t\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs`, {\n\t\t\t\tparams\n\t\t\t})\n\t\t\t.then(extractData),\n\t\tgetAxios()\n\t\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs`, {\n\t\t\t\tparams: {...params, meta: true}\n\t\t\t})\n\t\t\t.then(extractData)\n\t]).then(([urls, metaData]) => {\n\t\treturn urls.map((url: string, index: number) => {\n\t\t\tconst urlSegments = url.split('/');\n\t\t\tconst uniqueKey = urlSegments.slice(urlSegments.length - 2).join('/');\n\t\t\treturn {...metaData[index], blobUniqueKey: uniqueKey};\n\t\t});\n\t});\n};\n\nexport const downloadAssetBlobSeriesItem = (assetUrn: string, itemKey: string): Promise<any> =>\n\tgetAxios()\n\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs/${itemKey}`, {\n\t\t\tresponseType: 'arraybuffer'\n\t\t})\n\t\t.then(extractData);\n\n/*\nAdministration Blob\n */\nexport const readAccountGroupObject = (accountGroupId: number, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\tgetAxios()\n\t\t.get(\n\t\t\t`/beta/administration/accountGroups/${accountGroupId}/blobs/${path}`,\n\t\t\tasArrayBuffer ? {responseType: 'arraybuffer'} : {}\n\t\t)\n\t\t.then(extractData);\n\n/*\nAccount Groups Blob\n */\nexport const readAccountGroupObjectBasedOnMembership = (\n\taccountGroupId: number,\n\tpath: string,\n\tasArrayBuffer?: boolean\n): Promise<any> => readObject('accountGroups', accountGroupId, path, !!asArrayBuffer);\n\nexport const writeAccountGroupObject = (\n\taccountGroupId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => writeObject('accountGroups', accountGroupId, path, value, headers, axiosInstance);\n\nexport const deleteAccountGroupObject = (accountGroupId: number, path: string): Promise<any> =>\n\tdeleteObject('accountGroups', accountGroupId, path);\n\nexport type AzureB2cConfiguration = {\n\tclientId: string;\n\t// Format of the authority field: See https://learn.microsoft.com/en-us/answers/questions/1275356/error-sample-nodejs-app-authetication-with-azure-b?orderby=oldest\n\tauthority: string;\n\tauthorityDomain: string;\n\tregisterMFADevicePolicyUrl?: string;\n};\nexport const readAzureB2cConfiguration = async (): Promise<AzureB2cConfiguration | undefined> => {\n\treturn readTenantObject('uiConfigurations/adb2c');\n};\n","import {getAxios, extractData} from './axios';\nimport type {Asset} from './asset';\nimport type {PaginationSettings} from './pagination';\n\ntype Datatype = 'Float' | 'String' | 'Boolean' | 'Binary' | 'Integer';\n\ntype ModbusType = 'output' | 'input' | 'inputbit' | 'outputbit';\n\ntype OperationMode = 'read' | 'write' | 'readWrite';\n\ntype ModbusWidth = 16 | 32 | 64;\n\ntype AbstractConfigurationBody = {\n\tsamplingInterval: number;\n\tassetUrn: string | null | undefined;\n\tassetTypeUrn?: string;\n};\n\nexport type ModbusConfigurationBody = AbstractConfigurationBody & {\n\tconfigurationType: 'modbus';\n\tuseSameTimestamp: boolean;\n\tpollingDelay: number;\n\tdisableBlockReading: boolean;\n\tuseSerial: boolean;\n\tip: string | null | undefined;\n\tport: number | null | undefined;\n\tserialDevice: string | null | undefined;\n\tserialParity: string | null | undefined;\n\tserialBaudrate: number | null | undefined;\n\tserialDataBit: number | null | undefined;\n\tserialStopBit: number | null | undefined;\n\tserialMode: string | null | undefined;\n\tconnectorElements: Array<ModbusConnectorElement>;\n};\n\nexport type TestDataConfigurationBody = AbstractConfigurationBody & {\n\tconfigurationType: 'testData';\n\tinterval?: number;\n\trandomValue?: boolean;\n\trandomIndex?: boolean;\n\tdatapointKey?: string;\n\tdatatype?: Datatype;\n\tvalues?: Array<number>;\n};\n\nexport type DataVariable = {\n\tnodeId: string;\n\tnodeIdType: string;\n\tnodeIdNamespaceIndex: number;\n\tkey: string;\n\tsamplingInterval: number | null | undefined;\n\tpolling: boolean;\n\tqueueSize: number | null | undefined;\n\tpublishingInterval: number | null | undefined;\n\ttransformArrayToString: boolean | null | undefined;\n\tarrayStringDelimiter: string | null | undefined;\n};\n\nexport type Configuration = {\n\tid?: number;\n\tname: string;\n\tcontent: ModbusConfigurationBody | TestDataConfigurationBody;\n};\n\nexport type ModbusConnectorElement = {\n\treactableKey?: string;\n\ttype: 'modbusElement';\n\tkey: string;\n\tdatatype: Datatype;\n\tunit: string;\n\taddress: number;\n\tslave: number;\n\tfactor: number;\n\tmodbusType: ModbusType;\n\tsigned: boolean;\n\tmode: OperationMode;\n\tsamplingInterval: (number | string) | null | undefined;\n\thexString: boolean;\n\tbigEndian: boolean;\n\tstringLength: number;\n\twidth: ModbusWidth | null | undefined;\n};\n\nexport type ConfigurationListObject = Record<string, Configuration>;\n\nexport type ConfigurationKeyToId = Record<string, number>;\n\nexport const fetchConfigurations = (assetId: number): Promise<ConfigurationListObject> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/configurations`).then(extractData);\n};\n\nexport const fetchConfigurationByName = (name: string): Promise<Configuration> => {\n\treturn getAxios()\n\t\t.get(`/v2/configurations/name/${encodeURIComponent(name)}`)\n\t\t.then(extractData);\n};\n\nexport const createConfiguration = (configuration: Configuration): Promise<Configuration> => {\n\treturn getAxios().post(`/v2/configurations`, configuration).then(extractData);\n};\n\nexport const updateConfiguration = (configuration: Configuration): Promise<Configuration> => {\n\treturn getAxios() // $FlowIgnore configuration.id is present in update case\n\t\t.put(`/v2/configurations/${configuration.id}`, configuration)\n\t\t.then(extractData);\n};\n\nexport const deleteConfiguration = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/configurations/${id}`);\n};\n\nexport const assignConfigurationsToAsset = (\n\tassetId: number,\n\tconfigurationKeyToIdObject: ConfigurationKeyToId\n): Promise<ConfigurationListObject> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/configurations`, configurationKeyToIdObject).then(extractData);\n};\n\nexport const fetchAssignedGatewaysToConfiguration = (\n\tid: number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Asset[]> => {\n\tconst settings = paginationSettings\n\t\t? {...paginationSettings}\n\t\t: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000,\n\t\t\t\tsort: ''\n\t\t\t};\n\treturn getAxios()\n\t\t.get(`/v2/configurations/${id}/gateways`, {\n\t\t\tparams: settings\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type DataType = 'BOOLEAN' | 'DOUBLE' | 'LONG' | 'TEXT' | 'GEO_POSITION' | 'STRUCTURED';\n\nexport type DatapointType = 'RAW' | 'CALCULATED';\n\nexport type Unit = {\n\tname: string;\n\tprint: string;\n};\n\nexport type Thresholds = {\n\tthreshold1?: number | null | undefined;\n\tthreshold2?: number | null | undefined;\n};\n\nexport type Datapoint = {\n\tname: string;\n\tdatatype: DataType;\n\tdatapointType: DatapointType;\n\tunit?: Unit;\n\tthresholds: Thresholds;\n\tproperties?: Record<string, string | number | boolean>;\n};\n\nexport type DatapointValueGeoPositionType = {\n\tlatitude: number;\n\tlongitude: number;\n};\n\nexport type DatapointValueType = boolean | number | string | DatapointValueGeoPositionType;\n\nexport type DatapointValue = [number, DatapointValueType, DatapointValueType];\n\nexport const fetchDatapointsByAssetId = (assetId: number): Promise<Array<Datapoint>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/datapoints`).then(extractData);\n};\n\nexport const createDatapoint = (assetId: number, datapoint: Datapoint): Promise<Datapoint> => {\n\tconst {name, datatype, unit} = datapoint;\n\tconst queryParams: Record<string, any> = {\n\t\tdatatype\n\t};\n\tif (unit) queryParams.unit = unit.name;\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(name)}`, queryParams)\n\t\t.then(extractData);\n};\n\nexport const updateDatapointThresholds = (assetId: number, datapoint: Datapoint): Promise<Datapoint> => {\n\tconst {name, datatype, thresholds} = datapoint;\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(name)}`, {\n\t\t\tdatatype,\n\t\t\tthresholds\n\t\t})\n\t\t.then(extractData);\n};\n\nfunction datatypeToDatapointType(datatype: DataType): string {\n\tswitch (datatype) {\n\t\tcase 'GEO_POSITION':\n\t\t\treturn 'geoPosition';\n\t\tdefault:\n\t\t\treturn datatype.toLowerCase();\n\t}\n}\n\nexport const getDatapointValues = (\n\tassetUrn: string,\n\tdpName: string,\n\tdataType: DataType,\n\tstart: number | null | undefined,\n\tend: number | null | undefined,\n\tonlyChangedValues = false,\n\torder: 'ASC' | 'DESC' = 'ASC',\n\tlimit = 10000\n): Promise<Array<DatapointValue>> => {\n\treturn getAxios()\n\t\t.get(\n\t\t\t`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(\n\t\t\t\tdpName\n\t\t\t)}/${datatypeToDatapointType(dataType)}/entries`,\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tstart: start ? new Date(start).toISOString() : '',\n\t\t\t\t\tend: end ? new Date(end).toISOString() : '',\n\t\t\t\t\torder,\n\t\t\t\t\tlimit,\n\t\t\t\t\tonlyChangedValues\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const getDatapointGeoPositionValues = (\n\tassetUrn: string,\n\tstart?: number,\n\tend?: number,\n\torder: 'ASC' | 'DESC' = 'ASC',\n\tlimit = 10000,\n\tonlyChangedValues = false\n): Promise<Array<DatapointValue>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/geoPosition/geoPosition/entries`, {\n\t\t\tparams: {\n\t\t\t\tstart: start ? new Date(start).toISOString() : '',\n\t\t\t\tend: end ? new Date(end).toISOString() : '',\n\t\t\t\torder,\n\t\t\t\tlimit,\n\t\t\t\tonlyChangedValues\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const getDatapointSamples = (\n\tassetUrn: string,\n\tdpName: string,\n\tdataType: DataType,\n\tstart: number,\n\tend: number,\n\tslices: number\n): Promise<Array<DatapointValue>> => {\n\tconst url = `/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(\n\t\tdpName\n\t)}/${datatypeToDatapointType(dataType)}/samples`;\n\n\treturn getAxios()\n\t\t.get(url, {\n\t\t\tparams: {\n\t\t\t\tstart: new Date(start).toISOString(),\n\t\t\t\tend: new Date(end).toISOString(),\n\t\t\t\tslices,\n\t\t\t\tincludeFirst: false,\n\t\t\t\tincludeLast: false\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const updateDatapointUnit = (assetId: number, dpName: string, unit: Unit | null | undefined): Promise<any> => {\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(dpName)}/unit`, unit)\n\t\t.then(extractData);\n};\n\nexport const deleteDatapoint = (assetId: number, dpName: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(dpName)}`);\n};\n\nfunction transformDatatypeToUrlSegment(datatype: DataType) {\n\tswitch (datatype) {\n\t\tcase 'GEO_POSITION':\n\t\t\treturn 'geoPosition';\n\t\tdefault:\n\t\t\treturn datatype.toLowerCase();\n\t}\n}\n\nexport const deleteDatapointEntries = (\n\tassetUrn: string,\n\tdp: Datapoint,\n\tstartOptional?: string,\n\tendOptional?: string\n): Promise<any> => {\n\tconst DEFAULT_START = new Date(0).toISOString();\n\tconst start = startOptional || DEFAULT_START;\n\tconst body = endOptional\n\t\t? {\n\t\t\t\tstart,\n\t\t\t\tend: endOptional\n\t\t\t}\n\t\t: {\n\t\t\t\tstart\n\t\t\t};\n\tconst dataType = transformDatatypeToUrlSegment(dp.datatype);\n\treturn getAxios().delete(\n\t\t`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(dp.name)}/${dataType}/entries`,\n\t\t{\n\t\t\tparams: body\n\t\t}\n\t);\n};\n","import {extractData, getAxios, retryRequest} from './axios';\nimport {DatapointValueGeoPositionType, DataType} from './datapoint';\nimport {PaginationRequestAdxData, PaginationSettingsAdxData, paginationSettingsAdxToQueryParams} from './pagination';\n\nexport type StructuredDatapointsNodeDataType = 'string' | 'number' | 'boolean' | 'array';\n\nexport type PropertyNode = {\n\tpropertyPath: string;\n\tdatatypes: StructuredDatapointsNodeDataType[];\n};\n\nexport type StructuredDatapointPropertyNodes = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tpropertyNodes: PropertyNode[];\n\tresultLimitExceeded: boolean;\n};\n\ntype DistinctValuesResponseArrays = (string | number | boolean | object)[][] | (string | number | boolean | object)[];\n\nexport type DistinctValuesResponse = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tpropertyPath: string;\n\tdistinctValues: string[] | number[] | boolean[] | DistinctValuesResponseArrays;\n\tresultLimitExceeded: boolean;\n};\n\ntype Condition = {\n\tpropertyPath?: string;\n\toperator:\n\t\t| 'is'\n\t\t| 'larger_than'\n\t\t| 'larger_or_equal_than'\n\t\t| 'less_than'\n\t\t| 'less_or_equal_than'\n\t\t| 'contains'\n\t\t| 'exists';\n\tvalue: string | number | boolean | number[] | string[] | boolean[];\n};\n\nexport type AdxDistinctValuesDataType = 'double' | 'long' | 'boolean' | 'text' | 'geo_position' | 'structured';\n\nexport const DataTypeToAdxDistinctDatapointType: Record<DataType, AdxDistinctValuesDataType> = {\n\tBOOLEAN: 'boolean',\n\tDOUBLE: 'double',\n\tLONG: 'long',\n\tTEXT: 'text',\n\tGEO_POSITION: 'geo_position',\n\tSTRUCTURED: 'structured'\n};\n\ntype Filter = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tdatatype: AdxDistinctValuesDataType;\n\tconditions: Condition[];\n};\n\nexport type PaginationRequestPropertyAdxData = {\n\tsort: string;\n\tpage: number;\n\tsize: number;\n};\n\ntype DatapointValuesRequest = {\n\tinterval: {\n\t\tstart: string;\n\t\tend: string;\n\t};\n\tfilters: Filter[];\n};\n\ntype DatapointValueContent = string | number | DatapointValueGeoPositionType | NestedDatapointValue;\ntype NestedDatapointValue = Record<string, string | number>;\n\ntype DatapointValue = {\n\ttimestamp: string;\n\tassetUrn: string;\n\tdatapointName: string;\n\tvalue: DatapointValueContent;\n};\n\nexport type DatapointValuesResponse = {\n\tcontent: DatapointValue[];\n\tpagination: PaginationSettingsAdxData;\n\tqueryId: string;\n};\n\nexport const getStructuredDatapointPropertyNodes = (\n\tassetUrn: string,\n\tdatapointName: string,\n\tdatatype: DataType,\n\ttsFrom: string,\n\ttsTo: string\n): Promise<StructuredDatapointPropertyNodes> => {\n\tconst queryParameters: Record<string, string> = {\n\t\tdatatype: DataTypeToAdxDistinctDatapointType[datatype],\n\t\tstart: tsFrom,\n\t\tend: tsTo\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/assets/${assetUrn}/datapoints/${datapointName}/propertyNodes`, {params: queryParameters})\n\t\t.then(extractData);\n};\n\nexport const getStructuredDatapointDistinctValues = (\n\tassetUrn: string,\n\tdatapointName: string,\n\tdatatype: DataType,\n\ttsFrom: string,\n\ttsTo: string,\n\tpropertyPath?: string // Optional because it's unnecessary for primitive datapoints\n): Promise<DistinctValuesResponse> => {\n\tconst queryParameters: Record<string, string | number> = {\n\t\tdatatype: DataTypeToAdxDistinctDatapointType[datatype],\n\t\tstart: tsFrom,\n\t\tend: tsTo,\n\t\tpropertyPath: propertyPath || ''\n\t};\n\n\tif (propertyPath) {\n\t\tqueryParameters.propertyPath = propertyPath;\n\t}\n\n\treturn retryRequest(() =>\n\t\tgetAxios()\n\t\t\t.get(`/v2/assets/${assetUrn}/datapoints/${datapointName}/distinctValues`, {\n\t\t\t\tparams: queryParameters\n\t\t\t})\n\t\t\t.then(extractData)\n\t);\n};\n\nexport const getDatapointValuesByFilters = (\n\tstart: string,\n\tend: string,\n\tfilters: Filter[],\n\tpaginationSettings: PaginationRequestAdxData\n): Promise<DatapointValuesResponse> => {\n\tconst requestPayload: DatapointValuesRequest = {\n\t\tinterval: {\n\t\t\tstart,\n\t\t\tend\n\t\t},\n\t\tfilters\n\t};\n\n\tconst queryString = buildDatapointValuesQueryString(paginationSettings);\n\treturn retryRequest(() =>\n\t\tgetAxios().post(`/v2/assets/datapointValues${queryString}`, requestPayload).then(extractData)\n\t);\n};\n\nexport const getDatapointValuesByQueryId = (\n\tpaginationSettings: PaginationRequestAdxData,\n\tqueryId: string\n): Promise<DatapointValuesResponse> => {\n\tconst queryString = buildDatapointValuesQueryString(paginationSettings);\n\treturn retryRequest(() => getAxios().get(`/v2/assets/datapointValues/${queryId}${queryString}`).then(extractData));\n};\n\nconst buildDatapointValuesQueryString = (paginationSettings: PaginationRequestAdxData): string => {\n\tconst queryParams = paginationSettingsAdxToQueryParams(paginationSettings);\n\tlet params: Record<string, string> = {};\n\n\tif (queryParams !== undefined) {\n\t\tparams = {\n\t\t\tpage: queryParams.page.toString(),\n\t\t\tsize: queryParams.size.toString(),\n\t\t\tsort: queryParams.sort\n\t\t};\n\t}\n\n\treturn Object.keys(params).length > 0 ? `?${new URLSearchParams(params).toString()}` : '';\n};\n","import {extractData, getAxios} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\n\nexport type DataProcessingDefinitionDatapointDataType = 'BOOLEAN' | 'DOUBLE' | 'LONG' | 'TEXT';\n\nexport type DataProcessingDefinitionProcessingDefType = 'expressionPD';\n\nexport type DataProcessingDefinitionProcessingPeriod = 'INSTANT' | 'MIN1' | 'MIN15' | 'MIN30' | 'HOUR';\n\nexport type DataProcessingDefinitionDatapoint = {\n\tdatapointKey: string;\n\tvariableName: string;\n\tdataType: DataProcessingDefinitionDatapointDataType;\n\trequiresValueInCurrentPeriod: boolean;\n};\n\nexport type DataProcessingDefinitionOutput = {\n\toutputKey: string;\n\tvariableName: string;\n};\n\nexport type DataProcessingDefinitionBody = {\n\tid?: string;\n\tversion?: number;\n\tprocessingDefType: string;\n\tkpiName: string;\n\tprocessingPeriod: DataProcessingDefinitionProcessingPeriod;\n\tresetTo: string;\n\tensureBoundaryValues: boolean;\n\texpression: string;\n\tinput: Array<DataProcessingDefinitionDatapoint>;\n\toutput: Array<DataProcessingDefinitionOutput>;\n\tpublishAsDatapointValues?: boolean;\n};\n\nexport type DataProcessingDefinition = {\n\tid: number;\n\tdirectlyAssigned: boolean;\n\tetag?: string | null | undefined;\n\tdefinition: DataProcessingDefinitionBody;\n};\n\nexport type DataProcessingDefinitionAssignment = {\n\tid: number;\n\tkpiName: string;\n};\n\nexport type AssetAssignment = {\n\tassetId: number;\n\tassetUrn: string;\n\tassetName: string;\n};\n\nexport type DataProcessingDefinitionAssetAssignment = DataProcessingDefinitionAssignment & {\n\tassignedToAssets: Array<AssetAssignment>;\n};\n\nexport type AssetGroupAssignment = {\n\tassetGroupId: number;\n\tassetGroupName: string;\n\tassetGroupDisplayName: string;\n};\n\nexport type DataProcessingDefinitionAssetGroupAssignment = DataProcessingDefinitionAssignment & {\n\tassignedToAssetGroups: Array<AssetGroupAssignment>;\n};\n\nexport type AccountGroupAssignment = {\n\taccountGroupId: number;\n\taccountGroupName: string;\n\taccountGroupDisplayName: string;\n};\n\nexport type DataProcessingDefinitionAccountGroupAssignment = DataProcessingDefinitionAssignment & {\n\taccessesForAccountGroups: Array<AccountGroupAssignment>;\n};\n\nexport type DataProcessingDefinitionValidation = {\n\tid: number;\n\tname: string;\n\tcompatibleDatapoints: Array<string>;\n\tmissingDatapoints: Array<string>;\n};\n\nexport type DataProcessingDefinitionAccessList = {\n\taccountGroupId: number;\n};\n\ntype EvaluationsParamsInput = {\n\tvariableName: string;\n\tdatapointKey: string;\n\tdataType: string;\n};\n\nexport type EvaluationsParams = {\n\texpression: string;\n\tperiod: string;\n\tfrom: string;\n\tto: string;\n\tinputs: Array<EvaluationsParamsInput>;\n};\n\nexport type DataProcessingDefinitionEvaluationSeries = {\n\tseries: Array<{\n\t\tvariable: string;\n\t\ttype: string;\n\t\tdata: Array<[string, number]>;\n\t}>;\n};\n\nexport type DataProcessingDefinitionsListFilterSettings = {\n\tkpiName?: string;\n\tpublishAsDatapointValues?: string;\n};\n\nexport const listDataProcessingDefinitions = (\n\tfilterSettings: DataProcessingDefinitionsListFilterSettings,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<DataProcessingDefinition>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 10,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\tconst params = {\n\t\t...filterSettings,\n\t\tpage,\n\t\tsize,\n\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions', {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAssetAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAssetAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/assets', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAssetGroupAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAssetGroupAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/assetGroups', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAccountGroupAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAccountGroupAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/accesses', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const getDataProcessingDefinitionById = (definitionId: number): Promise<DataProcessingDefinition> => {\n\treturn getAxios()\n\t\t.get(`/v2/dataProcessingDefinitions/${definitionId}`)\n\t\t.then((response) => {\n\t\t\tconst data = extractData(response);\n\t\t\tconst etag = response.headers?.etag || '';\n\t\t\treturn {...data, etag};\n\t\t});\n};\n\nexport const fetchDataProcessingDefinitionsAssignedToAsset = (\n\tassetId: number\n): Promise<Array<DataProcessingDefinition>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/dataProcessingDefinitions`).then(extractData);\n};\n\nexport const fetchDataProcessingDefinitionsAssignedToAssetGroup = (\n\tassetGroupId: number\n): Promise<Array<DataProcessingDefinition>> => {\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitions`).then(extractData);\n};\n\nexport const createDataProcessingDefinition = (dataProcessingDefinition: {\n\tdefinition: DataProcessingDefinitionBody;\n\tassetIdsWithAccess?: number[];\n\taccountGroupIdsWithAccess?: number[];\n}): Promise<DataProcessingDefinition> => {\n\treturn getAxios().post('/v2/dataProcessingDefinitions', dataProcessingDefinition).then(extractData);\n};\n\nexport const updateDataProcessingDefinition = (data: DataProcessingDefinition): Promise<DataProcessingDefinition> => {\n\tconst {etag, ...dataProcessingDefinition} = data;\n\treturn getAxios()\n\t\t.put(`/v2/dataProcessingDefinitions/${dataProcessingDefinition.id}`, dataProcessingDefinition, {\n\t\t\theaders: etag\n\t\t\t\t? {\n\t\t\t\t\t\t'If-Match': etag\n\t\t\t\t\t}\n\t\t\t\t: {}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const assignDataProcessingDefinitionsToAsset = (\n\tassetId: number,\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/dataProcessingDefinitionsById`, dataProcessingDefinitionIds)\n\t\t.then(extractData);\n};\n\nexport const assignDataProcessingDefinitionsToAssetGroup = (\n\tassetGroupId: number,\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.put(`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitionsById`, dataProcessingDefinitionIds)\n\t\t.then(extractData);\n};\n\nexport const deleteDataProcessingDefinition = (dataProcessingDefinitionId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/dataProcessingDefinitions/${dataProcessingDefinitionId}`);\n};\n\nexport const validateDataProcessingDefinitionForAssetGroup = (\n\tdataProcessingDefinition: DataProcessingDefinition,\n\tassetGroupId: number,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<DataProcessingDefinitionValidation>> => {\n\tconst {definition} = dataProcessingDefinition;\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 10,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitionValidation`,\n\t\t\t{\n\t\t\t\tdefinition\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: sort ? `${sort.property},${sort.direction}` : '',\n\t\t\t\t\tignoreCase: true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAccesses = (\n\tdefinitionId: number\n): Promise<DataProcessingDefinitionAccessList> => {\n\treturn getAxios().get(`/v2/dataProcessingDefinitions/${definitionId}/access`).then(extractData);\n};\n\nexport const addAccessToDataProcessingDefinition = (definitionId: number, accountGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/dataProcessingDefinitions/${definitionId}/access/${accountGroupId}`);\n};\n\nexport const removeAccessToDataProcessingDefinition = (definitionId: number, accountGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/dataProcessingDefinitions/${definitionId}/access/${accountGroupId}`);\n};\n\nexport const getDataProcessingDefinitionEvaluations = (\n\turn: string,\n\tparams: EvaluationsParams\n): Promise<DataProcessingDefinitionEvaluationSeries> =>\n\tgetAxios()\n\t\t.post(`/v2/dataProcessingDefinitionEvaluations/${encodeURIComponent(urn)}`, params)\n\t\t.then(extractData);\n","import {getAxios} from './axios';\n\nexport type AggregatedFact = {\n\taggregatedValue: number | null | undefined;\n\trangeEnd: string;\n\trangeStart: string;\n};\n\nexport type AggregatedFacts = {\n\taggregatedFacts: Array<AggregatedFact> | null | undefined;\n};\n\ntype KpiQueryType = 'QUERY_SUM' | 'QUERY_AVERAGE' | 'QUERY_MAX' | 'QUERY_MIN' | 'QUERY_ALL';\n\nexport type KpiQueryAssetsBy = 'BY_ASSET_ID' | 'BY_SITE_GROUP_ID' | 'BY_ROBOT_SYSTEM_GROUP_ID';\n\nexport type KpiParams = {\n\tkpiName: string;\n\tqueryAssetsBy: KpiQueryAssetsBy;\n\tqueryAssetsById: number;\n\tqueryType: KpiQueryType;\n\tdaysOfWeek?: string;\n\tdateFrom: string;\n\tdateTo: string;\n\ttsFrom?: string;\n\ttsTo?: string;\n\ttimeFrom?: string;\n\ttimeTo?: string;\n\tuserId?: number;\n\texternalUuid?: string | null | undefined;\n\tgroupBy?: string;\n};\n\nexport const getKpiGenericWithTimestamp = (params: KpiParams): Promise<AggregatedFacts> =>\n\tgetAxios()\n\t\t.get('/v2/kpis/facts', {\n\t\t\tparams: {...params}\n\t\t})\n\t\t.then(({data}) => data);\n\nexport const getKpiGeneric = (params: KpiParams): Promise<Array<number>> =>\n\tgetAxios()\n\t\t.get('/v2/kpis/facts/generic', {\n\t\t\tparams: {...params}\n\t\t})\n\t\t.then(({data}) => data);\n","import {getAxios, extractData} from './axios';\n\nconst DAY_MILLIS = 24 * 60 * 60 * 1000;\n\nexport type EventType = 'STATEFUL' | 'ONE_TIME';\n\nexport type Event = {\n\tassetId: number;\n\teventType: EventType;\n\teventKey: string;\n\tpriority: number;\n\toccurredAt: number;\n\tclearedAt: number | null | undefined;\n\tacknowledgeAt: number | null | undefined;\n\ttext: string;\n\textraProperties: Record<string, string>;\n};\n\nexport const fetchEventsByAssetId = (\n\tassetId: number,\n\tfrom?: number,\n\tto?: number,\n\texcludeAcknowledged?: boolean\n): Promise<Array<Event>> => {\n\tconst now = Date.now();\n\tconst defaultTo = now;\n\tconst defaultFrom = now - 28 * DAY_MILLIS;\n\tconst extraParams =\n\t\ttypeof excludeAcknowledged !== 'undefined'\n\t\t\t? {\n\t\t\t\t\texcludeAcknowledged\n\t\t\t\t}\n\t\t\t: {};\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/history/${assetId}`, {\n\t\t\tparams: {\n\t\t\t\tfrom: new Date(from ?? defaultFrom).toISOString(),\n\t\t\t\tto: new Date(to ?? defaultTo).toISOString(),\n\t\t\t\t...extraParams\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.events.map(parseEvent));\n};\n\nexport const fetchOpenStatefulEventsByAssetId = (\n\tassetId: number,\n\texcludeAcknowledged = true\n): Promise<Array<Event>> => {\n\tconst params = {\n\t\texcludeAcknowledged\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/stateful/${assetId}/open`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => (data.events && data.events.map(parseEvent)) || []);\n};\n\nconst parseEvent = (event: any): Event => {\n\treturn {\n\t\t...event,\n\t\toccurredAt: parseIsoDateString(event.occurredAt),\n\t\tclearedAt: parseIsoDateString(event.clearedAt),\n\t\tacknowledgeAt: parseIsoDateString(event.acknowledgeAt)\n\t};\n};\n\nconst parseIsoDateString = (isoString: string | null | undefined): number | null | undefined => {\n\treturn isoString ? new Date(isoString).getTime() : null;\n};\n\n/** @deprecated use acknowledgeStatefulEvent or acknowledgeStatelessEvent instead. */\nexport const acknowledgeEvent = (assetId: number, eventKey: string): Promise<any> => {\n\treturn getAxios().put(`/v2/eventLog/stateful/${assetId}/${encodeURIComponent(eventKey)}/acknowledge`);\n};\n\nexport const acknowledgeStatefulEvent = (assetId: number, eventKey: string): Promise<any> => {\n\treturn getAxios().put(`/v2/eventLog/stateful/${assetId}/${encodeURIComponent(eventKey)}/acknowledge`);\n};\n\nexport const acknowledgeStatelessEvent = (assetId: number, eventKey: string, occurredAt: number): Promise<any> => {\n\treturn getAxios().put(\n\t\t`/v2/eventLog/stateless/${assetId}/${encodeURIComponent(eventKey)}/acknowledge?occurredAt=${new Date(\n\t\t\toccurredAt\n\t\t).toISOString()}`\n\t);\n};\n\nexport const deleteHistoricEvents = (assetId: number, from?: number, to?: number): Promise<any> => {\n\tconst params: Record<string, unknown> = {};\n\tif (from != null) params.from = new Date(from).toISOString();\n\tif (to != null) params.to = new Date(to).toISOString();\n\treturn getAxios().delete(`/v2/eventLog/history/${assetId}`, {params});\n};\n\nexport const fetchOpenEventsOfMultipleAssets = (assetIds: number[]): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/stateful/assets/open`, {\n\t\t\tparams: {\n\t\t\t\tassetId: assetIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchHistoricEventsOfMultipleAssets = (assetIds: number[], from: number, to: number): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/history/assets`, {\n\t\t\tparams: {\n\t\t\t\tassetId: assetIds,\n\t\t\t\tfrom: new Date(from).toISOString(),\n\t\t\t\tto: new Date(to).toISOString()\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.events.map(parseEvent));\n};\n","import {getAxios, extractData} from './axios';\n\ntype Locale = {\n\tid: number;\n\ttag: string;\n};\n\nexport type LocaleLanguageAndCountry = {\n\tlocale: string;\n};\n\nexport const fetchLocales = (): Promise<Array<string>> => {\n\treturn getAxios()\n\t\t.get<Locale[]>('/v2/locales')\n\t\t.then(extractData)\n\t\t.then((result) => result.map((locale) => locale.tag));\n};\n","import {getAxios, extractData} from './axios';\n\nexport type GrantedAccess = {\n\tid: number;\n\taccountGroup: number;\n\trequiredAssetGroups: Array<number>;\n};\n\nexport const fetchGrantedAccesses = (userGroupId: number): Promise<Array<GrantedAccess>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 999,\n\t\tsort: 'id,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${userGroupId}/grantedAccesses`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchGrantedAccessesForAssetGroup = (assetGroupId: number): Promise<Array<GrantedAccess>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 999,\n\t\tsort: 'id,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups/${assetGroupId}/grantedAccesses`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const createGrantedAccess = (\n\tuserGroupId: number,\n\trequiredAssetGroups: Array<number>\n): Promise<GrantedAccess> => {\n\treturn getAxios()\n\t\t.post(`/v2/accountGroups/${userGroupId}/grantedAccesses`, {\n\t\t\trequiredAssetGroups\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const updateGrantedAccess = (accessId: number, updatedGrantedAccess: GrantedAccess): Promise<GrantedAccess> => {\n\treturn getAxios().put(`/v2/grantedAccesses/${accessId}`, updatedGrantedAccess).then(extractData);\n};\n\nexport const deleteGrantedAccess = (accessId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/grantedAccesses/${accessId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport const fetchNamedQueries = (): Promise<Array<any>> => {\n\treturn getAxios().get('/beta/namedQuery').then(extractData);\n};\n\nexport const executeNamedQuery = (id: string, params: Record<string, any>): Promise<Array<any>> => {\n\treturn getAxios()\n\t\t.put(`/beta/namedQuery/${id}/execute`, params)\n\t\t.then((result) => {\n\t\t\treturn extractData(result);\n\t\t});\n};\n","import {jwtDecode} from 'jwt-decode';\nimport {getAxios, extractData} from './axios';\n\nexport type AuthInfo = {\n\taccountNumber: string;\n\tprincipal: string;\n\taccessToken: string;\n\texpiresAt: number;\n\trefreshToken: string;\n\ttenant: string;\n\tusesOAuth?: boolean;\n};\n\nexport type NGCoreJWTClaims = {\n\texp: number;\n\tjti: string;\n\ttenant: string;\n\tclient_id: string;\n\tuser_name: string;\n\taccount_number: string;\n\tscope: string[];\n};\n\nexport type AuthorizationServerOption = {\n\tname: string;\n\tdisplayName: string;\n\tauthorizationUri: string;\n};\n\nexport type AuthorizationOptions = {\n\tauthorizationServers: Array<AuthorizationServerOption>;\n};\n\nconst OAUTH2_CLIENT_USERNAME = 'OAUTH2_CLIENT';\nconst OAUTH2_CLIENT_PASSWORD = OAUTH2_CLIENT_USERNAME;\n\nexport const requestToken = (principal: string, password: string): Promise<AuthInfo> => {\n\tconst params = new URLSearchParams({\n\t\tgrant_type: 'password',\n\t\tusername: principal,\n\t\tpassword\n\t}).toString();\n\treturn getAxios()\n\t\t.post('/v2/oauth/token', params, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tauth: {\n\t\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then(({access_token, expires_in, refresh_token}) => createAuthInfo(access_token, expires_in, refresh_token));\n};\n\nexport const refreshToken = (token: string): Promise<AuthInfo> => {\n\tconst params = new URLSearchParams({\n\t\tgrant_type: 'refresh_token',\n\t\trefresh_token: token\n\t}).toString();\n\treturn getAxios()\n\t\t.post('/v2/oauth/token', params, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tauth: {\n\t\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then(({access_token, expires_in, refresh_token}) => createAuthInfo(access_token, expires_in, refresh_token));\n};\n\nconst revokeToken = (token: string, tokenTypeHint: string): Promise<any> => {\n\tconst params = new URLSearchParams({\n\t\ttoken: token,\n\t\ttoken_type_hint: tokenTypeHint\n\t}).toString();\n\treturn getAxios().post('/v2/oauth/revoke', params, {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t},\n\t\tauth: {\n\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t}\n\t});\n};\n\nexport const revokeAccessToken = (accessToken: string): Promise<any> => {\n\treturn revokeToken(accessToken, 'access_token');\n};\n\nexport const revokeRefreshToken = (accessToken: string): Promise<any> => {\n\treturn revokeToken(accessToken, 'refresh_token');\n};\n\nconst createAuthInfo = (accessToken: string, expiresIn: number, refreshToken: string): AuthInfo => {\n\tconst {account_number, user_name, tenant} = jwtDecode<NGCoreJWTClaims>(accessToken);\n\treturn {\n\t\taccountNumber: account_number,\n\t\tprincipal: user_name,\n\t\taccessToken,\n\t\texpiresAt: new Date().getTime() + expiresIn * 1000,\n\t\trefreshToken,\n\t\ttenant\n\t};\n};\n\nexport const fetchAuthorizationOptions = (): Promise<AuthorizationOptions> => {\n\treturn getAxios().get(`/v2/authorizationOptions`).then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type PropertyType = 'STRING' | 'TEXT' | 'DATE' | 'LONG' | 'DOUBLE' | 'BOOLEAN' | 'IP' | 'GEO';\n\nexport type EntityTarget = 'ASSET' | 'ASSET_GROUP' | 'ACCOUNT' | 'ACCOUNT_GROUP' | 'DATAPOINT';\n\nexport type Property = {\n\tkey: string;\n\ttype: PropertyType;\n\tentityTargets: Array<EntityTarget>;\n\tdeletable: boolean;\n\taddToAll: boolean;\n\tunique?: boolean;\n\trequired?: boolean;\n\tfinal?: boolean;\n\tminLength?: number | null;\n\tmaxLength?: number | null;\n\tregularExpression?: string | null;\n\tallowedValues?: string[] | null;\n};\n\nexport type PropertyValues = Record<string, (number | boolean | string) | null | undefined>;\n\nexport const fetchProperties = (): Promise<Array<Property>> => {\n\treturn getAxios()\n\t\t.get('/v2/properties?size=2000')\n\t\t.then(extractData)\n\t\t.then((response) => response.content);\n};\n\nexport const getPropertyById = (propertyKey: string): Promise<Property> => {\n\treturn getAxios().get(`/v2/properties/${propertyKey}`).then(extractData);\n};\n\nexport const createProperty = (property: Property): Promise<Property> => {\n\treturn getAxios().post('/v2/properties', property).then(extractData);\n};\n\nexport const updateProperty = (property: Property): Promise<Property> => {\n\treturn getAxios().put(`/v2/properties/${property.key}`, property).then(extractData);\n};\n\nexport const deleteProperty = (property: Property): Promise<any> => {\n\treturn getAxios().delete(`/v2/properties/${property.key}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RoleNew = {\n\tname: string;\n\tdescription?: string;\n\tlicenseName?: string | null;\n\tlicenseDisplayName?: string | null;\n};\n\nexport type Role = {\n\tid: number;\n\t/** Whether the current user can assign this role. If undefined, the role is considered assignable. */\n\tassignable?: boolean;\n} & RoleNew;\n\nexport const fetchRoleById = (id: number): Promise<Role> => {\n\treturn getAxios().get(`/v2/roles/${id}`).then(extractData);\n};\n\nexport const fetchRoleByIds = (ids: number[]): Promise<Array<Role>> => {\n\treturn getAxios()\n\t\t.get(`/v2/roles`, {\n\t\t\tparams: {\n\t\t\t\tid: ids,\n\t\t\t\tpage: 0,\n\t\t\t\tsize: ids.length\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchRolesForLicense = (licenseName: string): Promise<Array<Role>> => {\n\treturn getAxios().get(`/v2/licenses/${licenseName}/roles`).then(extractData);\n};\n\nexport const createRole = (item: RoleNew): Promise<Role> => {\n\treturn getAxios().post(`/v2/roles`, item).then(extractData);\n};\n\nexport const createRoleWithLicense = (item: RoleNew, licenseName: string): Promise<Role> => {\n\treturn getAxios().post(`/v2/licenses/${licenseName}/roles`, item).then(extractData);\n};\n\nexport const updateRole = (item: Role): Promise<Role> => {\n\treturn getAxios().put(`/v2/roles/${item.id}`, item).then(extractData);\n};\n\nexport const deleteRole = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/roles/${id}`);\n};\n\nexport const fetchRoles = (): Promise<Array<Role>> => {\n\treturn getAxios()\n\t\t.get('/v2/roles', {\n\t\t\tparams: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchAuthoritiesOfRole = (id: number): Promise<Array<string>> => {\n\treturn getAxios().get(`/v2/roles/${id}/authorities`).then(extractData);\n};\n\nexport const setAuthoritiesOfRole = (id: number, authorities: Array<string>): Promise<Array<string>> => {\n\treturn getAxios().put(`/v2/roles/${id}/authorities`, authorities).then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RuleDefinitionGeoPosition = {\n\tlatitude: number;\n\tlongitude: number;\n};\n\nexport type RuleDefinitionConfig = {\n\tid: string;\n\tassetId?: number;\n\tinternal: boolean;\n\tcheckType: string;\n\tthresholdValue?: number;\n\tupperThreshold?: boolean;\n\tgeneratedEventKey: string;\n\tdatapointKeys?: Array<string>;\n\tgeneratedEventPriority: number;\n\tdriftType?: string;\n\twindowSizeMs?: number;\n\tupperLimit?: number;\n\tlowerLimit?: number;\n\tnumberOfEvents?: number;\n\tdurationInSeconds?: number;\n\toperation?: string;\n\teventKeys?: Array<string>;\n\tvalue?: string | number | boolean;\n\tvalueDatatype?: string;\n\tepsilon?: number;\n\tgeoFence?: Array<RuleDefinitionGeoPosition>;\n\tthresholdEnter?: number;\n\tthresholdLeave?: number;\n\ttimeFrameSizeMillis?: number;\n};\n\nexport type RuleDefinition = {\n\tid: number;\n\tname: string;\n\tconfig: RuleDefinitionConfig;\n\tdisplayName?: string;\n\tdirectlyAssigned: boolean;\n};\n\nexport type EventTemplateMapping = {\n\tid?: number | null | undefined;\n\truleId?: string | null | undefined;\n\ttemplateName: string;\n\teventKey: string;\n\teventStatus: 'COME' | 'GONE';\n\tlocale: string | null | undefined;\n\tmailAddresses: Array<string> | null | undefined;\n};\n\nexport const fetchAssignedAssetRules = (assetId: number): Promise<Array<RuleDefinition>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/ruleDefinitions`).then(extractData);\n};\n\nexport const fetchAssignedAssetGroupRules = (assetGroupId: number): Promise<Array<RuleDefinition>> => {\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/ruleDefinitions`).then(extractData);\n};\n\nexport const createRule = (rule: RuleDefinition): Promise<RuleDefinition> => {\n\treturn getAxios().post('/v2/ruleDefinitions/', rule).then(extractData);\n};\n\nexport const updateRule = (rule: RuleDefinition): Promise<RuleDefinition> => {\n\treturn getAxios().put(`/v2/ruleDefinitions/${rule.id}`, rule).then(extractData);\n};\n\nexport const assignAssetRules = (assetId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/ruleDefinitionsById`, ruleIds).then(extractData);\n};\n\nexport const assignAssetGroupRules = (assetGroupId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroupId}/ruleDefinitionsById`, ruleIds).then(extractData);\n};\n\nexport const unassignAssetRules = (assetId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn fetchAssignedAssetRules(assetId).then((assignedRules) =>\n\t\tassignAssetRules(\n\t\t\tassetId,\n\t\t\tassignedRules.map((r) => r.id).filter((id) => !ruleIds.includes(id))\n\t\t)\n\t);\n};\n\nexport const unassignAssetGroupRules = (assetGroupId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn fetchAssignedAssetGroupRules(assetGroupId).then((assignedRules) =>\n\t\tassignAssetGroupRules(\n\t\t\tassetGroupId,\n\t\t\tassignedRules.map((r) => r.id).filter((id) => !ruleIds.includes(id))\n\t\t)\n\t);\n};\n\nexport const deleteRule = (ruleId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/ruleDefinitions/${ruleId}`);\n};\n\nexport const fetchRuleByName = (name: string): Promise<RuleDefinition> => {\n\treturn getAxios().get(`/v2/ruleDefinitions/name/${name}`).then(extractData);\n};\n\n/** @deprecated unused in NGUI */\nexport const checkRuleNameUniquenes = (name: string): Promise<boolean> => {\n\tif (!name || !name.length) {\n\t\treturn Promise.resolve(true);\n\t}\n\n\treturn fetchRuleByName(name)\n\t\t.then(() => false)\n\t\t.catch(() => true);\n};\n\nexport const fetchEventTemplateMappingsOfRule = (ruleUuid: string): Promise<Array<EventTemplateMapping>> => {\n\treturn getAxios()\n\t\t.get('/v1/eventTemplateMapping', {\n\t\t\tparams: {\n\t\t\t\truleId: ruleUuid\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((eventTemplateMappings) => eventTemplateMappings.content);\n};\n\nexport const createEventTemplateMapping = (e: EventTemplateMapping): Promise<EventTemplateMapping> => {\n\treturn getAxios().post('/v1/eventTemplateMapping', e).then(extractData);\n};\n\nexport const deleteAllEventTemplateMappingsOfRule = (ruleUuid: string): Promise<any> => {\n\treturn getAxios().delete(`/v1/eventTemplateMapping/ruleId/${ruleUuid}`);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type NotificationTemplateAccess = {\n\taccountGroupIds: number[];\n};\n\nexport type NotificationTemplateNew = {\n\tname: string;\n\tdisplayName: string;\n\ttenant: string;\n\tlocale: string | null | undefined;\n\tsubject: string;\n\ttext: string;\n\tscope: 'ACCOUNTS' | 'CONDITION_MONITORING';\n\taccountGroupsWithAccess?: number[];\n};\n\nexport type NotificationTemplate = NotificationTemplateNew & {\n\tid: number;\n};\n\nexport const fetchEmailTemplateById = (id: number): Promise<NotificationTemplate> => {\n\treturn getAxios().get(`/v2/emailTemplates/${id}`).then(extractData);\n};\n\nexport const fetchEmailTemplateAccessById = (id: number): Promise<NotificationTemplateAccess> => {\n\treturn getAxios().get(`/v2/emailTemplates/${id}/access`).then(extractData);\n};\n\nexport const fetchEmailTemplates = (params: Record<string, any>): Promise<Array<NotificationTemplate>> => {\n\treturn getAxios()\n\t\t.get('/v2/emailTemplates', {\n\t\t\tparams: {\n\t\t\t\tscope: 'CONDITION_MONITORING',\n\t\t\t\t...params\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((emailTemplates) => emailTemplates.content);\n};\n\nexport const createEmailTemplate = (notificationTemplate: NotificationTemplateNew): Promise<any> => {\n\treturn getAxios().post('/v2/emailTemplates', notificationTemplate).then(extractData);\n};\n\nexport const updateEmailTemplate = (notificationTemplate: NotificationTemplate): Promise<any> => {\n\treturn getAxios().put(`/v2/emailTemplates/${notificationTemplate.id}`, notificationTemplate);\n};\n\nexport const deleteEmailTemplate = (notificationTemplateId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/emailTemplates/${notificationTemplateId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type Subscription = {\n\tsubscriptionId: string;\n\tsubscriptionUris: Array<string>;\n};\n\nexport const subscribeAssets = (\n\tassetIds: Array<number>,\n\ttypes: Array<string> = ['datapointValuesReceived', 'eventUpdate', 'statefulEvent']\n): Promise<Subscription> => {\n\treturn getAxios()\n\t\t.post('/v2/subscriptions', {\n\t\t\tassetIds,\n\t\t\ttypes,\n\t\t\tdurable: false\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const subscribeAssetGroups = (\n\tassetGroupIds: Array<number>,\n\ttypes: Array<string> = ['datapointValuesReceived', 'eventUpdate', 'statefulEvent']\n): Promise<Subscription> => {\n\treturn getAxios()\n\t\t.post('/v2/subscriptions', {\n\t\t\tassetGroupIds,\n\t\t\ttypes,\n\t\t\tdurable: false\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const unsubscribe = (subscriptionId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/subscriptions/${subscriptionId}`);\n};\n","import {getAxios, extractData} from './axios';\nimport {Unit} from './datapoint';\n\nexport const fetchUnits = (): Promise<Array<Unit>> => {\n\treturn getAxios().get(`/v2/units`).then(extractData);\n};\n\nexport const addUnit = (unit: Unit): Promise<any> => {\n\treturn getAxios().put(`/v2/units/${unit.name}`, unit).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\nimport type {UserGroup} from './userGroup';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {paginationSettingsToQueryParams} from './pagination';\nimport {PropertyValues} from './property';\nimport {License} from './licenses';\nimport {LocaleLanguageAndCountry} from './locale';\n\nexport type UserState = 'ACTIVE' | 'INACTIVE' | 'TERMINATED' | 'TERMS_ACCEPTANCE_PENDING' | 'INVITED';\n\ntype UserPrincipals = {\n\tUSERNAME?: Array<{\n\t\tname: string;\n\t}>;\n\tEMAIL?: Array<{\n\t\tname: string;\n\t}>;\n\tOPEN_ID_CONNECT_LINK?: Array<{\n\t\tname: string;\n\t}>;\n};\n\nexport type UserNew = {\n\tdisplayName?: string | undefined;\n\tname?: string | undefined;\n\tprincipals: {\n\t\tUSERNAME?: [{name: string}];\n\t\tEMAIL: [{name: string}];\n\t};\n\tinitialState?: UserState;\n\tlocale: string;\n\ttimezone?: string;\n\taccountGroupIds?: Array<number>;\n\tproperties?: PropertyValues;\n};\n\nexport type User = {\n\tid: number;\n\tnumber: string;\n\tstate: UserState;\n\tprincipals: UserPrincipals;\n\tauthorities: Array<string>;\n\tproperties: PropertyValues;\n\tlocale: string;\n\ttimezone: string;\n\tdisplayName: string;\n\t/** @deprecated name field is deprecated, use displayName instead. */\n\tname?: string | undefined;\n\taccountGroupIds: Array<number>;\n\troleIds: Array<number>;\n\tlicense?: License;\n\tlastSuccessfulLogin: string | null | undefined;\n\tpendingInvitation?: boolean;\n\ttwoFactorResetPossible?: boolean;\n\ttwoFactorDeviceRegisteredCount?: number;\n};\n\nexport const fetchUserByAccountNumber = (accountNumber: string): Promise<User> => {\n\treturn getAxios().get(`/v2/accounts/${accountNumber}`).then(extractData);\n};\n\nexport const fetchMe = (): Promise<User> => {\n\treturn getAxios().get(`/v2/accounts/me`).then(extractData);\n};\n\nexport const fetchUsers = (paginationSettings: PaginationSettings): Promise<Pageable<User>> => {\n\treturn getAxios()\n\t\t.get('/v2/accounts', {params: paginationSettingsToQueryParams(paginationSettings)})\n\t\t.then(extractData);\n};\n\nexport const createUser = (user: UserNew): Promise<User> => {\n\tconst userToCreate: Record<string, unknown> = {\n\t\tdisplayName: user.displayName,\n\t\tname: user.name,\n\t\tinitialState: user.initialState,\n\t\temailAddress: user.principals.EMAIL[0].name,\n\t\tlocale: user.locale,\n\t\ttimezone: user.timezone,\n\t\taccountGroupIds: user.accountGroupIds,\n\t\tproperties: user.properties\n\t};\n\n\tif (user.principals.USERNAME && user.principals.USERNAME[0].name) {\n\t\tuserToCreate.username = user.principals.USERNAME[0].name;\n\t}\n\n\treturn getAxios().post('/v2/accounts/registrationsWithEmail', userToCreate).then(extractData);\n};\n\nexport const inviteUser = (accountNumber: string, initialState: UserState): Promise<void> => {\n\treturn getAxios().post(`/v2/accounts/${accountNumber}/invite`, {initialState});\n};\n\nexport const updateUser = (user: User): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/${user.number}`, user).then(extractData);\n};\n\nexport const updateMe = (user: User): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/me`, user).then(extractData);\n};\n\nexport const searchUsers = (query: string, paginationSettings: PaginationSettings): Promise<Pageable<User>> => {\n\tconst {page, size, sort} = paginationSettings;\n\treturn getAxios()\n\t\t.get('/v2/accounts/search', {\n\t\t\tparams: {\n\t\t\t\tq: query,\n\t\t\t\tpage: page || 0,\n\t\t\t\tsize,\n\t\t\t\tsort: `${sort.property},${sort.direction}`,\n\t\t\t\tignoreCase: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchUserGroupsOfUser = (accountNumber: string): Promise<Array<UserGroup>> => {\n\treturn getAxios().get(`/v2/accountGroups?accountNumber=${accountNumber}`).then(extractData);\n};\n\nexport const setUserPassword = (token: string, password: string): Promise<any> => {\n\treturn getAxios().put(`/v2/accountPassword`, {\n\t\ttoken,\n\t\tpassword\n\t});\n};\n\nexport const deleteUser = (accountNumber: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/accounts/${accountNumber}`);\n};\n\nexport const deleteMyAccount = (): Promise<any> => {\n\treturn getAxios().delete(`/v2/accounts/me`);\n};\n\nexport const triggerPasswordReset = (email: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountPasswordReset`, {\n\t\temail\n\t});\n};\n\nexport const triggerEmailChange = (\n\taccountNumber: string,\n\toldEmailAddress: string,\n\tnewEmailAddress: string\n): Promise<any> => {\n\treturn getAxios().post(`/v2/accounts/${accountNumber}/emailChange `, {\n\t\toldEmailAddress,\n\t\tnewEmailAddress\n\t});\n};\n\nexport const changeEmail = (token: string): Promise<any> => {\n\treturn getAxios().post('/v2/emailChange', {\n\t\ttoken\n\t});\n};\n\nexport const updateUserGroupsOfUser = (\n\taccountNumber: string,\n\taddedUserGroupIds: Array<number>,\n\tremovedUserGroupIds: Array<number>\n): Promise<any> => {\n\tconst changes = [];\n\n\tif (addedUserGroupIds.length) {\n\t\tchanges.push({\n\t\t\taction: 'ADD',\n\t\t\tgroupIds: addedUserGroupIds\n\t\t});\n\t}\n\n\tif (removedUserGroupIds.length) {\n\t\tchanges.push({\n\t\t\taction: 'REMOVE',\n\t\t\tgroupIds: removedUserGroupIds\n\t\t});\n\t}\n\n\treturn getAxios().patch(`/v2/accounts/${accountNumber}/groups`, {\n\t\tchanges\n\t});\n};\n\nexport const fetchRolesOfUser = (accountNumber: string): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/accounts/${accountNumber}/roles`).then(extractData);\n};\n\nexport const updateRolesOfUser = (accountNumber: string, roleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/accounts/${accountNumber}/roles`, roleIds).then(extractData);\n};\n\nexport const updateLocaleOfUser = (locale: LocaleLanguageAndCountry): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/me/locale`, locale).then(extractData);\n};\n\nexport const acceptEULA = (): Promise<User> => {\n\treturn getAxios()\n\t\t.put(`/v2/accounts/me/acceptTerms`)\n\t\t.then(() => fetchMe());\n};\n\nexport const setUserState = (accountNumber: string, state: UserState): Promise<any> =>\n\tgetAxios().put<{\n\t\tstate: UserState;\n\t}>(`/v2/accounts/${accountNumber}/state`, {\n\t\tstate\n\t});\n\nexport const delete2FADevice = (accountNumber: string): Promise<User> => {\n\treturn getAxios().delete(`/v2/accounts/${accountNumber}/authenticationDevices`);\n};\n","import {getAxios, extractData} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {PropertyValues} from './property';\nimport {paginationSettingsToQueryParams} from './pagination';\n\nexport type NewUserGroup = {\n\tname: string;\n\tdescription?: string;\n\tdisplayName?: string;\n\tproperties?: PropertyValues;\n\taccountGroupsWithAccess?: Array<number>;\n};\n\nexport type UserGroup = NewUserGroup & {\n\tid: number;\n\troleIds?: Array<number>;\n};\n\nexport const fetchUserGroups = (paginationSettings: PaginationSettings): Promise<Pageable<UserGroup>> => {\n\treturn getAxios()\n\t\t.get('/v2/accountGroups', {params: paginationSettingsToQueryParams(paginationSettings)})\n\t\t.then(extractData);\n};\n\nexport const fetchUserGroupById = (id: number): Promise<UserGroup> => {\n\treturn getAxios().get(`/v2/accountGroups/${id}`).then(extractData);\n};\n\nexport const createUserGroup = (usergroup: NewUserGroup): Promise<UserGroup> => {\n\treturn getAxios().post(`/v2/accountGroups`, usergroup).then(extractData);\n};\n\nexport const updateUserGroup = (usergroup: UserGroup): Promise<UserGroup> => {\n\treturn getAxios().put(`/v2/accountGroups/${usergroup.id}`, usergroup).then(extractData);\n};\n\nexport const deleteUserGroup = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/accountGroups/${id}`);\n};\n\nexport const searchUserGroups = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<UserGroup>> => {\n\tconst params = {\n\t\tq: query,\n\t\tignoreCase: true,\n\t\t...paginationSettingsToQueryParams(paginationSettings)\n\t};\n\treturn getAxios()\n\t\t.get('/v2/accountGroups/search', {\n\t\t\tparams,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchRoleIdsOfUserGroup = (id: number): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/accountGroups/${id}/roles`).then(extractData);\n};\n\nexport const updateRoleIdsOfUserGroup = (id: number, roleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/accountGroups/${id}/roles`, roleIds).then(extractData);\n};\n\nexport const assignUsersToUserGroupByIds = (usergroup: UserGroup, userIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'ADD',\n\t\taccountIds: userIds\n\t});\n};\n\nexport const assignUsersToUserGroupByQuery = (usergroup: UserGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'ADD',\n\t\tquery\n\t});\n};\n\nexport const unassignUsersFromUserGroupByIds = (usergroup: UserGroup, userIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'REMOVE',\n\t\taccountIds: userIds\n\t});\n};\n\nexport const unassignUsersFromUserGroupByQuery = (usergroup: UserGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'REMOVE',\n\t\tquery\n\t});\n};\n\nexport const fetchAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/assetGroupsAccesses`)\n\t\t.then(extractData)\n\t\t.then((result) => result.assetGroupIds);\n};\n\nexport const addAccess = (accountGroupId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroupId}/access/${accountGroupId}`);\n};\n\nexport const deleteAccess = (accountGroupId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${assetGroupId}/access/${accountGroupId}`);\n};\n\nexport const fetchAccountGroupAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/accountGroupsAccesses`)\n\t\t.then(extractData)\n\t\t.then((result) => result.accountGroupIds);\n};\n\nexport const fetchInverseAccountGroupAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/access`)\n\t\t.then(extractData)\n\t\t.then((result) => result.accountGroupIds);\n};\n\nexport const addAccountGroupAccess = (\n\tgivingAccessAccountGroupId: number,\n\treceivingAccessAccountGroupId: number\n): Promise<any> => {\n\treturn getAxios().put(`/v2/accountGroups/${givingAccessAccountGroupId}/access/${receivingAccessAccountGroupId}`);\n};\n\nexport const deleteAccountGroupAccess = (\n\tgivingAccessAccountGroupId: number,\n\treceivingAccessAccountGroupId: number\n): Promise<any> => {\n\treturn getAxios().delete(`/v2/accountGroups/${givingAccessAccountGroupId}/access/${receivingAccessAccountGroupId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type License = {\n\tname: string;\n\tdisplayName: string;\n\tdescription: string;\n};\n\nexport const fetchLicenses = (): Promise<Array<License>> => {\n\treturn getAxios().get(`v2/licenses`).then(extractData);\n};\n\nexport const fetchLicenseByName = (licenseName: string): Promise<License> => {\n\treturn getAxios().get(`v2/licenses/${licenseName}`).then(extractData);\n};\n\nexport const createLicense = (license: License): Promise<License> => {\n\treturn getAxios().post(`v2/licenses`, license).then(extractData);\n};\n\nexport const updateLicense = (license: License): Promise<License> => {\n\treturn getAxios().put(`/v2/licenses/${license.name}`, license).then(extractData);\n};\n\nexport const deleteLicense = (licenseName: string): Promise<any> => {\n\treturn getAxios().delete(`v2/licenses/${licenseName}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport const getVersion = (): Promise<string> => {\n\treturn getAxios()\n\t\t.get('/v2/version', {\n\t\t\theaders: {\n\t\t\t\tAccept: 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RemoteServiceConnectionInfo = {\n\taccountNumber: string;\n\taccountConnected: boolean | null | undefined;\n\taccountVpnIp: string | null | undefined;\n\tgatewayUrn: string;\n\tgatewayConnected: boolean;\n\tgatewayVpnIp: string | null | undefined;\n\ttargetNetwork: string | null | undefined;\n\tcreatedAt: string;\n};\n\nexport const initializeRemoteServiceConnection = (gatewayUrn: string, targetNetwork: string): Promise<any> =>\n\tgetAxios().put(\n\t\t`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`,\n\t\ttargetNetwork\n\t\t\t? {\n\t\t\t\t\ttargetNetwork\n\t\t\t\t}\n\t\t\t: {}\n\t);\n\nexport const fetchRemoteServiceConnectionInfo = (gatewayUrn: string): Promise<RemoteServiceConnectionInfo> =>\n\tgetAxios().get(`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`).then(extractData);\n\nexport const terminateRemoteServiceConnection = (gatewayUrn: string): Promise<any> =>\n\tgetAxios().delete(`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`);\n","import {getAxios, extractData} from './axios';\n\nexport type WriteCommand = {\n\tdatapointKey: string;\n\tvalue: string;\n\treadBack: boolean;\n};\n\nexport type PreparedCommand = {\n\tid?: number;\n\tname: string;\n\texpirySeconds: number;\n\tcontent: {\n\t\ttype: string;\n\t\tassetUrn: string;\n\t\ttransmitImmediately: boolean;\n\t\twriteOperations: Array<WriteCommand>;\n\t};\n};\n\nexport const fetchPreparedCommands = (gatewayId: number): Promise<Array<PreparedCommand>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/preparedCommands`).then(extractData);\n};\n\nexport const createPreparedCommand = (preparedCommand: PreparedCommand): Promise<PreparedCommand> => {\n\treturn getAxios().post(`/v2/preparedCommands`, preparedCommand).then(extractData);\n};\n\nexport const updatePreparedCommand = (preparedCommand: PreparedCommand): Promise<PreparedCommand> => {\n\treturn getAxios().put(`/v2/preparedCommands/${preparedCommand.id}`, preparedCommand).then(extractData);\n};\n\nexport const deletePreparedCommand = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/preparedCommands/${id}`);\n};\n\nexport const assignPreparedCommandsToGateway = (gatewayId: number, preparedCommandIds: Array<number>): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/${gatewayId}/preparedCommandsById`, preparedCommandIds);\n};\n\nexport const executePreparedCommand = (gatewayId: number, preparedCommand: PreparedCommand): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/gateways/${gatewayId}/preparedCommands/${preparedCommand.id}/execution`)\n\t\t.then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type CommandType = {\n\tid: number;\n\tsentAt: Date;\n\texpiresAt: Date;\n\tcontent: {\n\t\ttype: string;\n\t};\n};\n\nexport type CommandResult = {\n\tid: number;\n\treceivedAt: Date;\n\tcontent: {\n\t\ttype: string;\n\t\terrorCode: number;\n\t\tproperties: any;\n\t\titems: Array<any> | null | undefined;\n\t};\n};\n\nexport const invokeDiscoveryCommand = (gatewayId: number, discoveryParameters: any): Promise<CommandType> => {\n\tconst discoveryPayload = {\n\t\texpirySeconds: 60,\n\t\tcontent: {\n\t\t\ttype: 'discoveryCommand',\n\t\t\tdiscoveryParameters\n\t\t}\n\t};\n\treturn getAxios().post(`/v2/gateways/${gatewayId}/commands`, discoveryPayload).then(extractData);\n};\n\nexport const fetchSentCommandResponses = (gatewayId: number, commandId: number): Promise<Array<CommandResult>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/commands/${commandId}/responses`).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type AuthorizationServer = {\n\tname: string;\n\tdisplayName: string;\n\tclientId: string;\n\tclientSecret: string;\n\tauthorizationUri: string;\n\tredirectUri: string;\n\ttokenUri: string;\n\tuiCallbackUri: string;\n\tuserinfoUri: string;\n\trevocationUri: string;\n\tjwksUri: string;\n\tscope: string | null | undefined;\n};\n\nexport type AuthorizationServerRule = {\n\tname: string;\n\tdisplayName: string;\n\tacceptedEmailHostname: string;\n\tacceptedEmailPattern: string;\n\taccountGroupId: number;\n\tdisableEmailVerifiedCheck: boolean;\n\twebhookUri: string | null | undefined;\n};\n\nexport const createOrUpdateAuthorizationServer = (\n\tauthorizationServer: AuthorizationServer\n): Promise<AuthorizationServer> =>\n\tgetAxios().put(`/v2/authorizationServers/${authorizationServer.name}`, authorizationServer).then(extractData);\n\nexport const deleteAuthorizationServer = (name: string): Promise<any> =>\n\tgetAxios().delete(`/v2/authorizationServers/${name}`);\n\nexport const fetchAuthorizationServer = (name: string): Promise<AuthorizationServer> =>\n\tgetAxios().get(`/v2/authorizationServers/${name}`).then(extractData);\n\nexport const fetchAuthorizationServers = (): Promise<Array<AuthorizationServer>> =>\n\tgetAxios().get('/v2/authorizationServers').then(extractData);\n\nexport const createOrUpdateAuthorizationServerRule = (\n\tauthorizationServerName: string,\n\trule: AuthorizationServerRule\n): Promise<AuthorizationServerRule> =>\n\tgetAxios().put(`/v2/authorizationServers/${authorizationServerName}/rules/${rule.name}`, rule).then(extractData);\n\nexport const fetchAuthorizationServerRules = (\n\tauthorizationServerName: string\n): Promise<Array<AuthorizationServerRule>> =>\n\tgetAxios().get(`/v2/authorizationServers/${authorizationServerName}/rules`).then(extractData);\n\nexport const fetchAuthorizationServerRule = (\n\tauthorizationServerName: string,\n\truleName: string\n): Promise<AuthorizationServerRule> =>\n\tgetAxios().get(`/v2/authorizationServers/${authorizationServerName}/rules/${ruleName}`).then(extractData);\n\nexport const deleteAuthorizationServerRule = (authorizationServerName: string, ruleName: string): Promise<any> =>\n\tgetAxios().delete(`/v2/authorizationServers/${authorizationServerName}/rules/${ruleName}`);\n","import {extractData, getAxios} from './axios';\nimport {Asset, fetchAssetGroupIds} from './asset';\nimport {AssetGroup, fetchAssetGroupsById} from './assetGroup';\n\nexport type RelationshipConstraintTypes =\n\t| 'ASSETS_MAY_ONLY_BE_MEMBER_OF_ASSET_GROUPS_WITH_DEFINITIONS'\n\t| 'ASSET_GROUPS_MAY_ONLY_BE_CHILD_OF_ASSET_GROUPS_WITH_DEFINITIONS'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_LEAST_ONE_ASSET_GROUP'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_MOST_ONE_ASSET_GROUP'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_LEAST_ONE_ASSET_GROUP_WITH_DEFINITIONS'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_MOST_ONE_ASSET_GROUP_WITH_DEFINITIONS'\n\t| 'ASSET_GROUPS_MUST_HAVE_PARENT'\n\t| 'ASSET_GROUPS_WITH_DEFINITIONS_MUST_HAVE_PARENT';\n\nexport type RelationshipConstraintError = {\n\tconstraintType: RelationshipConstraintTypes;\n\tname: string;\n\tobjectIds: Array<number>;\n\tsubjectIds: Array<number>;\n};\n\nexport type RelationshipConstraintErrorDereferenced = {\n\tconstraintType: RelationshipConstraintTypes;\n\tname: string;\n\tobjectNames: Array<string>;\n};\n\nconst dryRunHeader = {\n\theaders: {\n\t\t'X-Dry-Run': true\n\t}\n};\n\n/** asset **/\nexport const createAssetDryRun = (asset: Asset): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/${asset.isGateway ? 'gateways' : 'assets'}`, asset, dryRunHeader)\n\t\t.then(extractData);\n};\n\nexport const updateAssetDryRun = (asset: Asset): Promise<any> => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst {assetGroupIds, ...formData} = asset;\n\treturn getAxios()\n\t\t.put(`/v2/${asset.isGateway ? 'gateways' : 'assets'}/${asset.id}`, formData, dryRunHeader)\n\t\t.then(extractData);\n};\n\nconst assignAssetGroupDryRun = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/groups/${assetGroupId}`, null, dryRunHeader);\n};\n\nconst unassignAssetGroupDryRun = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/groups/${assetGroupId}`, dryRunHeader);\n};\n\nexport const updateAssetGroupIdsDryRun = async (assetId: number, assetGroupIds: Array<number>): Promise<any> => {\n\tconst oldAssetGroupIds = await fetchAssetGroupIds(assetId);\n\tlet availableOldAssetGroupIds: number[] = [];\n\tif (oldAssetGroupIds.length > 0) {\n\t\tavailableOldAssetGroupIds = (await fetchAssetGroupsById(oldAssetGroupIds)).map(({id}) => id);\n\t}\n\tconst addedAssetGroupIds = assetGroupIds.filter((id) => !oldAssetGroupIds.includes(id));\n\tconst removedAssetGroupIds = availableOldAssetGroupIds.filter((id) => assetGroupIds && !assetGroupIds.includes(id));\n\treturn Promise.all([\n\t\t...addedAssetGroupIds.map((assetGroupId) => assignAssetGroupDryRun(assetId, assetGroupId)),\n\t\t...removedAssetGroupIds.map((assetGroupId) => unassignAssetGroupDryRun(assetId, assetGroupId))\n\t]);\n};\n\n/** asset group **/\nexport const createAssetGroupDryRun = (assetGroup: AssetGroup): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/assetGroupDefinitions/${assetGroup.definitionId}/groups`, assetGroup, dryRunHeader)\n\t\t.then(extractData);\n};\n\nexport const updateAssetGroupDryRun = (assetGroup: AssetGroup): Promise<any> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroup.id}`, assetGroup, dryRunHeader).then(extractData);\n};\n\nexport const deleteAssetGroupDryRun = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${id}`, dryRunHeader);\n};\n\n/** asset assignment **/\nexport const assignAssetsByIdsDryRun = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'ADD',\n\t\t\tassetIds\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const assignAssetsByQueryDryRun = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'ADD',\n\t\t\tquery\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const unassignAssetsByIdsDryRun = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'REMOVE',\n\t\t\tassetIds\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const unassignAssetsByQueryDryRun = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'REMOVE',\n\t\t\tquery\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n","import {extractData, getAxios} from './axios';\n\ntype FieldType = 'text' | 'boolean' | 'long';\n\nexport type ShadowKeys = Record<string, FieldType>;\n\nexport type Context = 'assets' | 'assetGroups' | 'accounts' | 'accountGroups';\n\nexport function fetchShadowKeys(context: Context): Promise<any> {\n\tif (context === 'assets') {\n\t\treturn getAxios().get(`/v2/assets/shadow/fields`).then(extractData);\n\t}\n\treturn getAxios().get(`/beta/${context}/fields`).then(extractData);\n}\n","import {extractData, getAxios} from './axios';\nimport {Pageable, PaginationSettings} from './pagination';\nimport {AxiosInstance} from 'axios';\n\nexport type BundleRequest = {\n\tname: string;\n};\n\nexport type Bundle = BundleRequest & {\n\tid: string;\n\tcreatedAt: string;\n\tcreatedBy: string;\n};\n\nexport type BundleFileMetadata = {\n\tid: string;\n\tname: string;\n\tsize: number;\n\tchecksum?: string;\n};\n\nexport type BundleVersionRequest = {\n\tdraft: boolean;\n\tname: string;\n\tdescription?: string;\n};\n\nexport type BundleVersion = BundleVersionRequest & {\n\tid: string;\n\tcreatedAt: string;\n\tcreatedBy: string;\n\treleasedAt: string | null | undefined;\n\treleasedBy: string | null | undefined;\n\tfileCount: number;\n};\n\nexport type BundleFileLink = {\n\tdownloadLink: string;\n};\n\nexport const fetchAllBundles = (): Promise<Bundle[]> => {\n\treturn getAxios().get(`/v2/bundles`).then(extractData);\n};\n\nexport const fetchBundle = (id: string): Promise<Bundle> => {\n\treturn getAxios().get(`/v2/bundles/${id}`).then(extractData);\n};\n\nexport const createBundle = (bundle: BundleRequest): Promise<Bundle> => {\n\treturn getAxios().post(`/v2/bundles`, bundle).then(extractData);\n};\n\nexport const deleteBundle = (id: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${id}`);\n};\n\nexport const fetchBundleVersions = (\n\tbundleId: string,\n\tpaginationSettings?: PaginationSettings,\n\tdraft?: boolean\n): Promise<Pageable<BundleVersion>> => {\n\tconst {page = 0, size = 1000, sort = ''} = paginationSettings || {};\n\treturn getAxios()\n\t\t.get(`/v2/bundles/${bundleId}/versions`, {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true,\n\t\t\t\tdraft\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchBundleVersion = (bundleId: string, versionId: string): Promise<BundleVersion> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}`).then(extractData);\n};\n\nexport const createBundleVersion = (bundleId: string, version: BundleVersionRequest): Promise<BundleVersion> => {\n\treturn getAxios().post(`/v2/bundles/${bundleId}/versions`, version).then(extractData);\n};\n\nexport const releaseBundleVersion = (bundleId: string, versionId: string): Promise<BundleVersion> => {\n\treturn getAxios().put(`/v2/bundles/${bundleId}/versions/${versionId}/release`).then(extractData);\n};\n\nexport const deleteBundleVersion = (bundleId: string, versionId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${bundleId}/versions/${versionId}`);\n};\n\nexport const createBundleFile = (\n\tbundleId: string,\n\tversionId: string,\n\tdata: FormData,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => {\n\treturn (axiosInstance ?? getAxios()).post(`/v2/bundles/${bundleId}/versions/${versionId}/files`, data, {\n\t\theaders: {\n\t\t\t'content-type': 'multipart/form-data'\n\t\t},\n\t\ttimeout: 15 * 60 * 1000\n\t});\n};\n\nexport const fetchBundleFiles = (bundleId: string, versionId: string): Promise<BundleFileMetadata[]> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}/files`).then(extractData);\n};\n\nexport const downloadBundleFile = (bundleId: string, versionId: string, fileId: string): Promise<BundleFileLink> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}/files/${fileId}`).then(extractData);\n};\n\nexport const deleteBundleFile = (bundleId: string, versionId: string, fileId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${bundleId}/versions/${versionId}/files/${fileId}`);\n};\n","import {extractData, getAxios} from './axios';\n\ntype Timeframe = {\n\ttsStart: number;\n\ttsEnd: number;\n};\n\nexport type Params = {\n\ttimeframe?: Timeframe | null | undefined;\n\taccountId?: string | null | undefined;\n};\n\ntype DiffOperator = 'add' | 'remove' | 'replace';\n\nexport type AuditLogDiffItem = {\n\tproductionTimestamp: string;\n\tprocessingTimestamp: string;\n\tentityType: string;\n\tentityId: string;\n\taccount: string;\n\tclientId: string;\n\tdiff: Array<{\n\t\top: DiffOperator;\n\t\tpath: string;\n\t\tvalue: any;\n\t}>;\n};\n\nexport const fetchAuditLogEntities = (): Promise<any> => getAxios().get('/v2/auditLogEntities').then(extractData);\n\nconst dateToString = (ts: number | null | undefined): string | null | undefined =>\n\tts ? new Date(ts).toUTCString() : null;\n\nexport const fetchAuditLogDifferences = (\n\tentityType: string,\n\tentityId: string,\n\tparams: Params | null | undefined\n): Promise<any> =>\n\tgetAxios()\n\t\t.get(`/v2/auditLogDiffs/${entityType}/${entityId}`, {\n\t\t\tparams: {\n\t\t\t\tprocessedFrom: dateToString(params?.timeframe?.tsStart),\n\t\t\t\tprocessedUntil: dateToString(params?.timeframe?.tsEnd),\n\t\t\t\taccount: params?.accountId\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n","import {getAxios, extractData} from './axios';\n\nexport type ParamsSingleReport = {\n\tid: string;\n\tname: string;\n\twebUrl: string;\n\tembedUrl: string;\n\tdatasetId: string;\n\tembedToken: string;\n};\n\nexport type PowerBiReportsError = {\n\tdata?: any;\n\tmessage: string;\n\tstatus: string;\n};\n\nexport async function getParamsForSingleReport(workspaceId: string, reportId: string): Promise<ParamsSingleReport> {\n\treturn await getAxios().get('/v1/powerBi/singleReport/params', {params: {workspaceId, reportId}}).then(extractData);\n}\n","import {getAxios} from './axios';\n\ntype DateTimeRange = {\n\tfrom: string;\n\tto: string;\n};\n\ntype Tsx = {tsx: string};\n\ntype Interpolation = {\n\tkind: 'Linear' | 'Step';\n\tboundary?: {span: string};\n};\n\nexport type TsiInlineVariable = {\n\tfilter?: Tsx;\n\taggregation?: Tsx;\n\tinterpolation?: Interpolation;\n} & (\n\t| {\n\t\t\tkind: 'numeric';\n\t\t\tvalue: Tsx;\n\t }\n\t| {\n\t\t\tkind: 'aggregate';\n\t }\n);\n\ntype AggregateSeries = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tinterval: string;\n\tfilter?: Tsx;\n\tinlineVariables?: Record<string, TsiInlineVariable>;\n\tprojectedVariables?: string[];\n};\n\ntype GetSeries = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tfilter?: Tsx;\n\tinlineVariables?: Record<string, TsiInlineVariable>;\n\tprojectedVariables?: string[];\n\ttake?: number;\n};\n\ntype EventProperty = {\n\tname: string;\n\ttype: string;\n};\n\ntype GetEvents = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tfilter?: Tsx;\n\tprojectedProperties?: EventProperty[];\n\ttake?: number;\n};\n\nexport type TsiDataType = 'Bool' | 'DateTime' | 'String' | 'Double' | 'Long' | 'TimeSpan';\n\nexport type TsiProperties = {\n\tname: string;\n\ttype: TsiDataType;\n} & (\n\t| {\n\t\t\ttype: 'Bool';\n\t\t\tvalues: Array<boolean | null>;\n\t }\n\t| {\n\t\t\ttype: 'DateTime' | 'String';\n\t\t\tvalues: Array<string | null>;\n\t }\n\t| {\n\t\t\ttype: 'Double' | 'Long';\n\t\t\tvalues: Array<number | null>;\n\t }\n\t| {\n\t\t\ttype: 'TimeSpan';\n\t\t\tvalues: Array<Record<string, unknown> | null>;\n\t }\n);\n\nexport type TsiResponse = {\n\tcontinuationToken?: string;\n\tprogress: number;\n\tproperties: TsiProperties[];\n\ttimestamps: string[];\n};\n\nconst query = async (data: Record<string, any>): Promise<TsiResponse> => {\n\tconst result = await getAxios().post<TsiResponse>('/v1/timeSeriesInsights/query', data, {\n\t\tparams: {\n\t\t\t'api-version': '2020-07-31',\n\t\t\tstoreType: 'ColdStore'\n\t\t}\n\t});\n\n\treturn result.data;\n};\n\nexport const aggregateSeries = (params: AggregateSeries): Promise<TsiResponse> => {\n\treturn query({aggregateSeries: params});\n};\n\nexport const getSeries = async (params: GetSeries): Promise<TsiResponse> => {\n\treturn query({getSeries: params});\n};\n\nexport const getEvents = async (params: GetEvents): Promise<TsiResponse> => {\n\treturn query({getEvents: params});\n};\n","import {AxiosResponse} from 'axios';\nimport {getAxios} from './axios';\nimport {GrantRequest} from 'ux4iot-admin-node';\n\n/** @deprecated, use sendUx4iotGrantRequestToEndpoint instead, whose endpoint defaults to the endpoint of this function **/\nexport const sendUx4iotGrantRequest = (assetUrn: string, grantRequest: GrantRequest): Promise<AxiosResponse> => {\n\treturn getAxios().put(`/v1/ux4iotSecurity/assets/${assetUrn}`, grantRequest);\n};\n\nexport const sendUx4iotGrantRequestToEndpoint = (\n\tgrantRequestEndpoint = '/v1/ux4iotSecurity/assets/',\n\tgrantRequest: GrantRequest\n): Promise<AxiosResponse> => {\n\treturn getAxios().put(`${grantRequestEndpoint}${grantRequest.deviceId}`, grantRequest);\n};\n","import {DataType} from './datapoint';\nimport {getAxios} from './axios';\n\ntype AdxDatapointType = 'double' | 'long' | 'boolean' | 'string' | 'geo_position' | 'structured';\n\nconst DataTypeToAdxDatapointType: Record<DataType, AdxDatapointType> = {\n\tBOOLEAN: 'boolean',\n\tDOUBLE: 'double',\n\tLONG: 'long',\n\tTEXT: 'string',\n\tGEO_POSITION: 'geo_position',\n\tSTRUCTURED: 'structured'\n};\n\nexport type AdxValuesQueryResult = {\n\tasset: {\n\t\turn: string;\n\t\tdatapoints: Array<{\n\t\t\tname: string;\n\t\t\tvalues: Array<[string, unknown]>;\n\t\t}>;\n\t};\n};\n\n/**\n * @param assetUrn\n * @param datapoints\n * @param datatype\n * @param tsFrom\n * @param tsTo\n * @param groupBy kusto timespan, i.e. 1d, 2h, 1.5m\n * @param deduplication\n */\nexport async function queryDatapointValues(\n\tassetUrn: string,\n\tdatapoints: string[],\n\tdatatype: DataType,\n\ttsFrom: number,\n\ttsTo: number,\n\tgroupBy?: string | null,\n\tdeduplication?: boolean | null\n): Promise<AdxValuesQueryResult> {\n\tconst queryParameters: Record<string, unknown> = {\n\t\tdatapoints,\n\t\tdatatype: DataTypeToAdxDatapointType[datatype],\n\t\ttsFrom: new Date(tsFrom).toISOString(),\n\t\ttsTo: new Date(tsTo).toISOString()\n\t};\n\tif (groupBy != null) queryParameters.groupBy = groupBy;\n\tif (deduplication != null) queryParameters.deduplication = deduplication;\n\n\tconst response = await getAxios().post<AdxValuesQueryResult>(\n\t\t`/v2/assets/${assetUrn}/datapointValues`,\n\t\tqueryParameters\n\t);\n\n\treturn response.data;\n}\n\nexport async function queryLastDatapointsValue(\n\tassetUrn: string,\n\tdatapoints: string[],\n\tdatatype: DataType,\n\ttsFrom?: number,\n\ttsTo?: number\n): Promise<AdxValuesQueryResult> {\n\tconst queryParameters: Record<string, unknown> = {\n\t\tdatapoints,\n\t\tdatatype: DataTypeToAdxDatapointType[datatype]\n\t};\n\tif (tsFrom != null && tsTo != null) {\n\t\tqueryParameters.tsFrom = new Date(tsFrom).toISOString();\n\t\tqueryParameters.tsTo = new Date(tsTo).toISOString();\n\t}\n\n\tconst response = await getAxios().post<AdxValuesQueryResult>(\n\t\t`/v2/assets/${assetUrn}/datapointValues/latest`,\n\t\tqueryParameters\n\t);\n\n\treturn response.data;\n}\n","import {extractData, getAxios} from './axios';\n\nexport type InitialAccountGroupAssignmentRule = {\n\tname: string;\n\tdisplayName: string;\n\tacceptedEmailHostname: string;\n\taccountGroupId: number;\n};\n\nexport async function getInitialAccountGroupAssignmentRules(): Promise<InitialAccountGroupAssignmentRule[]> {\n\tconst response = await getAxios().get('/v2/initialAccountGroupAssignmentRules');\n\treturn extractData(response);\n}\n\nexport async function createInitialAccountGroupAssignmentRule(\n\trule: InitialAccountGroupAssignmentRule\n): Promise<InitialAccountGroupAssignmentRule> {\n\tconst response = await getAxios().post('/v2/initialAccountGroupAssignmentRules', rule);\n\treturn extractData(response);\n}\n\nexport async function updateInitialAccountGroupAssignmentRule(\n\truleName: string,\n\trule: InitialAccountGroupAssignmentRule\n): Promise<InitialAccountGroupAssignmentRule> {\n\tconst response = await getAxios().put(`/v2/initialAccountGroupAssignmentRules/${ruleName}`, rule);\n\treturn extractData(response);\n}\n\nexport async function deleteInitialAccountGroupAssignmentRule(ruleName: string): Promise<void> {\n\tawait getAxios().delete(`/v2/initialAccountGroupAssignmentRules/${ruleName}`);\n}\n"],"names":["extractData","response","setAxios","_axios","force","getAxios","setAxiosConfig","config","key","retryRequest","requestFn","retries","delay","attempt","error","waitTime","resolve","fetchAggregation","aggregationConfig","paginationSettingsToQueryParams","paginationSettings","page","size","property","direction","paginationSettingsAdxToQueryParams","fetchAssetGroups","queryParams","fetchAssetGroupsById","id","fetchAssetGroupById","fetchAssetGroupsByDataProcessingDefinitionId","dataProcessingDefinitionId","content","fetchAssetGroupsByRuleId","ruleId","createAssetGroup","assetGroup","updateAssetGroup","deleteAssetGroup","searchAssetGroups","query","sort","params","assignAssetsByIds","assetIds","assignAssetsByQuery","unassignAssetsByIds","unassignAssetsByQuery","getAncestorGroups","fetchGroupsByIds","ids","result","listAllChildAssetGroups","assetGroupId","fetchAssetWithShadowById","fetchGatewayById","fetchAssetByUrn","urn","fetchAssets","fetchAssetsByUrn","fetchAssetsByAssetGroupId","shadow","fetchAssetsByRuleId","fetchAssetsByDataProcessingDefinitionId","createAsset","asset","updateAsset","assetGroupIds","formData","deleteAsset","searchAssets","settings","searchAssetsWithOpenEvents","searchAssetsByProperty","value","searchGateways","searchAssetsWithGeoDistance","geoDistanceParams","distance","geoField","pinLocation","searchAssetsByGeoBoundingBox","topLeft","bottomRight","fetchAssetGroupIds","assetId","assignAssetGroup","unassignAssetGroup","updateAssetGroupIds","oldAssetGroupIds","availableOldAssetGroupIds","addedAssetGroupIds","removedAssetGroupIds","assignGateway","gatewayId","unassignGateway","getGatewayConfigurationsSyncStatus","triggerGatewayConfigurationsSync","retrieveAssetBootstrapJson","assetUrn","retrieveAssetBootstrapShellCommand","getGatewayCertificateSummary","getCertificateDetails","fingerPrint","revokeGatewayCertificate","fingerprint","revokeAllGatewayCertificates","fetchGatewayCommandResponses","commandId","requestApplicationLogCommand","fetchGatewayCapabilities","fetchAuthorities","fetchAuthorityByName","authorityName","createAuthority","deleteAuthority","fetchAssetDefinitions","fetchAssetDefinition","deleteAssetDefinition","updateAssetDefinition","assetDefinition","createAssetDefinition","createAssetDefinitionDatapoint","assetDefinitionId","datapoint","unit","createAssetDefinitionDatapoints","datapoints","newDatapoints","name","dp","deleteAssetDefinitionDatapoint","datapointName","updateAssetDefinitionDatapoint","getAssetGroupHierarchies","getAssetGroupHierarchyRoots","fetchAssetGroupDefinitionById","fetchAssetGroupDefinitionByName","fetchAssetGroupDefinitions","pageable","restPagePromises","_","num","data","restPages","acc","createAssetGroupDefinition","assetGroupDefinition","updateAssetGroupDefinition","deleteAssetGroupDefinition","createUrl","type","path","segment","readObject","asArrayBuffer","writeObject","headers","axiosInstance","deleteObject","checkObject","readAssetObject","writeAssetObject","deleteAssetObject","readAssetDefinitionObject","writeAssetDefinitionObject","deleteAssetDefinitionObject","readAssetGroupObject","writeAssetGroupObject","deleteAssetGroupObject","readTenantObject","writeTenantObject","deleteTenantObject","readUIConfigurations","readUISecrets","writeUIConfigurations","deleteUIConfigurations","readConditionMonitoringPriorities","writeConditionMonitoringPriorities","deleteConditionMonitoringPriorities","readEULA","localeCode","readEULAList","writeEULA","fileName","contentType","deleteEULA","readLegalPage","legalPage","checkAccountObject","readAccountObject","writeAccountObject","deleteAccountObject","checkStartPage","readStartPage","writeStartPage","writeReleaseNotesVersionsViewed","readReleaseNotesVersionsViewed","readReleaseNotesSubscription","writeReleaseNotesSubscription","checkShowUserDocumentation","readShowUserDocumentation","writeShowUserDocumentation","writePaginationSettings","readPaginationSettings","writeFavorites","readFavorites","deleteStartPage","writeAdvancedSearchDefaultProperties","defaultProperties","context","readAdvancedSearchDefaultProperties","readAssetBlobSeries","from","to","urls","metaData","url","index","urlSegments","uniqueKey","downloadAssetBlobSeriesItem","itemKey","readAccountGroupObject","accountGroupId","readAccountGroupObjectBasedOnMembership","writeAccountGroupObject","deleteAccountGroupObject","readAzureB2cConfiguration","fetchConfigurations","fetchConfigurationByName","createConfiguration","configuration","updateConfiguration","deleteConfiguration","assignConfigurationsToAsset","configurationKeyToIdObject","fetchAssignedGatewaysToConfiguration","fetchDatapointsByAssetId","createDatapoint","datatype","updateDatapointThresholds","thresholds","datatypeToDatapointType","getDatapointValues","dpName","dataType","start","end","onlyChangedValues","order","limit","getDatapointGeoPositionValues","getDatapointSamples","slices","updateDatapointUnit","deleteDatapoint","transformDatatypeToUrlSegment","deleteDatapointEntries","startOptional","endOptional","DEFAULT_START","body","DataTypeToAdxDistinctDatapointType","getStructuredDatapointPropertyNodes","tsFrom","tsTo","queryParameters","getStructuredDatapointDistinctValues","propertyPath","getDatapointValuesByFilters","filters","requestPayload","queryString","buildDatapointValuesQueryString","getDatapointValuesByQueryId","queryId","listDataProcessingDefinitions","filterSettings","listDataProcessingDefinitionAssetAssignments","dataProcessingDefinitionIds","listDataProcessingDefinitionAssetGroupAssignments","listDataProcessingDefinitionAccountGroupAssignments","getDataProcessingDefinitionById","definitionId","etag","fetchDataProcessingDefinitionsAssignedToAsset","fetchDataProcessingDefinitionsAssignedToAssetGroup","createDataProcessingDefinition","dataProcessingDefinition","updateDataProcessingDefinition","assignDataProcessingDefinitionsToAsset","assignDataProcessingDefinitionsToAssetGroup","deleteDataProcessingDefinition","validateDataProcessingDefinitionForAssetGroup","definition","listDataProcessingDefinitionAccesses","addAccessToDataProcessingDefinition","removeAccessToDataProcessingDefinition","getDataProcessingDefinitionEvaluations","getKpiGenericWithTimestamp","getKpiGeneric","DAY_MILLIS","fetchEventsByAssetId","excludeAcknowledged","now","defaultTo","defaultFrom","extraParams","parseEvent","fetchOpenStatefulEventsByAssetId","event","parseIsoDateString","isoString","acknowledgeEvent","eventKey","acknowledgeStatefulEvent","acknowledgeStatelessEvent","occurredAt","deleteHistoricEvents","fetchOpenEventsOfMultipleAssets","fetchHistoricEventsOfMultipleAssets","fetchLocales","locale","fetchGrantedAccesses","userGroupId","fetchGrantedAccessesForAssetGroup","createGrantedAccess","requiredAssetGroups","updateGrantedAccess","accessId","updatedGrantedAccess","deleteGrantedAccess","fetchNamedQueries","executeNamedQuery","OAUTH2_CLIENT_USERNAME","OAUTH2_CLIENT_PASSWORD","requestToken","principal","password","access_token","expires_in","refresh_token","createAuthInfo","refreshToken","token","revokeToken","tokenTypeHint","revokeAccessToken","accessToken","revokeRefreshToken","expiresIn","account_number","user_name","tenant","jwtDecode","fetchAuthorizationOptions","fetchProperties","getPropertyById","propertyKey","createProperty","updateProperty","deleteProperty","fetchRoleById","fetchRoleByIds","fetchRolesForLicense","licenseName","createRole","item","createRoleWithLicense","updateRole","deleteRole","fetchRoles","fetchAuthoritiesOfRole","setAuthoritiesOfRole","authorities","fetchAssignedAssetRules","fetchAssignedAssetGroupRules","createRule","rule","updateRule","assignAssetRules","ruleIds","assignAssetGroupRules","unassignAssetRules","assignedRules","unassignAssetGroupRules","deleteRule","fetchRuleByName","checkRuleNameUniquenes","fetchEventTemplateMappingsOfRule","ruleUuid","eventTemplateMappings","createEventTemplateMapping","deleteAllEventTemplateMappingsOfRule","fetchEmailTemplateById","fetchEmailTemplateAccessById","fetchEmailTemplates","emailTemplates","createEmailTemplate","notificationTemplate","updateEmailTemplate","deleteEmailTemplate","notificationTemplateId","subscribeAssets","types","subscribeAssetGroups","unsubscribe","subscriptionId","fetchUnits","addUnit","fetchUserByAccountNumber","accountNumber","fetchMe","fetchUsers","createUser","user","userToCreate","inviteUser","initialState","updateUser","updateMe","searchUsers","fetchUserGroupsOfUser","setUserPassword","deleteUser","deleteMyAccount","triggerPasswordReset","email","triggerEmailChange","oldEmailAddress","newEmailAddress","changeEmail","updateUserGroupsOfUser","addedUserGroupIds","removedUserGroupIds","changes","fetchRolesOfUser","updateRolesOfUser","roleIds","updateLocaleOfUser","acceptEULA","setUserState","state","delete2FADevice","fetchUserGroups","fetchUserGroupById","createUserGroup","usergroup","updateUserGroup","deleteUserGroup","searchUserGroups","fetchRoleIdsOfUserGroup","updateRoleIdsOfUserGroup","assignUsersToUserGroupByIds","userIds","assignUsersToUserGroupByQuery","unassignUsersFromUserGroupByIds","unassignUsersFromUserGroupByQuery","fetchAccesses","addAccess","deleteAccess","fetchAccountGroupAccesses","fetchInverseAccountGroupAccesses","addAccountGroupAccess","givingAccessAccountGroupId","receivingAccessAccountGroupId","deleteAccountGroupAccess","fetchLicenses","fetchLicenseByName","createLicense","license","updateLicense","deleteLicense","getVersion","initializeRemoteServiceConnection","gatewayUrn","targetNetwork","fetchRemoteServiceConnectionInfo","terminateRemoteServiceConnection","fetchPreparedCommands","createPreparedCommand","preparedCommand","updatePreparedCommand","deletePreparedCommand","assignPreparedCommandsToGateway","preparedCommandIds","executePreparedCommand","invokeDiscoveryCommand","discoveryParameters","discoveryPayload","fetchSentCommandResponses","createOrUpdateAuthorizationServer","authorizationServer","deleteAuthorizationServer","fetchAuthorizationServer","fetchAuthorizationServers","createOrUpdateAuthorizationServerRule","authorizationServerName","fetchAuthorizationServerRules","fetchAuthorizationServerRule","ruleName","deleteAuthorizationServerRule","dryRunHeader","createAssetDryRun","updateAssetDryRun","assignAssetGroupDryRun","unassignAssetGroupDryRun","updateAssetGroupIdsDryRun","createAssetGroupDryRun","updateAssetGroupDryRun","deleteAssetGroupDryRun","assignAssetsByIdsDryRun","assignAssetsByQueryDryRun","unassignAssetsByIdsDryRun","unassignAssetsByQueryDryRun","fetchShadowKeys","fetchAllBundles","fetchBundle","createBundle","bundle","deleteBundle","fetchBundleVersions","bundleId","draft","fetchBundleVersion","versionId","createBundleVersion","version","releaseBundleVersion","deleteBundleVersion","createBundleFile","fetchBundleFiles","downloadBundleFile","fileId","deleteBundleFile","fetchAuditLogEntities","dateToString","ts","fetchAuditLogDifferences","entityType","entityId","getParamsForSingleReport","workspaceId","reportId","aggregateSeries","getSeries","getEvents","sendUx4iotGrantRequest","grantRequest","sendUx4iotGrantRequestToEndpoint","grantRequestEndpoint","DataTypeToAdxDatapointType","queryDatapointValues","groupBy","deduplication","queryLastDatapointsValue","getInitialAccountGroupAssignmentRules","createInitialAccountGroupAssignmentRule","updateInitialAccountGroupAssignmentRule","deleteInitialAccountGroupAssignmentRule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/axios.ts","../src/aggregation.ts","../src/pagination.ts","../src/assetGroup.ts","../src/asset.ts","../src/authorities.ts","../src/assetDefinition.ts","../src/assetGroupHierarchies.ts","../src/assetGroupDefinition.ts","../src/blobox.ts","../src/configuration.ts","../src/datapoint.ts","../src/adxData.ts","../src/dataProcessingDefinition.ts","../src/kpi.ts","../src/event.ts","../src/locale.ts","../src/grantedAccess.ts","../src/namedquery.ts","../src/oauth.ts","../src/property.ts","../src/role.ts","../src/ruleDefinition.ts","../src/notificationTemplates.ts","../src/subscription.ts","../src/units.ts","../src/user.ts","../src/userGroup.ts","../src/licenses.ts","../src/version.ts","../src/remoteservice.ts","../src/preparedCommand.ts","../src/commands.ts","../src/authorizationServers.ts","../src/dryRun.ts","../src/shadowKeys.ts","../src/bundles.ts","../src/auditLog.ts","../src/powerBi.ts","../src/tsi.ts","../src/ux4iot.ts","../src/adx.ts","../src/initialAccountGroupAssignmentRules.ts"],"sourcesContent":["import {AxiosInstance, AxiosRequestConfig, AxiosResponse} from 'axios';\n\nexport const extractData = <T>(response: AxiosResponse<T>): T => {\n\tif (!response || response.data === undefined) {\n\t\tthrow Error('response object has no \"data\" entry');\n\t}\n\n\treturn response.data;\n};\n\ndeclare global {\n\tinterface Window {\n\t\tnguiAxios: AxiosInstance;\n\t}\n}\n\nexport const setAxios = (_axios: AxiosInstance, force?: boolean): void => {\n\tif (force || !window.nguiAxios) {\n\t\twindow.nguiAxios = _axios;\n\t} else {\n\t\tconsole.warn('window.nguiAxios instance already set');\n\t}\n};\nexport const getAxios = (): AxiosInstance => {\n\tif (window.nguiAxios == null) {\n\t\tthrow Error('window.nguiAxios instance not set');\n\t}\n\n\treturn window.nguiAxios;\n};\n\nexport const setAxiosConfig = (config: AxiosRequestConfig): void => {\n\tif (window.nguiAxios) {\n\t\tfor (const key in Object.keys(config)) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(window.nguiAxios.defaults, key)) {\n\t\t\t\tthrow Error(`Trying to set an unknown axios config property: ${key}`);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error checked, and it works\n\t\twindow.nguiAxios.defaults = {\n\t\t\t...window.nguiAxios.defaults,\n\t\t\t...config\n\t\t};\n\t}\n};\n\nexport const retryRequest = async (requestFn: any, retries = 5, delay = 100) => {\n\tfor (let attempt = 0; attempt < retries; attempt++) {\n\t\ttry {\n\t\t\treturn await requestFn();\n\t\t} catch (error: any) {\n\t\t\tif (attempt < retries - 1) {\n\t\t\t\tconst waitTime = delay * Math.pow(2, attempt) + Math.random() * 100;\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, waitTime));\n\t\t\t} else {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {extractData, getAxios} from './axios';\n\ntype AggregationGrouping = {\n\tfield: string;\n\tsize?: number;\n\tnumberInterval?: number;\n\tdateInterval?: string;\n\tprecision?: number;\n\tminDocCount?: number;\n};\n\ntype AggregationSorting = {\n\tcolumnName: string;\n\torder: 'asc' | 'desc';\n};\n\nexport type MetricFunction =\n\t| 'avg'\n\t| 'cardinality'\n\t| 'max'\n\t| 'min'\n\t| 'sum'\n\t| 'count'\n\t| 'stats'\n\t| 'percentile'\n\t| 'percentileRanks';\n\ntype AggregationMetric = {\n\tfunction: MetricFunction;\n\tfield: string;\n\tcolumnName: string;\n};\n\nexport type AggregationConfig = {\n\tquery: string;\n\taggregationGrouping: AggregationGrouping[];\n\taggregationMetrics: AggregationMetric[];\n\taggregationSorting: AggregationSorting;\n};\n\ntype Column = {\n\tcolumnName: string;\n\tdatatype: string;\n};\n\ntype Row = Record<string, any>;\n\nexport type AggregationResult = {\n\tgroupingColumns: Column[];\n\tmetricColumns: Column[];\n\ttotalHits: number;\n\trows: Row;\n};\n\nexport const fetchAggregation = (aggregationConfig: AggregationConfig): Promise<any> =>\n\tgetAxios().post('/v2/assets/aggregation', aggregationConfig).then(extractData);\n","import {PaginationRequestPropertyAdxData} from './adxData';\n\nexport type Pageable<T> = {\n\tcontent: Array<T>;\n\ttotalElements: number;\n\ttotalElementsAccurate: boolean;\n\ttotalPages: number;\n\tnumber: number; // page number\n\tfirst: boolean;\n\tlast: boolean;\n\tsize: number;\n\tsort: Array<Sort>;\n};\n\nexport type SortDirection = 'ASC' | 'DESC';\n\nexport type Sort = {\n\tproperty: string;\n\tdirection: SortDirection;\n};\n\nexport type PaginationSettings = {\n\tpage: number;\n\tsize: number;\n\tsort: Sort;\n};\n\nexport function paginationSettingsToQueryParams(paginationSettings: PaginationSettings | undefined) {\n\tif (paginationSettings) {\n\t\tconst {\n\t\t\tpage,\n\t\t\tsize,\n\t\t\tsort: {property, direction}\n\t\t} = paginationSettings;\n\t\treturn {page, size, sort: `${property},${direction}`};\n\t}\n}\n\nexport type PaginationSettingsAdxData = {\n\tsort: string;\n\tpage: number;\n\tsize: number;\n\ttotalElements: number;\n\ttotalPages: number;\n\tfirstPage: boolean;\n\tlastPage: boolean;\n};\n\nexport type PaginationRequestAdxData = {\n\tsort: Sort;\n\tpage: number;\n\tsize: number;\n};\n\nexport function paginationSettingsAdxToQueryParams(\n\tpaginationSettings: PaginationRequestAdxData | undefined\n): PaginationRequestPropertyAdxData | undefined {\n\tif (paginationSettings) {\n\t\tconst {\n\t\t\tpage,\n\t\t\tsize,\n\t\t\tsort: {property, direction}\n\t\t} = paginationSettings;\n\t\treturn {page, size, sort: `${property},${direction}`};\n\t}\n\treturn undefined;\n}\n","import {getAxios, extractData} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {PropertyValues} from './property';\nimport {paginationSettingsToQueryParams} from './pagination';\n\nexport type AssetGroupNew = {\n\tdefinitionId: number;\n\tdefinitionName: string;\n\tparentId: number | null | undefined;\n\tname: string;\n\tdisplayName: string | null | undefined;\n\tproperties: PropertyValues;\n\tstaticProperties: PropertyValues;\n};\n\nexport type AssetGroup = AssetGroupNew & {\n\tid: number;\n};\n\ntype FetchAssetGroupsParams = {\n\truleId: number;\n\tdefinitionId: number;\n\tdefinitionName: string;\n\tprocessingDefinitionId: number;\n\tshadow: boolean;\n};\n\nexport const fetchAssetGroups = (\n\tqueryParams?: Partial<FetchAssetGroupsParams>,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get('/v2/assetGroups', {params: {...queryParams, ...paginationSettingsToQueryParams(paginationSettings)}})\n\t\t.then(extractData);\n};\n\nexport const fetchAssetGroupsById = (id: number[]): Promise<AssetGroup[]> => {\n\treturn getAxios().get('/v2/assetGroups', {params: {id}}).then(extractData);\n};\n\nexport const fetchAssetGroupById = (id: number): Promise<AssetGroup> => {\n\treturn getAxios().get(`/v2/assetGroups/${id}`).then(extractData);\n};\n\nexport const fetchAssetGroupsByDataProcessingDefinitionId = (\n\tdataProcessingDefinitionId: number\n): Promise<Array<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups?processingDefinitionId=${dataProcessingDefinitionId}`)\n\t\t.then(extractData)\n\t\t.then(({content}) => content);\n};\n\nexport const fetchAssetGroupsByRuleId = (ruleId: number): Promise<Array<AssetGroup>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups?ruleId=${ruleId}`)\n\t\t.then(extractData)\n\t\t.then(({content}) => content);\n};\n\nexport const createAssetGroup = (assetGroup: AssetGroupNew): Promise<AssetGroup> => {\n\treturn getAxios().post(`/v2/assetGroupDefinitions/${assetGroup.definitionId}/groups`, assetGroup).then(extractData);\n};\n\nexport const updateAssetGroup = (assetGroup: AssetGroup): Promise<AssetGroup> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroup.id}`, assetGroup).then(extractData);\n};\n\nexport const deleteAssetGroup = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${id}`);\n};\n\nexport const searchAssetGroups = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\tconst {page, size, sort} = paginationSettings;\n\tconst params = {\n\t\tpage: page || 0,\n\t\tsize,\n\t\tsort: `${sort.property},${sort.direction}`,\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.post(`/v2/assetGroups/search`, query || '*:*', {\n\t\t\tparams,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const assignAssetsByIds = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'ADD',\n\t\tassetIds\n\t});\n};\n\nexport const assignAssetsByQuery = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'ADD',\n\t\tquery\n\t});\n};\n\nexport const unassignAssetsByIds = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'REMOVE',\n\t\tassetIds\n\t});\n};\n\nexport const unassignAssetsByQuery = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/assetGroups/${assetGroup.id}/assetAssignments`, {\n\t\taction: 'REMOVE',\n\t\tquery\n\t});\n};\n\nexport const getAncestorGroups = (id: number): Promise<Array<AssetGroup>> => {\n\treturn getAxios().get(`/v2/assetGroups/${id}/ancestorGroups`).then(extractData);\n};\n\nexport const fetchGroupsByIds = (ids: Array<number>): Promise<Array<AssetGroup>> => {\n\tif (!ids.length) {\n\t\treturn Promise.resolve([]);\n\t}\n\n\treturn searchAssetGroups(`id:(${ids.join(' OR ')})`, {\n\t\tpage: 0,\n\t\tsize: 2000,\n\t\tsort: {\n\t\t\tproperty: 'name',\n\t\t\tdirection: 'ASC'\n\t\t}\n\t}).then((result) => result.content);\n};\n\nexport const listAllChildAssetGroups = (\n\tassetGroupId: number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<AssetGroup>> => {\n\tconst params = paginationSettings\n\t\t? {\n\t\t\t\tsize: paginationSettings.size,\n\t\t\t\tpage: paginationSettings.page,\n\t\t\t\tsort: `${paginationSettings.sort.property},${paginationSettings.sort.direction}`\n\t\t\t}\n\t\t: {\n\t\t\t\tsize: 1000\n\t\t\t};\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/children`, {params}).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\nimport {Pageable, PaginationSettings, paginationSettingsToQueryParams} from './pagination';\nimport {PropertyValues} from './property';\nimport {fetchAssetGroupsById} from './assetGroup';\n\nexport type GatewayTransportChannel = 'JUMP' | 'IOTHUB';\n\nexport type AssetNew = {\n\tassetDefinitionId: number | null | undefined;\n\tname: string;\n\turn: string;\n\tgatewayId: number | null | undefined;\n\tproperties: PropertyValues;\n\tshadow?: PropertyValues;\n\tisGateway: boolean;\n\ttransportChannel?: GatewayTransportChannel;\n\tassetGroupIds: Array<number>;\n\tancestorAssetGroupIds: Array<number>;\n\tcertificateBootstrapping?: boolean;\n\ttimeZone?: string;\n};\n\nexport type Asset = AssetNew & {\n\tid: number;\n};\n\nexport type Gateway = Asset & {\n\tisGateway: true;\n\tgatewayId: null;\n};\n\nexport type CertificateDetails = {\n\tcontent: string;\n\tcreatedAt: number;\n\trevokedAt: number;\n\tlastUsedAt: number;\n};\n\nexport type GeoDistanceParams = {\n\tdistance: string;\n\tgeoField: string;\n\tpinLocation: string;\n};\n\nexport type GeoBoundingBoxParams = {\n\tgeoField: string;\n\ttopLeft: string;\n\tbottomRight: string;\n};\n\nexport const fetchAssetWithShadowById = (id: number): Promise<Asset> => {\n\treturn getAxios().get(`/v2/assets/${id}/shadow`).then(extractData);\n};\n\nexport const fetchGatewayById = (id: number): Promise<Gateway> => {\n\treturn getAxios().get(`/v2/gateways/${id}`).then(extractData);\n};\n\nexport const fetchAssetByUrn = (urn: string): Promise<Asset> => {\n\treturn getAxios()\n\t\t.get(`/v2/assets/urn/${encodeURIComponent(urn)}`)\n\t\t.then(extractData);\n};\n\nexport type FetchAssetsParams = {\n\tid?: number;\n\tname?: string;\n\turn?: string;\n\tassetType?: 'ASSET' | 'GATEWAY';\n\tassetGroup?: number;\n\tassignedToAnyAssetGroup?: boolean;\n\tgatewayId?: number;\n\tgatewayUrn?: string;\n\truleId?: number;\n\tassetGroupRuleId?: number;\n\tprocessingDefinitionId?: number;\n\tassetGroupProcessingDefinitionId?: number;\n\tshadow?: boolean;\n};\n\nexport const fetchAssets = (\n\tqueryParams?: FetchAssetsParams,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\treturn getAxios()\n\t\t.get('/v2/assets', {params: {...queryParams, ...paginationSettingsToQueryParams(paginationSettings)}})\n\t\t.then(extractData);\n};\n\nexport const fetchAssetsByUrn = (urn: string | string[]): Promise<Array<Asset>> => {\n\treturn getAxios().get('/v2/assets', {params: {urn}}).then(extractData);\n};\n\nexport const fetchAssetsByAssetGroupId = (\n\tassetGroupId: number,\n\tshadow?: boolean,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\treturn fetchAssets({assetGroup: assetGroupId, shadow}, paginationSettings);\n};\n\nexport const fetchAssetsByRuleId = (ruleId: number): Promise<Array<Asset>> => {\n\treturn fetchAssets({ruleId}).then(({content}) => content);\n};\n\nexport const fetchAssetsByDataProcessingDefinitionId = (dataProcessingDefinitionId: number): Promise<Array<Asset>> => {\n\treturn fetchAssets({processingDefinitionId: dataProcessingDefinitionId}).then(({content}) => content);\n};\n\nexport const createAsset = (asset: AssetNew): Promise<Asset> => {\n\tif (asset.isGateway) {\n\t\treturn getAxios().post(`/v2/gateways`, asset).then(extractData);\n\t} else {\n\t\treturn getAxios().post(`/v2/assets`, asset).then(extractData);\n\t}\n};\n\nexport const updateAsset = (asset: Asset): Promise<Asset> => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst {assetGroupIds, ...formData} = asset;\n\tif (asset.isGateway) {\n\t\treturn getAxios().put(`/v2/gateways/${asset.id}`, formData).then(extractData);\n\t} else {\n\t\treturn getAxios().put(`/v2/assets/${asset.id}`, formData).then(extractData);\n\t}\n};\n\nexport const deleteAsset = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${id}`);\n};\n\nexport const searchAssets = (query: string, paginationSettings?: PaginationSettings): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(`/v2/assets/search`, query || '*:*', {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchAssetsWithOpenEvents = (\n\tquery: string,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(`/v2/assets/search`, query || '*:*', {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true,\n\t\t\t\tassetsWithEventsOnly: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchAssetsByProperty = (\n\tproperty: string,\n\tvalue: string | number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: null\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.get(`/v2/assets/search`, {\n\t\t\tparams: {\n\t\t\t\tproperty,\n\t\t\t\tvalue,\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const searchGateways = (query: string, paginationSettings: PaginationSettings): Promise<Pageable<Gateway>> => {\n\treturn searchAssets(`${query} isGateway:true`, paginationSettings) as Promise<Pageable<Gateway>>;\n};\n\nexport const searchAssetsWithGeoDistance = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings,\n\tgeoDistanceParams: GeoDistanceParams\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\tconst {distance, geoField, pinLocation} = geoDistanceParams;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assets/geoDistance`,\n\t\t\t{\n\t\t\t\tdistance,\n\t\t\t\tgeoField,\n\t\t\t\tpinLocation,\n\t\t\t\tquery: query || '*:*'\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tignoreCase: true,\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || ''\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const searchAssetsByGeoBoundingBox = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings,\n\t{geoField, topLeft, bottomRight}: GeoBoundingBoxParams\n): Promise<Pageable<Asset>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assets/geoBoundingBox`,\n\t\t\t{\n\t\t\t\tgeoField,\n\t\t\t\tquery: query || '*:*',\n\t\t\t\ttopLeft,\n\t\t\t\tbottomRight\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tignoreCase: true,\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: sort ? `${sort.property},${sort.direction}` : ''\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const fetchAssetGroupIds = (assetId: number): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/groups`).then(extractData);\n};\n\nexport const assignAssetGroup = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/groups/${assetGroupId}`);\n};\n\nexport const unassignAssetGroup = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/groups/${assetGroupId}`);\n};\n\nexport const updateAssetGroupIds = async (assetId: number, assetGroupIds: Array<number>): Promise<any> => {\n\tconst oldAssetGroupIds = await fetchAssetGroupIds(assetId);\n\tlet availableOldAssetGroupIds: number[] = [];\n\tif (oldAssetGroupIds.length > 0) {\n\t\tavailableOldAssetGroupIds = (await fetchAssetGroupsById(oldAssetGroupIds)).map(({id}) => id);\n\t}\n\tconst addedAssetGroupIds = assetGroupIds.filter((id) => !oldAssetGroupIds.includes(id));\n\tconst removedAssetGroupIds = availableOldAssetGroupIds.filter((id) => assetGroupIds && !assetGroupIds.includes(id));\n\treturn Promise.all([\n\t\t...addedAssetGroupIds.map((assetGroupId) => assignAssetGroup(assetId, assetGroupId)),\n\t\t...removedAssetGroupIds.map((assetGroupId) => unassignAssetGroup(assetId, assetGroupId))\n\t]);\n};\n\nexport const assignGateway = (assetId: number, gatewayId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/gatewayAssignment`, {\n\t\tgatewayId\n\t});\n};\n\nexport const unassignGateway = (assetId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/gatewayAssignment`);\n};\n\nexport const getGatewayConfigurationsSyncStatus = (assetId: number): Promise<any> => {\n\treturn getAxios().get(`/v2/gateways/${assetId}/configurationSyncStatus`).then(extractData);\n};\n\nexport const triggerGatewayConfigurationsSync = (assetId: number): Promise<any> => {\n\treturn getAxios().post(`/v2/gateways/${assetId}/configurationSync`);\n};\n\nexport const retrieveAssetBootstrapJson = (assetUrn: string): Promise<any> => {\n\treturn getAxios().post(`/beta/gateways/urn/${encodeURIComponent(assetUrn)}/bootstrap.json`);\n};\n\nexport const retrieveAssetBootstrapShellCommand = (assetUrn: string): Promise<any> => {\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/beta/gateways/urn/${encodeURIComponent(assetUrn)}/bootstrapCommandLine`,\n\t\t\t{},\n\t\t\t{\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'text/plain'\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const getGatewayCertificateSummary = (assetUrn: string): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates`)\n\t\t.then(extractData);\n};\n\nexport const getCertificateDetails = (assetUrn: string, fingerPrint: string): Promise<CertificateDetails> => {\n\treturn getAxios()\n\t\t.get(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/${fingerPrint}`)\n\t\t.then(extractData);\n};\n\nexport const revokeGatewayCertificate = (assetUrn: string, fingerprint: string): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/${fingerprint}/revocation`);\n};\n\nexport const revokeAllGatewayCertificates = (assetUrn: string): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/urn/${encodeURIComponent(assetUrn)}/certificates/revocation`);\n};\n\nexport const fetchGatewayCommandResponses = (gatewayId: number, commandId: number): Promise<Array<any>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/commands/${commandId}/responses`).then(extractData);\n};\n\nexport const requestApplicationLogCommand = (gatewayId: number): Promise<any> => {\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/gateways/${gatewayId}/commands`,\n\t\t\t{\n\t\t\t\texpirySeconds: 60,\n\t\t\t\tcontent: {\n\t\t\t\t\ttype: 'transmitApplicationLogCommand'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const fetchGatewayCapabilities = (gatewayId: number): Promise<Array<string>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/capabilities`).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type Authority = {\n\tauthority: string;\n\tinternal?: boolean;\n};\n\nexport function fetchAuthorities(): Promise<Array<Authority>> {\n\treturn getAxios().get('/v2/authorities').then(extractData);\n}\n\nexport function fetchAuthorityByName(authorityName: string): Promise<Authority> {\n\treturn getAxios().get(`/v2/authorities/${authorityName}`).then(extractData);\n}\n\nexport function createAuthority(authorityName: string): Promise<Authority> {\n\treturn getAxios().put(`/v2/authorities/${authorityName}`).then(extractData);\n}\n\nexport function deleteAuthority(authorityName: string): Promise<void> {\n\treturn getAxios().delete(`/v2/authorities/${authorityName}`);\n}\n","import {Datapoint} from './datapoint';\nimport {extractData, getAxios} from './axios';\n\nexport type AssetDefinitionProperty = {\n\tkey: string;\n\trequired: boolean;\n};\n\nexport type AssetDefinitionStaticProperty = {\n\tkey: string;\n\tvalue: string | number | boolean | null | undefined;\n};\n\nexport type AssetDefinitionNew = {\n\tname: string;\n\tproperties: AssetDefinitionProperty[];\n\tstaticProperties: AssetDefinitionStaticProperty[];\n\tdatapoints: Datapoint[];\n};\n\nexport type AssetDefinition = AssetDefinitionNew & {\n\tid: number;\n};\n\nexport async function fetchAssetDefinitions(): Promise<Array<AssetDefinition>> {\n\treturn getAxios()\n\t\t.get('/v2/assetDefinitions', {\n\t\t\tparams: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000,\n\t\t\t\tsort: 'name,ASC',\n\t\t\t\tignoreCase: true\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n}\n\nexport async function fetchAssetDefinition(id: number): Promise<AssetDefinition> {\n\treturn getAxios().get(`/v2/assetDefinitions/${id}`).then(extractData);\n}\n\nexport async function deleteAssetDefinition(id: number): Promise<void> {\n\treturn getAxios().delete(`/v2/assetDefinitions/${id}`);\n}\n\nexport async function updateAssetDefinition(assetDefinition: AssetDefinition): Promise<AssetDefinition> {\n\treturn getAxios().put(`/v2/assetDefinitions/${assetDefinition.id}`, assetDefinition).then(extractData);\n}\n\nexport async function createAssetDefinition(assetDefinition: AssetDefinitionNew): Promise<AssetDefinition> {\n\treturn getAxios().post('/v2/assetDefinitions', assetDefinition).then(extractData);\n}\n\nexport async function createAssetDefinitionDatapoint(assetDefinitionId: number, datapoint: Datapoint): Promise<void> {\n\tconst {unit, ...params} = datapoint;\n\tif (unit) (params as Record<string, any>).unit = unit.name;\n\treturn getAxios().post(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapoint.name)}`,\n\t\tparams\n\t);\n}\n\nexport async function createAssetDefinitionDatapoints(\n\tassetDefinitionId: number,\n\tdatapoints: Map<string, Datapoint>\n): Promise<void> {\n\t// this conversion is necessary because the API expects the unit to be a string\n\tconst newDatapoints = new Map(\n\t\tArray.from(datapoints, ([name, dp]) => {\n\t\t\tconst {unit, ...params} = dp;\n\t\t\treturn [name, unit ? {...params, unit: unit.name} : params];\n\t\t})\n\t);\n\treturn getAxios().post(`/v2/assetDefinitions/${assetDefinitionId}/datapoints`, Object.fromEntries(newDatapoints));\n}\n\nexport async function deleteAssetDefinitionDatapoint(assetDefinitionId: number, datapointName: string): Promise<void> {\n\treturn getAxios().delete(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapointName)}`\n\t);\n}\n\nexport async function updateAssetDefinitionDatapoint(assetDefinitionId: number, datapoint: Datapoint): Promise<void> {\n\tconst {unit, ...params} = datapoint;\n\tif (unit) (params as Record<string, any>).unit = unit.name;\n\treturn getAxios().put(\n\t\t`/v2/assetDefinitions/${assetDefinitionId}/datapoints/${encodeURIComponent(datapoint.name)}`,\n\t\tparams\n\t);\n}\n","import {extractData, getAxios} from './axios';\n\nexport type AssetGroupHierarchyElement = {\n\tid: number;\n\tparentId: number | null;\n\tname: string;\n\tdisplayName: string;\n\tassetGroupDefinitionId: number;\n\tassetGroupDefinitionName: string;\n\tlevel: number;\n\tassetGroupChildCountDirect: number;\n\tassetGroupChildCountTransitive: number;\n\tassetCountDirect: number;\n\tassetCountTransitive: number;\n};\n\nexport type AssetGroupHierarchyParams = {\n\tassetDefinitionId?: number;\n\tmaxLevel?: number;\n};\n\nexport async function getAssetGroupHierarchies(\n\tassetGroupId: number,\n\tparams?: AssetGroupHierarchyParams\n): Promise<AssetGroupHierarchyElement[]> {\n\tconst response = await getAxios().get(`/v2/assetGroupHierarchies/${assetGroupId}`, {params});\n\treturn extractData(response);\n}\n\nexport type AssetGroupHierarchyRoot = {\n\tid: number;\n\tname: string;\n\tdisplayName: string;\n\tassetCountTransitive: number;\n};\n\nexport type AssetGroupHierarchyRootParams = {\n\tassetDefinitionId?: number;\n};\n\nexport async function getAssetGroupHierarchyRoots(\n\tparams: AssetGroupHierarchyParams = {}\n): Promise<AssetGroupHierarchyRoot[]> {\n\tconst response = await getAxios().get('/v2/assetGroupHierarchyRoots', {params});\n\treturn extractData(response);\n}\n","import {getAxios, extractData} from './axios';\n\ntype PropertyDefinition = {\n\tkey: string;\n\trequired: boolean;\n};\n\ntype StaticPropertyDefinition = {\n\tkey: string;\n\tvalue: number | boolean | string;\n};\n\nexport type NewAssetGroupDefinition = {\n\tname: string;\n\tchildrenPreventDeletion?: boolean;\n\tassetGroupProperties?: PropertyDefinition[];\n\tassetGroupStaticProperties?: StaticPropertyDefinition[];\n};\n\nexport type AssetGroupDefinition = NewAssetGroupDefinition & {\n\tid: number;\n};\n\nexport const fetchAssetGroupDefinitionById = (id: number): Promise<AssetGroupDefinition> => {\n\treturn getAxios().get(`/v2/assetGroupDefinitions/${id}`).then(extractData);\n};\n\nexport const fetchAssetGroupDefinitionByName = (name: string): Promise<AssetGroupDefinition> => {\n\treturn getAxios().get(`/v2/assetGroupDefinitions/name/${name}`).then(extractData);\n};\n\nexport const fetchAssetGroupDefinitions = (): Promise<Array<AssetGroupDefinition>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 1000,\n\t\tsort: 'name,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get('/v2/assetGroupDefinitions', {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => {\n\t\t\tconst restPagePromises = new Array(Math.max(0, pageable.totalPages - 1)).fill(null).map((_, num) => {\n\t\t\t\tconst page = num + 1;\n\t\t\t\treturn getAxios()\n\t\t\t\t\t.get('/v2/assetGroupDefinitions', {\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t...params,\n\t\t\t\t\t\t\tpage\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then(extractData)\n\t\t\t\t\t.then((data) => data.content);\n\t\t\t});\n\t\t\treturn Promise.all(restPagePromises).then((restPages) =>\n\t\t\t\trestPages.reduce((acc, content) => acc.concat(content), pageable.content)\n\t\t\t);\n\t\t});\n};\n\nexport const createAssetGroupDefinition = (\n\tassetGroupDefinition: NewAssetGroupDefinition\n): Promise<AssetGroupDefinition> => {\n\treturn getAxios().post('/v2/assetGroupDefinitions', assetGroupDefinition).then(extractData);\n};\n\nexport const updateAssetGroupDefinition = (\n\tassetGroupDefinition: AssetGroupDefinition\n): Promise<AssetGroupDefinition> => {\n\treturn getAxios()\n\t\t.put(`/v2/assetGroupDefinitions/${assetGroupDefinition.id}`, assetGroupDefinition)\n\t\t.then(extractData);\n};\n\nexport const deleteAssetGroupDefinition = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroupDefinitions/${id}`);\n};\n","import {getAxios, extractData} from './axios';\nimport {AxiosInstance} from 'axios';\n\nexport type LegalPage = 'imprint' | 'privacy';\n\nexport type UserPaginationSettings = {\n\tsize: number;\n};\n\nexport type AdvancedSearchDefaultProperty = {\n\tkey: string;\n\ttype: string;\n};\n\ntype ResourceType = 'assets' | 'assetGroups' | 'assetDefinitions' | 'accounts' | 'accountGroups' | 'tenant';\n\nexport type BlobMeta = {\n\tblobKey: string;\n\tlastModified: string;\n\tcontentType: string;\n\tuserMetadata: {\n\t\t'X-Blob-Meta-Filename': string;\n\t};\n};\n\nconst createUrl = (type: ResourceType, id: string | number | undefined, path: string) => {\n\treturn ['', 'v2', type, id ? encodeURIComponent(id) : null, 'blobs', path]\n\t\t.filter((segment) => segment != null)\n\t\t.join('/');\n};\n\nconst readObject = (\n\ttype: ResourceType,\n\tid: string | number | undefined,\n\tpath: string,\n\tasArrayBuffer: boolean\n): Promise<any> =>\n\tgetAxios()\n\t\t.get(createUrl(type, id, path), asArrayBuffer ? {responseType: 'arraybuffer'} : {})\n\t\t.then(extractData);\n\nconst writeObject = (\n\ttype: ResourceType,\n\tid: string | number | undefined,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> =>\n\t(axiosInstance ?? getAxios()).post(createUrl(type, id, path), value, headers ? {headers} : undefined);\n\nconst deleteObject = (type: ResourceType, id: string | number | undefined, path: string): Promise<void> =>\n\tgetAxios().delete(createUrl(type, id, path));\n\nconst checkObject = (type: ResourceType, id: string | number | undefined, path: string) =>\n\tgetAxios().head(createUrl(type, id, path));\n\nexport const readAssetObject = (assetUrn: string, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('assets', assetUrn, path, !!asArrayBuffer);\n\nexport const writeAssetObject = (\n\tassetUrn: string,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assets', assetUrn, path, value, headers, axiosInstance);\n\nexport const deleteAssetObject = (assetUrn: string, path: string): Promise<void> =>\n\tdeleteObject('assets', assetUrn, path);\n/*\n * Asset Definition Blobox\n */\nexport const readAssetDefinitionObject = (\n\tassetDefinitionId: number,\n\tpath: string,\n\tasArrayBuffer?: boolean\n): Promise<any> => readObject('assetDefinitions', assetDefinitionId, path, !!asArrayBuffer);\n\nexport const writeAssetDefinitionObject = (\n\tassetDefinitionId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assetDefinitions', assetDefinitionId, path, value, headers, axiosInstance);\n\nexport const deleteAssetDefinitionObject = (assetDefinitionId: number, path: string): Promise<void> =>\n\tdeleteObject('assetDefinitions', assetDefinitionId, path);\n\n/*\n * Asset Group Blobox\n */\nexport const readAssetGroupObject = (assetGroupId: number, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('assetGroups', assetGroupId, path, !!asArrayBuffer);\n\nexport const writeAssetGroupObject = (\n\tassetGroupId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<void> => writeObject('assetGroups', assetGroupId, path, value, headers, axiosInstance);\n\nexport const deleteAssetGroupObject = (assetGroupId: number, path: string): Promise<any> =>\n\tdeleteObject('assetGroups', assetGroupId, path);\n\n/*\n * Tenant Blobox\n */\nexport const readTenantObject = (path: string, asArrayBuffer?: boolean): Promise<any> =>\n\treadObject('tenant', undefined, path, !!asArrayBuffer);\n\nexport const writeTenantObject = (\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => writeObject('tenant', undefined, path, value, headers, axiosInstance);\n\nexport const deleteTenantObject = (path: string): Promise<any> => deleteObject('tenant', undefined, path);\n\nexport const readUIConfigurations = (): Promise<any> => readTenantObject('uiConfigurations/default');\n\nexport const readUISecrets = (): Promise<any> => readTenantObject('uiSecrets/default');\n\nexport const writeUIConfigurations = (value: unknown): Promise<any> =>\n\twriteTenantObject('uiConfigurations/default', value);\n\nexport const deleteUIConfigurations = (): Promise<any> => deleteTenantObject('uiConfigurations/default');\n\nexport const readConditionMonitoringPriorities = (): Promise<any> =>\n\treadTenantObject('uiConfigurations/conditionmonitoringpriorities');\n\nexport const writeConditionMonitoringPriorities = (value: unknown): Promise<any> =>\n\twriteTenantObject('uiConfigurations/conditionmonitoringpriorities', value);\n\nexport const deleteConditionMonitoringPriorities = (): Promise<any> =>\n\tdeleteTenantObject('uiConfigurations/conditionmonitoringpriorities');\n\nexport const readEULA = (localeCode: string): Promise<ArrayBuffer> =>\n\treadTenantObject(`terms/eula-${localeCode}`, true);\n\nexport const readEULAList = (): Promise<BlobMeta[]> => readTenantObject('terms?meta=true');\n\nexport const writeEULA = (\n\tlocaleCode: string,\n\tvalue: unknown,\n\tfileName: string,\n\tcontentType: string,\n\taxiosInstance?: AxiosInstance\n): Promise<any> =>\n\twriteTenantObject(\n\t\t`terms/eula-${localeCode}`,\n\t\tvalue,\n\t\t{\n\t\t\t'X-Blob-Meta-Filename': fileName,\n\t\t\t'Content-Type': contentType\n\t\t},\n\t\taxiosInstance\n\t);\n\nexport const deleteEULA = (localeCode: string): Promise<any> => deleteTenantObject(`terms/eula-${localeCode}`);\n\nexport const readLegalPage = (legalPage: LegalPage): Promise<any> => readTenantObject(`terms/${legalPage}`);\n\n/*\n * User Blobox\n */\n\nconst checkAccountObject = (path: string): Promise<any> => checkObject('accounts', 'me', path);\n\nexport const readAccountObject = (path: string): Promise<any> => readObject('accounts', 'me', path, false);\n\nexport const writeAccountObject = (path: string, value: unknown): Promise<void> =>\n\twriteObject('accounts', 'me', path, value);\n\nexport const deleteAccountObject = (path: string): Promise<void> => deleteObject('accounts', 'me', path);\n\nexport const checkStartPage = (): Promise<any> => checkAccountObject('uiConfigurations/startpage');\n\nexport const readStartPage = (): Promise<string> => readAccountObject('uiConfigurations/startpage');\n\nexport const writeStartPage = (value: string): Promise<void> => writeAccountObject('uiConfigurations/startpage', value);\n\nexport const writeReleaseNotesVersionsViewed = (value: string[]): Promise<void> =>\n\twriteAccountObject('uiConfigurations/releasenotesversionsviewed', value);\n\nexport const readReleaseNotesVersionsViewed = (): Promise<string[]> =>\n\treadAccountObject('uiConfigurations/releasenotesversionsviewed');\n\nexport const readReleaseNotesSubscription = (): Promise<boolean> =>\n\treadAccountObject('uiConfigurations/releasenotessubscription');\n\nexport const writeReleaseNotesSubscription = (value: boolean): Promise<any> =>\n\twriteAccountObject('uiConfigurations/releasenotessubscription', value);\n\nexport const checkShowUserDocumentation = (): Promise<any> =>\n\tcheckAccountObject('uiConfigurations/showuserdocumentation');\n\nexport const readShowUserDocumentation = (): Promise<boolean> =>\n\treadAccountObject('uiConfigurations/showuserdocumentation');\n\nexport const writeShowUserDocumentation = (value: boolean): Promise<void> =>\n\twriteAccountObject('uiConfigurations/showuserdocumentation', value);\n\nexport const writePaginationSettings = (value: UserPaginationSettings): Promise<any> =>\n\twriteAccountObject('uiConfigurations/paginationsettings', value);\n\nexport const readPaginationSettings = (): Promise<UserPaginationSettings> =>\n\treadAccountObject('uiConfigurations/paginationsettings');\n\nexport const writeFavorites = (value: any): Promise<any> => writeAccountObject('uiConfigurations/favorites', value);\n\nexport const readFavorites = (): any => readAccountObject('uiConfigurations/favorites');\n\nexport const deleteStartPage = (): Promise<any> => deleteAccountObject('uiConfigurations/startpage');\n\nexport const writeAdvancedSearchDefaultProperties = (\n\tdefaultProperties: AdvancedSearchDefaultProperty[],\n\tcontext: string\n): Promise<any> => writeAccountObject(`uiConfigurations/advsearchprops${context}`, defaultProperties);\n\nexport const readAdvancedSearchDefaultProperties = (context: string): Promise<any> =>\n\treadAccountObject(`uiConfigurations/advsearchprops${context}`);\n\n/*\nAsset Blob Series\n */\nexport const readAssetBlobSeries = (assetUrn: string, from: number, to: number): Promise<Array<any>> => {\n\tconst params = {\n\t\tfrom: new Date(from).toISOString(),\n\t\tto: new Date(to).toISOString()\n\t};\n\treturn Promise.all([\n\t\tgetAxios()\n\t\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs`, {\n\t\t\t\tparams\n\t\t\t})\n\t\t\t.then(extractData),\n\t\tgetAxios()\n\t\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs`, {\n\t\t\t\tparams: {...params, meta: true}\n\t\t\t})\n\t\t\t.then(extractData)\n\t]).then(([urls, metaData]) => {\n\t\treturn urls.map((url: string, index: number) => {\n\t\t\tconst urlSegments = url.split('/');\n\t\t\tconst uniqueKey = urlSegments.slice(urlSegments.length - 2).join('/');\n\t\t\treturn {...metaData[index], blobUniqueKey: uniqueKey};\n\t\t});\n\t});\n};\n\nexport const downloadAssetBlobSeriesItem = (assetUrn: string, itemKey: string): Promise<any> =>\n\tgetAxios()\n\t\t.get(`/beta/assets/${encodeURIComponent(assetUrn)}/blobSeries/assetBlobs/${itemKey}`, {\n\t\t\tresponseType: 'arraybuffer'\n\t\t})\n\t\t.then(extractData);\n\n/*\nAdministration Blob\n */\nexport const readAccountGroupObject = (accountGroupId: number, path: string, asArrayBuffer?: boolean): Promise<any> =>\n\tgetAxios()\n\t\t.get(\n\t\t\t`/beta/administration/accountGroups/${accountGroupId}/blobs/${path}`,\n\t\t\tasArrayBuffer ? {responseType: 'arraybuffer'} : {}\n\t\t)\n\t\t.then(extractData);\n\n/*\nAccount Groups Blob\n */\nexport const readAccountGroupObjectBasedOnMembership = (\n\taccountGroupId: number,\n\tpath: string,\n\tasArrayBuffer?: boolean\n): Promise<any> => readObject('accountGroups', accountGroupId, path, !!asArrayBuffer);\n\nexport const writeAccountGroupObject = (\n\taccountGroupId: number,\n\tpath: string,\n\tvalue: unknown,\n\theaders?: Record<string, string>,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => writeObject('accountGroups', accountGroupId, path, value, headers, axiosInstance);\n\nexport const deleteAccountGroupObject = (accountGroupId: number, path: string): Promise<any> =>\n\tdeleteObject('accountGroups', accountGroupId, path);\n\nexport type AzureB2cConfiguration = {\n\tclientId: string;\n\t// Format of the authority field: See https://learn.microsoft.com/en-us/answers/questions/1275356/error-sample-nodejs-app-authetication-with-azure-b?orderby=oldest\n\tauthority: string;\n\tauthorityDomain: string;\n\tregisterMFADevicePolicyUrl?: string;\n};\nexport const readAzureB2cConfiguration = async (): Promise<AzureB2cConfiguration | undefined> => {\n\treturn readTenantObject('uiConfigurations/adb2c');\n};\n","import {getAxios, extractData} from './axios';\nimport type {Asset} from './asset';\nimport type {PaginationSettings} from './pagination';\n\ntype Datatype = 'Float' | 'String' | 'Boolean' | 'Binary' | 'Integer';\n\ntype ModbusType = 'output' | 'input' | 'inputbit' | 'outputbit';\n\ntype OperationMode = 'read' | 'write' | 'readWrite';\n\ntype ModbusWidth = 16 | 32 | 64;\n\ntype AbstractConfigurationBody = {\n\tsamplingInterval: number;\n\tassetUrn: string | null | undefined;\n\tassetTypeUrn?: string;\n};\n\nexport type ModbusConfigurationBody = AbstractConfigurationBody & {\n\tconfigurationType: 'modbus';\n\tuseSameTimestamp: boolean;\n\tpollingDelay: number;\n\tdisableBlockReading: boolean;\n\tuseSerial: boolean;\n\tip: string | null | undefined;\n\tport: number | null | undefined;\n\tserialDevice: string | null | undefined;\n\tserialParity: string | null | undefined;\n\tserialBaudrate: number | null | undefined;\n\tserialDataBit: number | null | undefined;\n\tserialStopBit: number | null | undefined;\n\tserialMode: string | null | undefined;\n\tconnectorElements: Array<ModbusConnectorElement>;\n};\n\nexport type TestDataConfigurationBody = AbstractConfigurationBody & {\n\tconfigurationType: 'testData';\n\tinterval?: number;\n\trandomValue?: boolean;\n\trandomIndex?: boolean;\n\tdatapointKey?: string;\n\tdatatype?: Datatype;\n\tvalues?: Array<number>;\n};\n\nexport type DataVariable = {\n\tnodeId: string;\n\tnodeIdType: string;\n\tnodeIdNamespaceIndex: number;\n\tkey: string;\n\tsamplingInterval: number | null | undefined;\n\tpolling: boolean;\n\tqueueSize: number | null | undefined;\n\tpublishingInterval: number | null | undefined;\n\ttransformArrayToString: boolean | null | undefined;\n\tarrayStringDelimiter: string | null | undefined;\n};\n\nexport type Configuration = {\n\tid?: number;\n\tname: string;\n\tcontent: ModbusConfigurationBody | TestDataConfigurationBody;\n};\n\nexport type ModbusConnectorElement = {\n\treactableKey?: string;\n\ttype: 'modbusElement';\n\tkey: string;\n\tdatatype: Datatype;\n\tunit: string;\n\taddress: number;\n\tslave: number;\n\tfactor: number;\n\tmodbusType: ModbusType;\n\tsigned: boolean;\n\tmode: OperationMode;\n\tsamplingInterval: (number | string) | null | undefined;\n\thexString: boolean;\n\tbigEndian: boolean;\n\tstringLength: number;\n\twidth: ModbusWidth | null | undefined;\n};\n\nexport type ConfigurationListObject = Record<string, Configuration>;\n\nexport type ConfigurationKeyToId = Record<string, number>;\n\nexport const fetchConfigurations = (assetId: number): Promise<ConfigurationListObject> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/configurations`).then(extractData);\n};\n\nexport const fetchConfigurationByName = (name: string): Promise<Configuration> => {\n\treturn getAxios()\n\t\t.get(`/v2/configurations/name/${encodeURIComponent(name)}`)\n\t\t.then(extractData);\n};\n\nexport const createConfiguration = (configuration: Configuration): Promise<Configuration> => {\n\treturn getAxios().post(`/v2/configurations`, configuration).then(extractData);\n};\n\nexport const updateConfiguration = (configuration: Configuration): Promise<Configuration> => {\n\treturn getAxios() // $FlowIgnore configuration.id is present in update case\n\t\t.put(`/v2/configurations/${configuration.id}`, configuration)\n\t\t.then(extractData);\n};\n\nexport const deleteConfiguration = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/configurations/${id}`);\n};\n\nexport const assignConfigurationsToAsset = (\n\tassetId: number,\n\tconfigurationKeyToIdObject: ConfigurationKeyToId\n): Promise<ConfigurationListObject> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/configurations`, configurationKeyToIdObject).then(extractData);\n};\n\nexport const fetchAssignedGatewaysToConfiguration = (\n\tid: number,\n\tpaginationSettings?: PaginationSettings\n): Promise<Asset[]> => {\n\tconst settings = paginationSettings\n\t\t? {...paginationSettings}\n\t\t: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000,\n\t\t\t\tsort: ''\n\t\t\t};\n\treturn getAxios()\n\t\t.get(`/v2/configurations/${id}/gateways`, {\n\t\t\tparams: settings\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type DataType = 'BOOLEAN' | 'DOUBLE' | 'LONG' | 'TEXT' | 'GEO_POSITION' | 'STRUCTURED';\n\nexport type DatapointType = 'RAW' | 'CALCULATED';\n\nexport type Unit = {\n\tname: string;\n\tprint: string;\n};\n\nexport type Thresholds = {\n\tthreshold1?: number | null | undefined;\n\tthreshold2?: number | null | undefined;\n};\n\nexport type Datapoint = {\n\tname: string;\n\tdatatype: DataType;\n\tdatapointType: DatapointType;\n\tunit?: Unit;\n\tthresholds: Thresholds;\n\tproperties?: Record<string, string | number | boolean>;\n};\n\nexport type DatapointValueGeoPositionType = {\n\tlatitude: number;\n\tlongitude: number;\n};\n\nexport type DatapointValueType = boolean | number | string | DatapointValueGeoPositionType;\n\nexport type DatapointValue = [number, DatapointValueType, DatapointValueType];\n\nexport const fetchDatapointsByAssetId = (assetId: number): Promise<Array<Datapoint>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/datapoints`).then(extractData);\n};\n\nexport const createDatapoint = (assetId: number, datapoint: Datapoint): Promise<Datapoint> => {\n\tconst {name, datatype, unit} = datapoint;\n\tconst queryParams: Record<string, any> = {\n\t\tdatatype\n\t};\n\tif (unit) queryParams.unit = unit.name;\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(name)}`, queryParams)\n\t\t.then(extractData);\n};\n\nexport const updateDatapointThresholds = (assetId: number, datapoint: Datapoint): Promise<Datapoint> => {\n\tconst {name, datatype, thresholds} = datapoint;\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(name)}`, {\n\t\t\tdatatype,\n\t\t\tthresholds\n\t\t})\n\t\t.then(extractData);\n};\n\nfunction datatypeToDatapointType(datatype: DataType): string {\n\tswitch (datatype) {\n\t\tcase 'GEO_POSITION':\n\t\t\treturn 'geoPosition';\n\t\tdefault:\n\t\t\treturn datatype.toLowerCase();\n\t}\n}\n\nexport const getDatapointValues = (\n\tassetUrn: string,\n\tdpName: string,\n\tdataType: DataType,\n\tstart: number | null | undefined,\n\tend: number | null | undefined,\n\tonlyChangedValues = false,\n\torder: 'ASC' | 'DESC' = 'ASC',\n\tlimit = 10000\n): Promise<Array<DatapointValue>> => {\n\treturn getAxios()\n\t\t.get(\n\t\t\t`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(\n\t\t\t\tdpName\n\t\t\t)}/${datatypeToDatapointType(dataType)}/entries`,\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tstart: start ? new Date(start).toISOString() : '',\n\t\t\t\t\tend: end ? new Date(end).toISOString() : '',\n\t\t\t\t\torder,\n\t\t\t\t\tlimit,\n\t\t\t\t\tonlyChangedValues\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const getDatapointGeoPositionValues = (\n\tassetUrn: string,\n\tstart?: number,\n\tend?: number,\n\torder: 'ASC' | 'DESC' = 'ASC',\n\tlimit = 10000,\n\tonlyChangedValues = false\n): Promise<Array<DatapointValue>> => {\n\treturn getAxios()\n\t\t.get(`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/geoPosition/geoPosition/entries`, {\n\t\t\tparams: {\n\t\t\t\tstart: start ? new Date(start).toISOString() : '',\n\t\t\t\tend: end ? new Date(end).toISOString() : '',\n\t\t\t\torder,\n\t\t\t\tlimit,\n\t\t\t\tonlyChangedValues\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const getDatapointSamples = (\n\tassetUrn: string,\n\tdpName: string,\n\tdataType: DataType,\n\tstart: number,\n\tend: number,\n\tslices: number\n): Promise<Array<DatapointValue>> => {\n\tconst url = `/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(\n\t\tdpName\n\t)}/${datatypeToDatapointType(dataType)}/samples`;\n\n\treturn getAxios()\n\t\t.get(url, {\n\t\t\tparams: {\n\t\t\t\tstart: new Date(start).toISOString(),\n\t\t\t\tend: new Date(end).toISOString(),\n\t\t\t\tslices,\n\t\t\t\tincludeFirst: false,\n\t\t\t\tincludeLast: false\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.timeSeries.entries);\n};\n\nexport const updateDatapointUnit = (assetId: number, dpName: string, unit: Unit | null | undefined): Promise<any> => {\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(dpName)}/unit`, unit)\n\t\t.then(extractData);\n};\n\nexport const deleteDatapoint = (assetId: number, dpName: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/datapoints/${encodeURIComponent(dpName)}`);\n};\n\nfunction transformDatatypeToUrlSegment(datatype: DataType) {\n\tswitch (datatype) {\n\t\tcase 'GEO_POSITION':\n\t\t\treturn 'geoPosition';\n\t\tdefault:\n\t\t\treturn datatype.toLowerCase();\n\t}\n}\n\nexport const deleteDatapointEntries = (\n\tassetUrn: string,\n\tdp: Datapoint,\n\tstartOptional?: string,\n\tendOptional?: string\n): Promise<any> => {\n\tconst DEFAULT_START = new Date(0).toISOString();\n\tconst start = startOptional || DEFAULT_START;\n\tconst body = endOptional\n\t\t? {\n\t\t\t\tstart,\n\t\t\t\tend: endOptional\n\t\t\t}\n\t\t: {\n\t\t\t\tstart\n\t\t\t};\n\tconst dataType = transformDatatypeToUrlSegment(dp.datatype);\n\treturn getAxios().delete(\n\t\t`/v2/assets/urn/${encodeURIComponent(assetUrn)}/datapoints/${encodeURIComponent(dp.name)}/${dataType}/entries`,\n\t\t{\n\t\t\tparams: body\n\t\t}\n\t);\n};\n","import {extractData, getAxios, retryRequest} from './axios';\nimport {DatapointValueGeoPositionType, DataType} from './datapoint';\nimport {PaginationRequestAdxData, PaginationSettingsAdxData, paginationSettingsAdxToQueryParams} from './pagination';\n\nexport type StructuredDatapointsNodeDataType = 'string' | 'number' | 'boolean' | 'array';\n\nexport type PropertyNode = {\n\tpropertyPath: string;\n\tdatatypes: StructuredDatapointsNodeDataType[];\n};\n\nexport type StructuredDatapointPropertyNodes = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tpropertyNodes: PropertyNode[];\n\tresultLimitExceeded: boolean;\n};\n\ntype DistinctValuesResponseArrays = (string | number | boolean | object)[][] | (string | number | boolean | object)[];\n\nexport type DistinctValuesResponse = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tpropertyPath: string;\n\tdistinctValues: string[] | number[] | boolean[] | DistinctValuesResponseArrays;\n\tresultLimitExceeded: boolean;\n};\n\ntype Condition = {\n\tpropertyPath?: string;\n\toperator:\n\t\t| 'is'\n\t\t| 'larger_than'\n\t\t| 'larger_or_equal_than'\n\t\t| 'less_than'\n\t\t| 'less_or_equal_than'\n\t\t| 'contains'\n\t\t| 'exists';\n\tvalue: string | number | boolean | number[] | string[] | boolean[];\n};\n\nexport type AdxDistinctValuesDataType = 'double' | 'long' | 'boolean' | 'text' | 'geo_position' | 'structured';\n\nexport const DataTypeToAdxDistinctDatapointType: Record<DataType, AdxDistinctValuesDataType> = {\n\tBOOLEAN: 'boolean',\n\tDOUBLE: 'double',\n\tLONG: 'long',\n\tTEXT: 'text',\n\tGEO_POSITION: 'geo_position',\n\tSTRUCTURED: 'structured'\n};\n\ntype Filter = {\n\tassetUrn: string;\n\tdatapointName: string;\n\tdatatype: AdxDistinctValuesDataType;\n\tconditions: Condition[];\n};\n\nexport type PaginationRequestPropertyAdxData = {\n\tsort: string;\n\tpage: number;\n\tsize: number;\n};\n\ntype DatapointValuesRequest = {\n\tinterval: {\n\t\tstart: string;\n\t\tend: string;\n\t};\n\tfilters: Filter[];\n};\n\ntype DatapointValueContent = string | number | DatapointValueGeoPositionType | NestedDatapointValue;\ntype NestedDatapointValue = Record<string, string | number>;\n\ntype DatapointValue = {\n\ttimestamp: string;\n\tassetUrn: string;\n\tdatapointName: string;\n\tvalue: DatapointValueContent;\n};\n\nexport type DatapointValuesResponse = {\n\tcontent: DatapointValue[];\n\tpagination: PaginationSettingsAdxData;\n\tqueryId: string;\n};\n\nexport const getStructuredDatapointPropertyNodes = (\n\tassetUrn: string,\n\tdatapointName: string,\n\tdatatype: DataType,\n\ttsFrom: string,\n\ttsTo: string\n): Promise<StructuredDatapointPropertyNodes> => {\n\tconst queryParameters: Record<string, string> = {\n\t\tdatatype: DataTypeToAdxDistinctDatapointType[datatype],\n\t\tstart: tsFrom,\n\t\tend: tsTo\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/assets/${assetUrn}/datapoints/${datapointName}/propertyNodes`, {params: queryParameters})\n\t\t.then(extractData);\n};\n\nexport const getStructuredDatapointDistinctValues = (\n\tassetUrn: string,\n\tdatapointName: string,\n\tdatatype: DataType,\n\ttsFrom: string,\n\ttsTo: string,\n\tpropertyPath?: string // Optional because it's unnecessary for primitive datapoints\n): Promise<DistinctValuesResponse> => {\n\tconst queryParameters: Record<string, string | number> = {\n\t\tdatatype: DataTypeToAdxDistinctDatapointType[datatype],\n\t\tstart: tsFrom,\n\t\tend: tsTo,\n\t\tpropertyPath: propertyPath || ''\n\t};\n\n\tif (propertyPath) {\n\t\tqueryParameters.propertyPath = propertyPath;\n\t}\n\n\treturn retryRequest(() =>\n\t\tgetAxios()\n\t\t\t.get(`/v2/assets/${assetUrn}/datapoints/${datapointName}/distinctValues`, {\n\t\t\t\tparams: queryParameters\n\t\t\t})\n\t\t\t.then(extractData)\n\t);\n};\n\nexport const getDatapointValuesByFilters = (\n\tstart: string,\n\tend: string,\n\tfilters: Filter[],\n\tpaginationSettings: PaginationRequestAdxData\n): Promise<DatapointValuesResponse> => {\n\tconst requestPayload: DatapointValuesRequest = {\n\t\tinterval: {\n\t\t\tstart,\n\t\t\tend\n\t\t},\n\t\tfilters\n\t};\n\n\tconst queryString = buildDatapointValuesQueryString(paginationSettings);\n\treturn retryRequest(() =>\n\t\tgetAxios().post(`/v2/assets/datapointValues${queryString}`, requestPayload).then(extractData)\n\t);\n};\n\nexport const getDatapointValuesByQueryId = (\n\tpaginationSettings: PaginationRequestAdxData,\n\tqueryId: string\n): Promise<DatapointValuesResponse> => {\n\tconst queryString = buildDatapointValuesQueryString(paginationSettings);\n\treturn retryRequest(() => getAxios().get(`/v2/assets/datapointValues/${queryId}${queryString}`).then(extractData));\n};\n\nconst buildDatapointValuesQueryString = (paginationSettings: PaginationRequestAdxData): string => {\n\tconst queryParams = paginationSettingsAdxToQueryParams(paginationSettings);\n\tlet params: Record<string, string> = {};\n\n\tif (queryParams !== undefined) {\n\t\tparams = {\n\t\t\tpage: queryParams.page.toString(),\n\t\t\tsize: queryParams.size.toString(),\n\t\t\tsort: queryParams.sort\n\t\t};\n\t}\n\n\treturn Object.keys(params).length > 0 ? `?${new URLSearchParams(params).toString()}` : '';\n};\n","import {extractData, getAxios} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\n\nexport type DataProcessingDefinitionDatapointDataType = 'BOOLEAN' | 'DOUBLE' | 'LONG' | 'TEXT';\n\nexport type DataProcessingDefinitionProcessingDefType = 'expressionPD';\n\nexport type DataProcessingDefinitionProcessingPeriod = 'INSTANT' | 'MIN1' | 'MIN15' | 'MIN30' | 'HOUR';\n\nexport type DataProcessingDefinitionDatapoint = {\n\tdatapointKey: string;\n\tvariableName: string;\n\tdataType: DataProcessingDefinitionDatapointDataType;\n\trequiresValueInCurrentPeriod: boolean;\n};\n\nexport type DataProcessingDefinitionOutput = {\n\toutputKey: string;\n\tvariableName: string;\n};\n\nexport type DataProcessingDefinitionBody = {\n\tid?: string;\n\tversion?: number;\n\tprocessingDefType: string;\n\tkpiName: string;\n\tprocessingPeriod: DataProcessingDefinitionProcessingPeriod;\n\tresetTo: string;\n\tensureBoundaryValues: boolean;\n\texpression: string;\n\tinput: Array<DataProcessingDefinitionDatapoint>;\n\toutput: Array<DataProcessingDefinitionOutput>;\n\tpublishAsDatapointValues?: boolean;\n};\n\nexport type DataProcessingDefinition = {\n\tid: number;\n\tdirectlyAssigned: boolean;\n\tetag?: string | null | undefined;\n\tdefinition: DataProcessingDefinitionBody;\n};\n\nexport type DataProcessingDefinitionAssignment = {\n\tid: number;\n\tkpiName: string;\n};\n\nexport type AssetAssignment = {\n\tassetId: number;\n\tassetUrn: string;\n\tassetName: string;\n};\n\nexport type DataProcessingDefinitionAssetAssignment = DataProcessingDefinitionAssignment & {\n\tassignedToAssets: Array<AssetAssignment>;\n};\n\nexport type AssetGroupAssignment = {\n\tassetGroupId: number;\n\tassetGroupName: string;\n\tassetGroupDisplayName: string;\n};\n\nexport type DataProcessingDefinitionAssetGroupAssignment = DataProcessingDefinitionAssignment & {\n\tassignedToAssetGroups: Array<AssetGroupAssignment>;\n};\n\nexport type AccountGroupAssignment = {\n\taccountGroupId: number;\n\taccountGroupName: string;\n\taccountGroupDisplayName: string;\n};\n\nexport type DataProcessingDefinitionAccountGroupAssignment = DataProcessingDefinitionAssignment & {\n\taccessesForAccountGroups: Array<AccountGroupAssignment>;\n};\n\nexport type DataProcessingDefinitionValidation = {\n\tid: number;\n\tname: string;\n\tcompatibleDatapoints: Array<string>;\n\tmissingDatapoints: Array<string>;\n};\n\nexport type DataProcessingDefinitionAccessList = {\n\taccountGroupId: number;\n};\n\ntype EvaluationsParamsInput = {\n\tvariableName: string;\n\tdatapointKey: string;\n\tdataType: string;\n};\n\nexport type EvaluationsParams = {\n\texpression: string;\n\tperiod: string;\n\tfrom: string;\n\tto: string;\n\tinputs: Array<EvaluationsParamsInput>;\n};\n\nexport type DataProcessingDefinitionEvaluationSeries = {\n\tseries: Array<{\n\t\tvariable: string;\n\t\ttype: string;\n\t\tdata: Array<[string, number]>;\n\t}>;\n};\n\nexport type DataProcessingDefinitionsListFilterSettings = {\n\tkpiName?: string;\n\tpublishAsDatapointValues?: string;\n};\n\nexport const listDataProcessingDefinitions = (\n\tfilterSettings: DataProcessingDefinitionsListFilterSettings,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<DataProcessingDefinition>> => {\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 10,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\tconst params = {\n\t\t...filterSettings,\n\t\tpage,\n\t\tsize,\n\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions', {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAssetAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAssetAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/assets', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAssetGroupAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAssetGroupAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/assetGroups', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAccountGroupAssignments = (\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<DataProcessingDefinitionAccountGroupAssignment>> => {\n\treturn getAxios()\n\t\t.get('/v2/dataProcessingDefinitions/accesses', {\n\t\t\tparams: {\n\t\t\t\tid: dataProcessingDefinitionIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const getDataProcessingDefinitionById = (definitionId: number): Promise<DataProcessingDefinition> => {\n\treturn getAxios()\n\t\t.get(`/v2/dataProcessingDefinitions/${definitionId}`)\n\t\t.then((response) => {\n\t\t\tconst data = extractData(response);\n\t\t\tconst etag = response.headers?.etag || '';\n\t\t\treturn {...data, etag};\n\t\t});\n};\n\nexport const fetchDataProcessingDefinitionsAssignedToAsset = (\n\tassetId: number\n): Promise<Array<DataProcessingDefinition>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/dataProcessingDefinitions`).then(extractData);\n};\n\nexport const fetchDataProcessingDefinitionsAssignedToAssetGroup = (\n\tassetGroupId: number\n): Promise<Array<DataProcessingDefinition>> => {\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitions`).then(extractData);\n};\n\nexport const createDataProcessingDefinition = (dataProcessingDefinition: {\n\tdefinition: DataProcessingDefinitionBody;\n\tassetIdsWithAccess?: number[];\n\taccountGroupIdsWithAccess?: number[];\n}): Promise<DataProcessingDefinition> => {\n\treturn getAxios().post('/v2/dataProcessingDefinitions', dataProcessingDefinition).then(extractData);\n};\n\nexport const updateDataProcessingDefinition = (data: DataProcessingDefinition): Promise<DataProcessingDefinition> => {\n\tconst {etag, ...dataProcessingDefinition} = data;\n\treturn getAxios()\n\t\t.put(`/v2/dataProcessingDefinitions/${dataProcessingDefinition.id}`, dataProcessingDefinition, {\n\t\t\theaders: etag\n\t\t\t\t? {\n\t\t\t\t\t\t'If-Match': etag\n\t\t\t\t\t}\n\t\t\t\t: {}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const assignDataProcessingDefinitionsToAsset = (\n\tassetId: number,\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.put(`/v2/assets/${assetId}/dataProcessingDefinitionsById`, dataProcessingDefinitionIds)\n\t\t.then(extractData);\n};\n\nexport const assignDataProcessingDefinitionsToAssetGroup = (\n\tassetGroupId: number,\n\tdataProcessingDefinitionIds: Array<number>\n): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.put(`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitionsById`, dataProcessingDefinitionIds)\n\t\t.then(extractData);\n};\n\nexport const deleteDataProcessingDefinition = (dataProcessingDefinitionId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/dataProcessingDefinitions/${dataProcessingDefinitionId}`);\n};\n\nexport const validateDataProcessingDefinitionForAssetGroup = (\n\tdataProcessingDefinition: DataProcessingDefinition,\n\tassetGroupId: number,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<DataProcessingDefinitionValidation>> => {\n\tconst {definition} = dataProcessingDefinition;\n\tconst settings = paginationSettings || {\n\t\tpage: 0,\n\t\tsize: 10,\n\t\tsort: ''\n\t};\n\tconst {page, size, sort} = settings;\n\treturn getAxios()\n\t\t.post(\n\t\t\t`/v2/assetGroups/${assetGroupId}/dataProcessingDefinitionValidation`,\n\t\t\t{\n\t\t\t\tdefinition\n\t\t\t},\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpage,\n\t\t\t\t\tsize,\n\t\t\t\t\tsort: sort ? `${sort.property},${sort.direction}` : '',\n\t\t\t\t\tignoreCase: true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t\t.then(extractData);\n};\n\nexport const listDataProcessingDefinitionAccesses = (\n\tdefinitionId: number\n): Promise<DataProcessingDefinitionAccessList> => {\n\treturn getAxios().get(`/v2/dataProcessingDefinitions/${definitionId}/access`).then(extractData);\n};\n\nexport const addAccessToDataProcessingDefinition = (definitionId: number, accountGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/dataProcessingDefinitions/${definitionId}/access/${accountGroupId}`);\n};\n\nexport const removeAccessToDataProcessingDefinition = (definitionId: number, accountGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/dataProcessingDefinitions/${definitionId}/access/${accountGroupId}`);\n};\n\nexport const getDataProcessingDefinitionEvaluations = (\n\turn: string,\n\tparams: EvaluationsParams\n): Promise<DataProcessingDefinitionEvaluationSeries> =>\n\tgetAxios()\n\t\t.post(`/v2/dataProcessingDefinitionEvaluations/${encodeURIComponent(urn)}`, params)\n\t\t.then(extractData);\n","import {getAxios} from './axios';\n\nexport type AggregatedFact = {\n\taggregatedValue: number | null | undefined;\n\trangeEnd: string;\n\trangeStart: string;\n};\n\nexport type AggregatedFacts = {\n\taggregatedFacts: Array<AggregatedFact> | null | undefined;\n};\n\ntype KpiQueryType = 'QUERY_SUM' | 'QUERY_AVERAGE' | 'QUERY_MAX' | 'QUERY_MIN' | 'QUERY_ALL';\n\nexport type KpiQueryAssetsBy = 'BY_ASSET_ID' | 'BY_SITE_GROUP_ID' | 'BY_ROBOT_SYSTEM_GROUP_ID';\n\nexport type KpiParams = {\n\tkpiName: string;\n\tqueryAssetsBy: KpiQueryAssetsBy;\n\tqueryAssetsById: number;\n\tqueryType: KpiQueryType;\n\tdaysOfWeek?: string;\n\tdateFrom: string;\n\tdateTo: string;\n\ttsFrom?: string;\n\ttsTo?: string;\n\ttimeFrom?: string;\n\ttimeTo?: string;\n\tuserId?: number;\n\texternalUuid?: string | null | undefined;\n\tgroupBy?: string;\n};\n\nexport const getKpiGenericWithTimestamp = (params: KpiParams): Promise<AggregatedFacts> =>\n\tgetAxios()\n\t\t.get('/v2/kpis/facts', {\n\t\t\tparams: {...params}\n\t\t})\n\t\t.then(({data}) => data);\n\nexport const getKpiGeneric = (params: KpiParams): Promise<Array<number>> =>\n\tgetAxios()\n\t\t.get('/v2/kpis/facts/generic', {\n\t\t\tparams: {...params}\n\t\t})\n\t\t.then(({data}) => data);\n","import {getAxios, extractData} from './axios';\n\nconst DAY_MILLIS = 24 * 60 * 60 * 1000;\n\nexport type EventType = 'STATEFUL' | 'ONE_TIME';\n\nexport type Event = {\n\tassetId: number;\n\teventType: EventType;\n\teventKey: string;\n\tpriority: number;\n\toccurredAt: number;\n\tclearedAt: number | null | undefined;\n\tacknowledgeAt: number | null | undefined;\n\ttext: string;\n\textraProperties: Record<string, string>;\n};\n\nexport const fetchEventsByAssetId = (\n\tassetId: number,\n\tfrom?: number,\n\tto?: number,\n\texcludeAcknowledged?: boolean\n): Promise<Array<Event>> => {\n\tconst now = Date.now();\n\tconst defaultTo = now;\n\tconst defaultFrom = now - 28 * DAY_MILLIS;\n\tconst extraParams =\n\t\ttypeof excludeAcknowledged !== 'undefined'\n\t\t\t? {\n\t\t\t\t\texcludeAcknowledged\n\t\t\t\t}\n\t\t\t: {};\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/history/${assetId}`, {\n\t\t\tparams: {\n\t\t\t\tfrom: new Date(from ?? defaultFrom).toISOString(),\n\t\t\t\tto: new Date(to ?? defaultTo).toISOString(),\n\t\t\t\t...extraParams\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.events.map(parseEvent));\n};\n\nexport const fetchOpenStatefulEventsByAssetId = (\n\tassetId: number,\n\texcludeAcknowledged = true\n): Promise<Array<Event>> => {\n\tconst params = {\n\t\texcludeAcknowledged\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/stateful/${assetId}/open`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => (data.events && data.events.map(parseEvent)) || []);\n};\n\nconst parseEvent = (event: any): Event => {\n\treturn {\n\t\t...event,\n\t\toccurredAt: parseIsoDateString(event.occurredAt),\n\t\tclearedAt: parseIsoDateString(event.clearedAt),\n\t\tacknowledgeAt: parseIsoDateString(event.acknowledgeAt)\n\t};\n};\n\nconst parseIsoDateString = (isoString: string | null | undefined): number | null | undefined => {\n\treturn isoString ? new Date(isoString).getTime() : null;\n};\n\n/** @deprecated use acknowledgeStatefulEvent or acknowledgeStatelessEvent instead. */\nexport const acknowledgeEvent = (assetId: number, eventKey: string): Promise<any> => {\n\treturn getAxios().put(`/v2/eventLog/stateful/${assetId}/${encodeURIComponent(eventKey)}/acknowledge`);\n};\n\nexport const acknowledgeStatefulEvent = (assetId: number, eventKey: string): Promise<any> => {\n\treturn getAxios().put(`/v2/eventLog/stateful/${assetId}/${encodeURIComponent(eventKey)}/acknowledge`);\n};\n\nexport const acknowledgeStatelessEvent = (assetId: number, eventKey: string, occurredAt: number): Promise<any> => {\n\treturn getAxios().put(\n\t\t`/v2/eventLog/stateless/${assetId}/${encodeURIComponent(eventKey)}/acknowledge?occurredAt=${new Date(\n\t\t\toccurredAt\n\t\t).toISOString()}`\n\t);\n};\n\nexport const deleteHistoricEvents = (assetId: number, from?: number, to?: number): Promise<any> => {\n\tconst params: Record<string, unknown> = {};\n\tif (from != null) params.from = new Date(from).toISOString();\n\tif (to != null) params.to = new Date(to).toISOString();\n\treturn getAxios().delete(`/v2/eventLog/history/${assetId}`, {params});\n};\n\nexport const fetchOpenEventsOfMultipleAssets = (assetIds: number[]): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/stateful/assets/open`, {\n\t\t\tparams: {\n\t\t\t\tassetId: assetIds\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchHistoricEventsOfMultipleAssets = (assetIds: number[], from: number, to: number): Promise<any> => {\n\treturn getAxios()\n\t\t.get(`/v2/eventLog/history/assets`, {\n\t\t\tparams: {\n\t\t\t\tassetId: assetIds,\n\t\t\t\tfrom: new Date(from).toISOString(),\n\t\t\t\tto: new Date(to).toISOString()\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((data) => data.events.map(parseEvent));\n};\n","import {getAxios, extractData} from './axios';\n\ntype Locale = {\n\tid: number;\n\ttag: string;\n};\n\nexport type LocaleLanguageAndCountry = {\n\tlocale: string;\n};\n\nexport const fetchLocales = (): Promise<Array<string>> => {\n\treturn getAxios()\n\t\t.get<Locale[]>('/v2/locales')\n\t\t.then(extractData)\n\t\t.then((result) => result.map((locale) => locale.tag));\n};\n","import {getAxios, extractData} from './axios';\n\nexport type GrantedAccess = {\n\tid: number;\n\taccountGroup: number;\n\trequiredAssetGroups: Array<number>;\n};\n\nexport const fetchGrantedAccesses = (userGroupId: number): Promise<Array<GrantedAccess>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 999,\n\t\tsort: 'id,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${userGroupId}/grantedAccesses`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchGrantedAccessesForAssetGroup = (assetGroupId: number): Promise<Array<GrantedAccess>> => {\n\tconst params = {\n\t\tpage: 0,\n\t\tsize: 999,\n\t\tsort: 'id,ASC',\n\t\tignoreCase: true\n\t};\n\treturn getAxios()\n\t\t.get(`/v2/assetGroups/${assetGroupId}/grantedAccesses`, {\n\t\t\tparams\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const createGrantedAccess = (\n\tuserGroupId: number,\n\trequiredAssetGroups: Array<number>\n): Promise<GrantedAccess> => {\n\treturn getAxios()\n\t\t.post(`/v2/accountGroups/${userGroupId}/grantedAccesses`, {\n\t\t\trequiredAssetGroups\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const updateGrantedAccess = (accessId: number, updatedGrantedAccess: GrantedAccess): Promise<GrantedAccess> => {\n\treturn getAxios().put(`/v2/grantedAccesses/${accessId}`, updatedGrantedAccess).then(extractData);\n};\n\nexport const deleteGrantedAccess = (accessId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/grantedAccesses/${accessId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport const fetchNamedQueries = (): Promise<Array<any>> => {\n\treturn getAxios().get('/beta/namedQuery').then(extractData);\n};\n\nexport const executeNamedQuery = (id: string, params: Record<string, any>): Promise<Array<any>> => {\n\treturn getAxios()\n\t\t.put(`/beta/namedQuery/${id}/execute`, params)\n\t\t.then((result) => {\n\t\t\treturn extractData(result);\n\t\t});\n};\n","import {jwtDecode} from 'jwt-decode';\nimport {getAxios, extractData} from './axios';\n\nexport type AuthInfo = {\n\taccountNumber: string;\n\tprincipal: string;\n\taccessToken: string;\n\texpiresAt: number;\n\trefreshToken: string;\n\ttenant: string;\n\tusesOAuth?: boolean;\n};\n\nexport type NGCoreJWTClaims = {\n\texp: number;\n\tjti: string;\n\ttenant: string;\n\tclient_id: string;\n\tuser_name: string;\n\taccount_number: string;\n\tscope: string[];\n};\n\nexport type AuthorizationServerOption = {\n\tname: string;\n\tdisplayName: string;\n\tauthorizationUri: string;\n};\n\nexport type AuthorizationOptions = {\n\tauthorizationServers: Array<AuthorizationServerOption>;\n};\n\nconst OAUTH2_CLIENT_USERNAME = 'OAUTH2_CLIENT';\nconst OAUTH2_CLIENT_PASSWORD = OAUTH2_CLIENT_USERNAME;\n\nexport const requestToken = (principal: string, password: string): Promise<AuthInfo> => {\n\tconst params = new URLSearchParams({\n\t\tgrant_type: 'password',\n\t\tusername: principal,\n\t\tpassword\n\t}).toString();\n\treturn getAxios()\n\t\t.post('/v2/oauth/token', params, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tauth: {\n\t\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then(({access_token, expires_in, refresh_token}) => createAuthInfo(access_token, expires_in, refresh_token));\n};\n\nexport const refreshToken = (token: string): Promise<AuthInfo> => {\n\tconst params = new URLSearchParams({\n\t\tgrant_type: 'refresh_token',\n\t\trefresh_token: token\n\t}).toString();\n\treturn getAxios()\n\t\t.post('/v2/oauth/token', params, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tauth: {\n\t\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then(({access_token, expires_in, refresh_token}) => createAuthInfo(access_token, expires_in, refresh_token));\n};\n\nconst revokeToken = (token: string, tokenTypeHint: string): Promise<any> => {\n\tconst params = new URLSearchParams({\n\t\ttoken: token,\n\t\ttoken_type_hint: tokenTypeHint\n\t}).toString();\n\treturn getAxios().post('/v2/oauth/revoke', params, {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t},\n\t\tauth: {\n\t\t\tusername: OAUTH2_CLIENT_USERNAME,\n\t\t\tpassword: OAUTH2_CLIENT_PASSWORD\n\t\t}\n\t});\n};\n\nexport const revokeAccessToken = (accessToken: string): Promise<any> => {\n\treturn revokeToken(accessToken, 'access_token');\n};\n\nexport const revokeRefreshToken = (accessToken: string): Promise<any> => {\n\treturn revokeToken(accessToken, 'refresh_token');\n};\n\nconst createAuthInfo = (accessToken: string, expiresIn: number, refreshToken: string): AuthInfo => {\n\tconst {account_number, user_name, tenant} = jwtDecode<NGCoreJWTClaims>(accessToken);\n\treturn {\n\t\taccountNumber: account_number,\n\t\tprincipal: user_name,\n\t\taccessToken,\n\t\texpiresAt: new Date().getTime() + expiresIn * 1000,\n\t\trefreshToken,\n\t\ttenant\n\t};\n};\n\nexport const fetchAuthorizationOptions = (): Promise<AuthorizationOptions> => {\n\treturn getAxios().get(`/v2/authorizationOptions`).then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type PropertyType = 'STRING' | 'TEXT' | 'DATE' | 'LONG' | 'DOUBLE' | 'BOOLEAN' | 'IP' | 'GEO';\n\nexport type EntityTarget = 'ASSET' | 'ASSET_GROUP' | 'ACCOUNT' | 'ACCOUNT_GROUP' | 'DATAPOINT';\n\nexport type Property = {\n\tkey: string;\n\ttype: PropertyType;\n\tentityTargets: Array<EntityTarget>;\n\tdeletable: boolean;\n\taddToAll: boolean;\n\tunique?: boolean;\n\trequired?: boolean;\n\tfinal?: boolean;\n\tminLength?: number | null;\n\tmaxLength?: number | null;\n\tregularExpression?: string | null;\n\tallowedValues?: string[] | null;\n};\n\nexport type PropertyValues = Record<string, (number | boolean | string) | null | undefined>;\n\nexport const fetchProperties = (): Promise<Array<Property>> => {\n\treturn getAxios()\n\t\t.get('/v2/properties?size=2000')\n\t\t.then(extractData)\n\t\t.then((response) => response.content);\n};\n\nexport const getPropertyById = (propertyKey: string): Promise<Property> => {\n\treturn getAxios().get(`/v2/properties/${propertyKey}`).then(extractData);\n};\n\nexport const createProperty = (property: Property): Promise<Property> => {\n\treturn getAxios().post('/v2/properties', property).then(extractData);\n};\n\nexport const updateProperty = (property: Property): Promise<Property> => {\n\treturn getAxios().put(`/v2/properties/${property.key}`, property).then(extractData);\n};\n\nexport const deleteProperty = (property: Property): Promise<any> => {\n\treturn getAxios().delete(`/v2/properties/${property.key}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RoleNew = {\n\tname: string;\n\tdescription?: string;\n\tlicenseName?: string | null;\n\tlicenseDisplayName?: string | null;\n};\n\nexport type Role = {\n\tid: number;\n\t/** Whether the current user can assign this role. If undefined, the role is considered assignable. */\n\tassignable?: boolean;\n} & RoleNew;\n\nexport const fetchRoleById = (id: number): Promise<Role> => {\n\treturn getAxios().get(`/v2/roles/${id}`).then(extractData);\n};\n\nexport const fetchRoleByIds = (ids: number[]): Promise<Array<Role>> => {\n\treturn getAxios()\n\t\t.get(`/v2/roles`, {\n\t\t\tparams: {\n\t\t\t\tid: ids,\n\t\t\t\tpage: 0,\n\t\t\t\tsize: ids.length\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchRolesForLicense = (licenseName: string): Promise<Array<Role>> => {\n\treturn getAxios().get(`/v2/licenses/${licenseName}/roles`).then(extractData);\n};\n\nexport const createRole = (item: RoleNew): Promise<Role> => {\n\treturn getAxios().post(`/v2/roles`, item).then(extractData);\n};\n\nexport const createRoleWithLicense = (item: RoleNew, licenseName: string): Promise<Role> => {\n\treturn getAxios().post(`/v2/licenses/${licenseName}/roles`, item).then(extractData);\n};\n\nexport const updateRole = (item: Role): Promise<Role> => {\n\treturn getAxios().put(`/v2/roles/${item.id}`, item).then(extractData);\n};\n\nexport const deleteRole = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/roles/${id}`);\n};\n\nexport const fetchRoles = (): Promise<Array<Role>> => {\n\treturn getAxios()\n\t\t.get('/v2/roles', {\n\t\t\tparams: {\n\t\t\t\tpage: 0,\n\t\t\t\tsize: 1000\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((pageable) => pageable.content);\n};\n\nexport const fetchAuthoritiesOfRole = (id: number): Promise<Array<string>> => {\n\treturn getAxios().get(`/v2/roles/${id}/authorities`).then(extractData);\n};\n\nexport const setAuthoritiesOfRole = (id: number, authorities: Array<string>): Promise<Array<string>> => {\n\treturn getAxios().put(`/v2/roles/${id}/authorities`, authorities).then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RuleDefinitionGeoPosition = {\n\tlatitude: number;\n\tlongitude: number;\n};\n\nexport type RuleDefinitionConfig = {\n\tid: string;\n\tassetId?: number;\n\tinternal: boolean;\n\tcheckType: string;\n\tthresholdValue?: number;\n\tupperThreshold?: boolean;\n\tgeneratedEventKey: string;\n\tdatapointKeys?: Array<string>;\n\tgeneratedEventPriority: number;\n\tdriftType?: string;\n\twindowSizeMs?: number;\n\tupperLimit?: number;\n\tlowerLimit?: number;\n\tnumberOfEvents?: number;\n\tdurationInSeconds?: number;\n\toperation?: string;\n\teventKeys?: Array<string>;\n\tvalue?: string | number | boolean;\n\tvalueDatatype?: string;\n\tepsilon?: number;\n\tgeoFence?: Array<RuleDefinitionGeoPosition>;\n\tthresholdEnter?: number;\n\tthresholdLeave?: number;\n\ttimeFrameSizeMillis?: number;\n};\n\nexport type RuleDefinition = {\n\tid: number;\n\tname: string;\n\tconfig: RuleDefinitionConfig;\n\tdisplayName?: string;\n\tdirectlyAssigned: boolean;\n};\n\nexport type EventTemplateMapping = {\n\tid?: number | null | undefined;\n\truleId?: string | null | undefined;\n\ttemplateName: string;\n\teventKey: string;\n\teventStatus: 'COME' | 'GONE';\n\tlocale: string | null | undefined;\n\tmailAddresses: Array<string> | null | undefined;\n};\n\nexport const fetchAssignedAssetRules = (assetId: number): Promise<Array<RuleDefinition>> => {\n\treturn getAxios().get(`/v2/assets/${assetId}/ruleDefinitions`).then(extractData);\n};\n\nexport const fetchAssignedAssetGroupRules = (assetGroupId: number): Promise<Array<RuleDefinition>> => {\n\treturn getAxios().get(`/v2/assetGroups/${assetGroupId}/ruleDefinitions`).then(extractData);\n};\n\nexport const createRule = (rule: RuleDefinition): Promise<RuleDefinition> => {\n\treturn getAxios().post('/v2/ruleDefinitions/', rule).then(extractData);\n};\n\nexport const updateRule = (rule: RuleDefinition): Promise<RuleDefinition> => {\n\treturn getAxios().put(`/v2/ruleDefinitions/${rule.id}`, rule).then(extractData);\n};\n\nexport const assignAssetRules = (assetId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/ruleDefinitionsById`, ruleIds).then(extractData);\n};\n\nexport const assignAssetGroupRules = (assetGroupId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroupId}/ruleDefinitionsById`, ruleIds).then(extractData);\n};\n\nexport const unassignAssetRules = (assetId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn fetchAssignedAssetRules(assetId).then((assignedRules) =>\n\t\tassignAssetRules(\n\t\t\tassetId,\n\t\t\tassignedRules.map((r) => r.id).filter((id) => !ruleIds.includes(id))\n\t\t)\n\t);\n};\n\nexport const unassignAssetGroupRules = (assetGroupId: number, ruleIds: Array<number>): Promise<Array<number>> => {\n\treturn fetchAssignedAssetGroupRules(assetGroupId).then((assignedRules) =>\n\t\tassignAssetGroupRules(\n\t\t\tassetGroupId,\n\t\t\tassignedRules.map((r) => r.id).filter((id) => !ruleIds.includes(id))\n\t\t)\n\t);\n};\n\nexport const deleteRule = (ruleId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/ruleDefinitions/${ruleId}`);\n};\n\nexport const fetchRuleByName = (name: string): Promise<RuleDefinition> => {\n\treturn getAxios().get(`/v2/ruleDefinitions/name/${name}`).then(extractData);\n};\n\n/** @deprecated unused in NGUI */\nexport const checkRuleNameUniquenes = (name: string): Promise<boolean> => {\n\tif (!name || !name.length) {\n\t\treturn Promise.resolve(true);\n\t}\n\n\treturn fetchRuleByName(name)\n\t\t.then(() => false)\n\t\t.catch(() => true);\n};\n\nexport const fetchEventTemplateMappingsOfRule = (ruleUuid: string): Promise<Array<EventTemplateMapping>> => {\n\treturn getAxios()\n\t\t.get('/v1/eventTemplateMapping', {\n\t\t\tparams: {\n\t\t\t\truleId: ruleUuid\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((eventTemplateMappings) => eventTemplateMappings.content);\n};\n\nexport const createEventTemplateMapping = (e: EventTemplateMapping): Promise<EventTemplateMapping> => {\n\treturn getAxios().post('/v1/eventTemplateMapping', e).then(extractData);\n};\n\nexport const deleteAllEventTemplateMappingsOfRule = (ruleUuid: string): Promise<any> => {\n\treturn getAxios().delete(`/v1/eventTemplateMapping/ruleId/${ruleUuid}`);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type NotificationTemplateAccess = {\n\taccountGroupIds: number[];\n};\n\nexport type NotificationTemplateNew = {\n\tname: string;\n\tdisplayName: string;\n\ttenant: string;\n\tlocale: string | null | undefined;\n\tsubject: string;\n\ttext: string;\n\tscope: 'ACCOUNTS' | 'CONDITION_MONITORING';\n\taccountGroupsWithAccess?: number[];\n};\n\nexport type NotificationTemplate = NotificationTemplateNew & {\n\tid: number;\n};\n\nexport const fetchEmailTemplateById = (id: number): Promise<NotificationTemplate> => {\n\treturn getAxios().get(`/v2/emailTemplates/${id}`).then(extractData);\n};\n\nexport const fetchEmailTemplateAccessById = (id: number): Promise<NotificationTemplateAccess> => {\n\treturn getAxios().get(`/v2/emailTemplates/${id}/access`).then(extractData);\n};\n\nexport const fetchEmailTemplates = (params: Record<string, any>): Promise<Array<NotificationTemplate>> => {\n\treturn getAxios()\n\t\t.get('/v2/emailTemplates', {\n\t\t\tparams: {\n\t\t\t\tscope: 'CONDITION_MONITORING',\n\t\t\t\t...params\n\t\t\t}\n\t\t})\n\t\t.then(extractData)\n\t\t.then((emailTemplates) => emailTemplates.content);\n};\n\nexport const createEmailTemplate = (notificationTemplate: NotificationTemplateNew): Promise<any> => {\n\treturn getAxios().post('/v2/emailTemplates', notificationTemplate).then(extractData);\n};\n\nexport const updateEmailTemplate = (notificationTemplate: NotificationTemplate): Promise<any> => {\n\treturn getAxios().put(`/v2/emailTemplates/${notificationTemplate.id}`, notificationTemplate);\n};\n\nexport const deleteEmailTemplate = (notificationTemplateId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/emailTemplates/${notificationTemplateId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type Subscription = {\n\tsubscriptionId: string;\n\tsubscriptionUris: Array<string>;\n};\n\nexport const subscribeAssets = (\n\tassetIds: Array<number>,\n\ttypes: Array<string> = ['datapointValuesReceived', 'eventUpdate', 'statefulEvent']\n): Promise<Subscription> => {\n\treturn getAxios()\n\t\t.post('/v2/subscriptions', {\n\t\t\tassetIds,\n\t\t\ttypes,\n\t\t\tdurable: false\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const subscribeAssetGroups = (\n\tassetGroupIds: Array<number>,\n\ttypes: Array<string> = ['datapointValuesReceived', 'eventUpdate', 'statefulEvent']\n): Promise<Subscription> => {\n\treturn getAxios()\n\t\t.post('/v2/subscriptions', {\n\t\t\tassetGroupIds,\n\t\t\ttypes,\n\t\t\tdurable: false\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const unsubscribe = (subscriptionId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/subscriptions/${subscriptionId}`);\n};\n","import {getAxios, extractData} from './axios';\nimport {Unit} from './datapoint';\n\nexport const fetchUnits = (): Promise<Array<Unit>> => {\n\treturn getAxios().get(`/v2/units`).then(extractData);\n};\n\nexport const addUnit = (unit: Unit): Promise<any> => {\n\treturn getAxios().put(`/v2/units/${unit.name}`, unit).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\nimport type {UserGroup} from './userGroup';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {paginationSettingsToQueryParams} from './pagination';\nimport {PropertyValues} from './property';\nimport {License} from './licenses';\nimport {LocaleLanguageAndCountry} from './locale';\n\nexport type UserState = 'ACTIVE' | 'INACTIVE' | 'TERMINATED' | 'TERMS_ACCEPTANCE_PENDING' | 'INVITED';\n\ntype UserPrincipals = {\n\tUSERNAME?: Array<{\n\t\tname: string;\n\t}>;\n\tEMAIL?: Array<{\n\t\tname: string;\n\t}>;\n\tOPEN_ID_CONNECT_LINK?: Array<{\n\t\tname: string;\n\t}>;\n};\n\nexport type UserNew = {\n\tdisplayName?: string | undefined;\n\tname?: string | undefined;\n\tprincipals: {\n\t\tUSERNAME?: [{name: string}];\n\t\tEMAIL: [{name: string}];\n\t};\n\tinitialState?: UserState;\n\tlocale: string;\n\ttimezone?: string;\n\taccountGroupIds?: Array<number>;\n\tproperties?: PropertyValues;\n};\n\nexport type User = {\n\tid: number;\n\tnumber: string;\n\tstate: UserState;\n\tprincipals: UserPrincipals;\n\tauthorities: Array<string>;\n\tproperties: PropertyValues;\n\tlocale: string;\n\ttimezone: string;\n\tdisplayName: string;\n\t/** @deprecated name field is deprecated, use displayName instead. */\n\tname?: string | undefined;\n\taccountGroupIds: Array<number>;\n\troleIds: Array<number>;\n\tlicense?: License;\n\tlastSuccessfulLogin: string | null | undefined;\n\tpendingInvitation?: boolean;\n\ttwoFactorResetPossible?: boolean;\n\ttwoFactorDeviceRegisteredCount?: number;\n};\n\nexport const fetchUserByAccountNumber = (accountNumber: string): Promise<User> => {\n\treturn getAxios().get(`/v2/accounts/${accountNumber}`).then(extractData);\n};\n\nexport const fetchMe = (): Promise<User> => {\n\treturn getAxios().get(`/v2/accounts/me`).then(extractData);\n};\n\nexport const fetchUsers = (paginationSettings: PaginationSettings): Promise<Pageable<User>> => {\n\treturn getAxios()\n\t\t.get('/v2/accounts', {params: paginationSettingsToQueryParams(paginationSettings)})\n\t\t.then(extractData);\n};\n\nexport const createUser = (user: UserNew): Promise<User> => {\n\tconst userToCreate: Record<string, unknown> = {\n\t\tdisplayName: user.displayName,\n\t\tname: user.name,\n\t\tinitialState: user.initialState,\n\t\temailAddress: user.principals.EMAIL[0].name,\n\t\tlocale: user.locale,\n\t\ttimezone: user.timezone,\n\t\taccountGroupIds: user.accountGroupIds,\n\t\tproperties: user.properties\n\t};\n\n\tif (user.principals.USERNAME && user.principals.USERNAME[0].name) {\n\t\tuserToCreate.username = user.principals.USERNAME[0].name;\n\t}\n\n\treturn getAxios().post('/v2/accounts/registrationsWithEmail', userToCreate).then(extractData);\n};\n\nexport const inviteUser = (accountNumber: string, initialState: UserState): Promise<void> => {\n\treturn getAxios().post(`/v2/accounts/${accountNumber}/invite`, {initialState});\n};\n\nexport const updateUser = (user: User): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/${user.number}`, user).then(extractData);\n};\n\nexport const updateMe = (user: User): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/me`, user).then(extractData);\n};\n\nexport const searchUsers = (query: string, paginationSettings: PaginationSettings): Promise<Pageable<User>> => {\n\tconst {page, size, sort} = paginationSettings;\n\treturn getAxios()\n\t\t.get('/v2/accounts/search', {\n\t\t\tparams: {\n\t\t\t\tq: query,\n\t\t\t\tpage: page || 0,\n\t\t\t\tsize,\n\t\t\t\tsort: `${sort.property},${sort.direction}`,\n\t\t\t\tignoreCase: true\n\t\t\t},\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchUserGroupsOfUser = (accountNumber: string): Promise<Array<UserGroup>> => {\n\treturn getAxios().get(`/v2/accountGroups?accountNumber=${accountNumber}`).then(extractData);\n};\n\nexport const setUserPassword = (token: string, password: string): Promise<any> => {\n\treturn getAxios().put(`/v2/accountPassword`, {\n\t\ttoken,\n\t\tpassword\n\t});\n};\n\nexport const deleteUser = (accountNumber: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/accounts/${accountNumber}`);\n};\n\nexport const deleteMyAccount = (): Promise<any> => {\n\treturn getAxios().delete(`/v2/accounts/me`);\n};\n\nexport const triggerPasswordReset = (email: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountPasswordReset`, {\n\t\temail\n\t});\n};\n\nexport const triggerEmailChange = (\n\taccountNumber: string,\n\toldEmailAddress: string,\n\tnewEmailAddress: string\n): Promise<any> => {\n\treturn getAxios().post(`/v2/accounts/${accountNumber}/emailChange `, {\n\t\toldEmailAddress,\n\t\tnewEmailAddress\n\t});\n};\n\nexport const changeEmail = (token: string): Promise<any> => {\n\treturn getAxios().post('/v2/emailChange', {\n\t\ttoken\n\t});\n};\n\nexport const updateUserGroupsOfUser = (\n\taccountNumber: string,\n\taddedUserGroupIds: Array<number>,\n\tremovedUserGroupIds: Array<number>\n): Promise<any> => {\n\tconst changes = [];\n\n\tif (addedUserGroupIds.length) {\n\t\tchanges.push({\n\t\t\taction: 'ADD',\n\t\t\tgroupIds: addedUserGroupIds\n\t\t});\n\t}\n\n\tif (removedUserGroupIds.length) {\n\t\tchanges.push({\n\t\t\taction: 'REMOVE',\n\t\t\tgroupIds: removedUserGroupIds\n\t\t});\n\t}\n\n\treturn getAxios().patch(`/v2/accounts/${accountNumber}/groups`, {\n\t\tchanges\n\t});\n};\n\nexport const fetchRolesOfUser = (accountNumber: string): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/accounts/${accountNumber}/roles`).then(extractData);\n};\n\nexport const updateRolesOfUser = (accountNumber: string, roleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/accounts/${accountNumber}/roles`, roleIds).then(extractData);\n};\n\nexport const updateLocaleOfUser = (locale: LocaleLanguageAndCountry): Promise<User> => {\n\treturn getAxios().put(`/v2/accounts/me/locale`, locale).then(extractData);\n};\n\nexport const acceptEULA = (): Promise<User> => {\n\treturn getAxios()\n\t\t.put(`/v2/accounts/me/acceptTerms`)\n\t\t.then(() => fetchMe());\n};\n\nexport const setUserState = (accountNumber: string, state: UserState): Promise<any> =>\n\tgetAxios().put<{\n\t\tstate: UserState;\n\t}>(`/v2/accounts/${accountNumber}/state`, {\n\t\tstate\n\t});\n\nexport const delete2FADevice = (accountNumber: string): Promise<User> => {\n\treturn getAxios().delete(`/v2/accounts/${accountNumber}/authenticationDevices`);\n};\n","import {getAxios, extractData} from './axios';\nimport type {Pageable, PaginationSettings} from './pagination';\nimport {PropertyValues} from './property';\nimport {paginationSettingsToQueryParams} from './pagination';\n\nexport type NewUserGroup = {\n\tname: string;\n\tdescription?: string;\n\tdisplayName?: string;\n\tproperties?: PropertyValues;\n\taccountGroupsWithAccess?: Array<number>;\n};\n\nexport type UserGroup = NewUserGroup & {\n\tid: number;\n\troleIds?: Array<number>;\n};\n\nexport const fetchUserGroups = (paginationSettings: PaginationSettings): Promise<Pageable<UserGroup>> => {\n\treturn getAxios()\n\t\t.get('/v2/accountGroups', {params: paginationSettingsToQueryParams(paginationSettings)})\n\t\t.then(extractData);\n};\n\nexport const fetchUserGroupById = (id: number): Promise<UserGroup> => {\n\treturn getAxios().get(`/v2/accountGroups/${id}`).then(extractData);\n};\n\nexport const createUserGroup = (usergroup: NewUserGroup): Promise<UserGroup> => {\n\treturn getAxios().post(`/v2/accountGroups`, usergroup).then(extractData);\n};\n\nexport const updateUserGroup = (usergroup: UserGroup): Promise<UserGroup> => {\n\treturn getAxios().put(`/v2/accountGroups/${usergroup.id}`, usergroup).then(extractData);\n};\n\nexport const deleteUserGroup = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/accountGroups/${id}`);\n};\n\nexport const searchUserGroups = (\n\tquery: string,\n\tpaginationSettings: PaginationSettings\n): Promise<Pageable<UserGroup>> => {\n\tconst params = {\n\t\tq: query,\n\t\tignoreCase: true,\n\t\t...paginationSettingsToQueryParams(paginationSettings)\n\t};\n\treturn getAxios()\n\t\t.get('/v2/accountGroups/search', {\n\t\t\tparams,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchRoleIdsOfUserGroup = (id: number): Promise<Array<number>> => {\n\treturn getAxios().get(`/v2/accountGroups/${id}/roles`).then(extractData);\n};\n\nexport const updateRoleIdsOfUserGroup = (id: number, roleIds: Array<number>): Promise<Array<number>> => {\n\treturn getAxios().put(`/v2/accountGroups/${id}/roles`, roleIds).then(extractData);\n};\n\nexport const assignUsersToUserGroupByIds = (usergroup: UserGroup, userIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'ADD',\n\t\taccountIds: userIds\n\t});\n};\n\nexport const assignUsersToUserGroupByQuery = (usergroup: UserGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'ADD',\n\t\tquery\n\t});\n};\n\nexport const unassignUsersFromUserGroupByIds = (usergroup: UserGroup, userIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'REMOVE',\n\t\taccountIds: userIds\n\t});\n};\n\nexport const unassignUsersFromUserGroupByQuery = (usergroup: UserGroup, query: string): Promise<any> => {\n\treturn getAxios().post(`/v2/accountGroups/${usergroup.id}/accountAssignments`, {\n\t\taction: 'REMOVE',\n\t\tquery\n\t});\n};\n\nexport const fetchAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/assetGroupsAccesses`)\n\t\t.then(extractData)\n\t\t.then((result) => result.assetGroupIds);\n};\n\nexport const addAccess = (accountGroupId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroupId}/access/${accountGroupId}`);\n};\n\nexport const deleteAccess = (accountGroupId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${assetGroupId}/access/${accountGroupId}`);\n};\n\nexport const fetchAccountGroupAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/accountGroupsAccesses`)\n\t\t.then(extractData)\n\t\t.then((result) => result.accountGroupIds);\n};\n\nexport const fetchInverseAccountGroupAccesses = (accountGroupId: number): Promise<Array<number>> => {\n\treturn getAxios()\n\t\t.get(`/v2/accountGroups/${accountGroupId}/access`)\n\t\t.then(extractData)\n\t\t.then((result) => result.accountGroupIds);\n};\n\nexport const addAccountGroupAccess = (\n\tgivingAccessAccountGroupId: number,\n\treceivingAccessAccountGroupId: number\n): Promise<any> => {\n\treturn getAxios().put(`/v2/accountGroups/${givingAccessAccountGroupId}/access/${receivingAccessAccountGroupId}`);\n};\n\nexport const deleteAccountGroupAccess = (\n\tgivingAccessAccountGroupId: number,\n\treceivingAccessAccountGroupId: number\n): Promise<any> => {\n\treturn getAxios().delete(`/v2/accountGroups/${givingAccessAccountGroupId}/access/${receivingAccessAccountGroupId}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type License = {\n\tname: string;\n\tdisplayName: string;\n\tdescription: string;\n};\n\nexport const fetchLicenses = (): Promise<Array<License>> => {\n\treturn getAxios().get(`v2/licenses`).then(extractData);\n};\n\nexport const fetchLicenseByName = (licenseName: string): Promise<License> => {\n\treturn getAxios().get(`v2/licenses/${licenseName}`).then(extractData);\n};\n\nexport const createLicense = (license: License): Promise<License> => {\n\treturn getAxios().post(`v2/licenses`, license).then(extractData);\n};\n\nexport const updateLicense = (license: License): Promise<License> => {\n\treturn getAxios().put(`/v2/licenses/${license.name}`, license).then(extractData);\n};\n\nexport const deleteLicense = (licenseName: string): Promise<any> => {\n\treturn getAxios().delete(`v2/licenses/${licenseName}`);\n};\n","import {getAxios, extractData} from './axios';\n\nexport const getVersion = (): Promise<string> => {\n\treturn getAxios()\n\t\t.get('/v2/version', {\n\t\t\theaders: {\n\t\t\t\tAccept: 'text/plain'\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type RemoteServiceConnectionInfo = {\n\taccountNumber: string;\n\taccountConnected: boolean | null | undefined;\n\taccountVpnIp: string | null | undefined;\n\tgatewayUrn: string;\n\tgatewayConnected: boolean;\n\tgatewayVpnIp: string | null | undefined;\n\ttargetNetwork: string | null | undefined;\n\tcreatedAt: string;\n};\n\nexport const initializeRemoteServiceConnection = (gatewayUrn: string, targetNetwork: string): Promise<any> =>\n\tgetAxios().put(\n\t\t`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`,\n\t\ttargetNetwork\n\t\t\t? {\n\t\t\t\t\ttargetNetwork\n\t\t\t\t}\n\t\t\t: {}\n\t);\n\nexport const fetchRemoteServiceConnectionInfo = (gatewayUrn: string): Promise<RemoteServiceConnectionInfo> =>\n\tgetAxios().get(`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`).then(extractData);\n\nexport const terminateRemoteServiceConnection = (gatewayUrn: string): Promise<any> =>\n\tgetAxios().delete(`/beta/gateways/urn/${gatewayUrn}/remoteServiceVpnConnection`);\n","import {getAxios, extractData} from './axios';\n\nexport type WriteCommand = {\n\tdatapointKey: string;\n\tvalue: string;\n\treadBack: boolean;\n};\n\nexport type PreparedCommand = {\n\tid?: number;\n\tname: string;\n\texpirySeconds: number;\n\tcontent: {\n\t\ttype: string;\n\t\tassetUrn: string;\n\t\ttransmitImmediately: boolean;\n\t\twriteOperations: Array<WriteCommand>;\n\t};\n};\n\nexport const fetchPreparedCommands = (gatewayId: number): Promise<Array<PreparedCommand>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/preparedCommands`).then(extractData);\n};\n\nexport const createPreparedCommand = (preparedCommand: PreparedCommand): Promise<PreparedCommand> => {\n\treturn getAxios().post(`/v2/preparedCommands`, preparedCommand).then(extractData);\n};\n\nexport const updatePreparedCommand = (preparedCommand: PreparedCommand): Promise<PreparedCommand> => {\n\treturn getAxios().put(`/v2/preparedCommands/${preparedCommand.id}`, preparedCommand).then(extractData);\n};\n\nexport const deletePreparedCommand = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/preparedCommands/${id}`);\n};\n\nexport const assignPreparedCommandsToGateway = (gatewayId: number, preparedCommandIds: Array<number>): Promise<any> => {\n\treturn getAxios().put(`/v2/gateways/${gatewayId}/preparedCommandsById`, preparedCommandIds);\n};\n\nexport const executePreparedCommand = (gatewayId: number, preparedCommand: PreparedCommand): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/gateways/${gatewayId}/preparedCommands/${preparedCommand.id}/execution`)\n\t\t.then(extractData);\n};\n","import {getAxios, extractData} from './axios';\n\nexport type CommandType = {\n\tid: number;\n\tsentAt: Date;\n\texpiresAt: Date;\n\tcontent: {\n\t\ttype: string;\n\t};\n};\n\nexport type CommandResult = {\n\tid: number;\n\treceivedAt: Date;\n\tcontent: {\n\t\ttype: string;\n\t\terrorCode: number;\n\t\tproperties: any;\n\t\titems: Array<any> | null | undefined;\n\t};\n};\n\nexport const invokeDiscoveryCommand = (gatewayId: number, discoveryParameters: any): Promise<CommandType> => {\n\tconst discoveryPayload = {\n\t\texpirySeconds: 60,\n\t\tcontent: {\n\t\t\ttype: 'discoveryCommand',\n\t\t\tdiscoveryParameters\n\t\t}\n\t};\n\treturn getAxios().post(`/v2/gateways/${gatewayId}/commands`, discoveryPayload).then(extractData);\n};\n\nexport const fetchSentCommandResponses = (gatewayId: number, commandId: number): Promise<Array<CommandResult>> => {\n\treturn getAxios().get(`/v2/gateways/${gatewayId}/commands/${commandId}/responses`).then(extractData);\n};\n","import {extractData, getAxios} from './axios';\n\nexport type AuthorizationServer = {\n\tname: string;\n\tdisplayName: string;\n\tclientId: string;\n\tclientSecret: string;\n\tauthorizationUri: string;\n\tredirectUri: string;\n\ttokenUri: string;\n\tuiCallbackUri: string;\n\tuserinfoUri: string;\n\trevocationUri: string;\n\tjwksUri: string;\n\tscope: string | null | undefined;\n};\n\nexport type AuthorizationServerRule = {\n\tname: string;\n\tdisplayName: string;\n\tacceptedEmailHostname: string;\n\tacceptedEmailPattern: string;\n\taccountGroupId: number;\n\tdisableEmailVerifiedCheck: boolean;\n\twebhookUri: string | null | undefined;\n};\n\nexport const createOrUpdateAuthorizationServer = (\n\tauthorizationServer: AuthorizationServer\n): Promise<AuthorizationServer> =>\n\tgetAxios().put(`/v2/authorizationServers/${authorizationServer.name}`, authorizationServer).then(extractData);\n\nexport const deleteAuthorizationServer = (name: string): Promise<any> =>\n\tgetAxios().delete(`/v2/authorizationServers/${name}`);\n\nexport const fetchAuthorizationServer = (name: string): Promise<AuthorizationServer> =>\n\tgetAxios().get(`/v2/authorizationServers/${name}`).then(extractData);\n\nexport const fetchAuthorizationServers = (): Promise<Array<AuthorizationServer>> =>\n\tgetAxios().get('/v2/authorizationServers').then(extractData);\n\nexport const createOrUpdateAuthorizationServerRule = (\n\tauthorizationServerName: string,\n\trule: AuthorizationServerRule\n): Promise<AuthorizationServerRule> =>\n\tgetAxios().put(`/v2/authorizationServers/${authorizationServerName}/rules/${rule.name}`, rule).then(extractData);\n\nexport const fetchAuthorizationServerRules = (\n\tauthorizationServerName: string\n): Promise<Array<AuthorizationServerRule>> =>\n\tgetAxios().get(`/v2/authorizationServers/${authorizationServerName}/rules`).then(extractData);\n\nexport const fetchAuthorizationServerRule = (\n\tauthorizationServerName: string,\n\truleName: string\n): Promise<AuthorizationServerRule> =>\n\tgetAxios().get(`/v2/authorizationServers/${authorizationServerName}/rules/${ruleName}`).then(extractData);\n\nexport const deleteAuthorizationServerRule = (authorizationServerName: string, ruleName: string): Promise<any> =>\n\tgetAxios().delete(`/v2/authorizationServers/${authorizationServerName}/rules/${ruleName}`);\n","import {extractData, getAxios} from './axios';\nimport {Asset, fetchAssetGroupIds} from './asset';\nimport {AssetGroup, fetchAssetGroupsById} from './assetGroup';\n\nexport type RelationshipConstraintTypes =\n\t| 'ASSETS_MAY_ONLY_BE_MEMBER_OF_ASSET_GROUPS_WITH_DEFINITIONS'\n\t| 'ASSET_GROUPS_MAY_ONLY_BE_CHILD_OF_ASSET_GROUPS_WITH_DEFINITIONS'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_LEAST_ONE_ASSET_GROUP'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_MOST_ONE_ASSET_GROUP'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_LEAST_ONE_ASSET_GROUP_WITH_DEFINITIONS'\n\t| 'ASSETS_MUST_BE_MEMBER_OF_AT_MOST_ONE_ASSET_GROUP_WITH_DEFINITIONS'\n\t| 'ASSET_GROUPS_MUST_HAVE_PARENT'\n\t| 'ASSET_GROUPS_WITH_DEFINITIONS_MUST_HAVE_PARENT';\n\nexport type RelationshipConstraintError = {\n\tconstraintType: RelationshipConstraintTypes;\n\tname: string;\n\tobjectIds: Array<number>;\n\tsubjectIds: Array<number>;\n};\n\nexport type RelationshipConstraintErrorDereferenced = {\n\tconstraintType: RelationshipConstraintTypes;\n\tname: string;\n\tobjectNames: Array<string>;\n};\n\nconst dryRunHeader = {\n\theaders: {\n\t\t'X-Dry-Run': true\n\t}\n};\n\n/** asset **/\nexport const createAssetDryRun = (asset: Asset): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/${asset.isGateway ? 'gateways' : 'assets'}`, asset, dryRunHeader)\n\t\t.then(extractData);\n};\n\nexport const updateAssetDryRun = (asset: Asset): Promise<any> => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst {assetGroupIds, ...formData} = asset;\n\treturn getAxios()\n\t\t.put(`/v2/${asset.isGateway ? 'gateways' : 'assets'}/${asset.id}`, formData, dryRunHeader)\n\t\t.then(extractData);\n};\n\nconst assignAssetGroupDryRun = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().put(`/v2/assets/${assetId}/groups/${assetGroupId}`, null, dryRunHeader);\n};\n\nconst unassignAssetGroupDryRun = (assetId: number, assetGroupId: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assets/${assetId}/groups/${assetGroupId}`, dryRunHeader);\n};\n\nexport const updateAssetGroupIdsDryRun = async (assetId: number, assetGroupIds: Array<number>): Promise<any> => {\n\tconst oldAssetGroupIds = await fetchAssetGroupIds(assetId);\n\tlet availableOldAssetGroupIds: number[] = [];\n\tif (oldAssetGroupIds.length > 0) {\n\t\tavailableOldAssetGroupIds = (await fetchAssetGroupsById(oldAssetGroupIds)).map(({id}) => id);\n\t}\n\tconst addedAssetGroupIds = assetGroupIds.filter((id) => !oldAssetGroupIds.includes(id));\n\tconst removedAssetGroupIds = availableOldAssetGroupIds.filter((id) => assetGroupIds && !assetGroupIds.includes(id));\n\treturn Promise.all([\n\t\t...addedAssetGroupIds.map((assetGroupId) => assignAssetGroupDryRun(assetId, assetGroupId)),\n\t\t...removedAssetGroupIds.map((assetGroupId) => unassignAssetGroupDryRun(assetId, assetGroupId))\n\t]);\n};\n\n/** asset group **/\nexport const createAssetGroupDryRun = (assetGroup: AssetGroup): Promise<any> => {\n\treturn getAxios()\n\t\t.post(`/v2/assetGroupDefinitions/${assetGroup.definitionId}/groups`, assetGroup, dryRunHeader)\n\t\t.then(extractData);\n};\n\nexport const updateAssetGroupDryRun = (assetGroup: AssetGroup): Promise<any> => {\n\treturn getAxios().put(`/v2/assetGroups/${assetGroup.id}`, assetGroup, dryRunHeader).then(extractData);\n};\n\nexport const deleteAssetGroupDryRun = (id: number): Promise<any> => {\n\treturn getAxios().delete(`/v2/assetGroups/${id}`, dryRunHeader);\n};\n\n/** asset assignment **/\nexport const assignAssetsByIdsDryRun = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'ADD',\n\t\t\tassetIds\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const assignAssetsByQueryDryRun = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'ADD',\n\t\t\tquery\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const unassignAssetsByIdsDryRun = (assetGroup: AssetGroup, assetIds: Array<number>): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'REMOVE',\n\t\t\tassetIds\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n\nexport const unassignAssetsByQueryDryRun = (assetGroup: AssetGroup, query: string): Promise<any> => {\n\treturn getAxios().post(\n\t\t`/v2/assetGroups/${assetGroup.id}/assetAssignments`,\n\t\t{\n\t\t\taction: 'REMOVE',\n\t\t\tquery\n\t\t},\n\t\tdryRunHeader\n\t);\n};\n","import {extractData, getAxios} from './axios';\n\ntype FieldType = 'text' | 'boolean' | 'long';\n\nexport type ShadowKeys = Record<string, FieldType>;\n\nexport type Context = 'assets' | 'assetGroups' | 'accounts' | 'accountGroups';\n\nexport function fetchShadowKeys(context: Context): Promise<any> {\n\tif (context === 'assets') {\n\t\treturn getAxios().get(`/v2/assets/shadow/fields`).then(extractData);\n\t}\n\treturn getAxios().get(`/beta/${context}/fields`).then(extractData);\n}\n","import {extractData, getAxios} from './axios';\nimport {Pageable, PaginationSettings} from './pagination';\nimport {AxiosInstance} from 'axios';\n\nexport type BundleRequest = {\n\tname: string;\n};\n\nexport type Bundle = BundleRequest & {\n\tid: string;\n\tcreatedAt: string;\n\tcreatedBy: string;\n};\n\nexport type BundleFileMetadata = {\n\tid: string;\n\tname: string;\n\tsize: number;\n\tchecksum?: string;\n};\n\nexport type BundleVersionRequest = {\n\tdraft: boolean;\n\tname: string;\n\tdescription?: string;\n};\n\nexport type BundleVersion = BundleVersionRequest & {\n\tid: string;\n\tcreatedAt: string;\n\tcreatedBy: string;\n\treleasedAt: string | null | undefined;\n\treleasedBy: string | null | undefined;\n\tfileCount: number;\n};\n\nexport type BundleFileLink = {\n\tdownloadLink: string;\n};\n\nexport const fetchAllBundles = (): Promise<Bundle[]> => {\n\treturn getAxios().get(`/v2/bundles`).then(extractData);\n};\n\nexport const fetchBundle = (id: string): Promise<Bundle> => {\n\treturn getAxios().get(`/v2/bundles/${id}`).then(extractData);\n};\n\nexport const createBundle = (bundle: BundleRequest): Promise<Bundle> => {\n\treturn getAxios().post(`/v2/bundles`, bundle).then(extractData);\n};\n\nexport const deleteBundle = (id: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${id}`);\n};\n\nexport const fetchBundleVersions = (\n\tbundleId: string,\n\tpaginationSettings?: PaginationSettings,\n\tdraft?: boolean\n): Promise<Pageable<BundleVersion>> => {\n\tconst {page = 0, size = 1000, sort = ''} = paginationSettings || {};\n\treturn getAxios()\n\t\t.get(`/v2/bundles/${bundleId}/versions`, {\n\t\t\tparams: {\n\t\t\t\tpage,\n\t\t\t\tsize,\n\t\t\t\tsort: (sort && `${sort.property},${sort.direction}`) || '',\n\t\t\t\tignoreCase: true,\n\t\t\t\tdraft\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n};\n\nexport const fetchBundleVersion = (bundleId: string, versionId: string): Promise<BundleVersion> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}`).then(extractData);\n};\n\nexport const createBundleVersion = (bundleId: string, version: BundleVersionRequest): Promise<BundleVersion> => {\n\treturn getAxios().post(`/v2/bundles/${bundleId}/versions`, version).then(extractData);\n};\n\nexport const releaseBundleVersion = (bundleId: string, versionId: string): Promise<BundleVersion> => {\n\treturn getAxios().put(`/v2/bundles/${bundleId}/versions/${versionId}/release`).then(extractData);\n};\n\nexport const deleteBundleVersion = (bundleId: string, versionId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${bundleId}/versions/${versionId}`);\n};\n\nexport const createBundleFile = (\n\tbundleId: string,\n\tversionId: string,\n\tdata: FormData,\n\taxiosInstance?: AxiosInstance\n): Promise<any> => {\n\treturn (axiosInstance ?? getAxios()).post(`/v2/bundles/${bundleId}/versions/${versionId}/files`, data, {\n\t\theaders: {\n\t\t\t'content-type': 'multipart/form-data'\n\t\t},\n\t\ttimeout: 15 * 60 * 1000\n\t});\n};\n\nexport const fetchBundleFiles = (bundleId: string, versionId: string): Promise<BundleFileMetadata[]> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}/files`).then(extractData);\n};\n\nexport const downloadBundleFile = (bundleId: string, versionId: string, fileId: string): Promise<BundleFileLink> => {\n\treturn getAxios().get(`/v2/bundles/${bundleId}/versions/${versionId}/files/${fileId}`).then(extractData);\n};\n\nexport const deleteBundleFile = (bundleId: string, versionId: string, fileId: string): Promise<any> => {\n\treturn getAxios().delete(`/v2/bundles/${bundleId}/versions/${versionId}/files/${fileId}`);\n};\n","import {extractData, getAxios} from './axios';\n\ntype Timeframe = {\n\ttsStart: number;\n\ttsEnd: number;\n};\n\nexport type Params = {\n\ttimeframe?: Timeframe | null | undefined;\n\taccountId?: string | null | undefined;\n};\n\ntype DiffOperator = 'add' | 'remove' | 'replace';\n\nexport type AuditLogDiffItem = {\n\tproductionTimestamp: string;\n\tprocessingTimestamp: string;\n\tentityType: string;\n\tentityId: string;\n\taccount: string;\n\tclientId: string;\n\tdiff: Array<{\n\t\top: DiffOperator;\n\t\tpath: string;\n\t\tvalue: any;\n\t}>;\n};\n\nexport const fetchAuditLogEntities = (): Promise<any> => getAxios().get('/v2/auditLogEntities').then(extractData);\n\nconst dateToString = (ts: number | null | undefined): string | null | undefined =>\n\tts ? new Date(ts).toUTCString() : null;\n\nexport const fetchAuditLogDifferences = (\n\tentityType: string,\n\tentityId: string,\n\tparams: Params | null | undefined\n): Promise<any> =>\n\tgetAxios()\n\t\t.get(`/v2/auditLogDiffs/${entityType}/${entityId}`, {\n\t\t\tparams: {\n\t\t\t\tprocessedFrom: dateToString(params?.timeframe?.tsStart),\n\t\t\t\tprocessedUntil: dateToString(params?.timeframe?.tsEnd),\n\t\t\t\taccount: params?.accountId\n\t\t\t}\n\t\t})\n\t\t.then(extractData);\n","import {getAxios, extractData} from './axios';\n\nexport type ParamsSingleReport = {\n\tid: string;\n\tname: string;\n\twebUrl: string;\n\tembedUrl: string;\n\tdatasetId: string;\n\tembedToken: string;\n};\n\nexport type PowerBiReportsError = {\n\tdata?: any;\n\tmessage: string;\n\tstatus: string;\n};\n\nexport async function getParamsForSingleReport(workspaceId: string, reportId: string): Promise<ParamsSingleReport> {\n\treturn await getAxios().get('/v1/powerBi/singleReport/params', {params: {workspaceId, reportId}}).then(extractData);\n}\n","import {getAxios} from './axios';\n\ntype DateTimeRange = {\n\tfrom: string;\n\tto: string;\n};\n\ntype Tsx = {tsx: string};\n\ntype Interpolation = {\n\tkind: 'Linear' | 'Step';\n\tboundary?: {span: string};\n};\n\nexport type TsiInlineVariable = {\n\tfilter?: Tsx;\n\taggregation?: Tsx;\n\tinterpolation?: Interpolation;\n} & (\n\t| {\n\t\t\tkind: 'numeric';\n\t\t\tvalue: Tsx;\n\t }\n\t| {\n\t\t\tkind: 'aggregate';\n\t }\n);\n\ntype AggregateSeries = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tinterval: string;\n\tfilter?: Tsx;\n\tinlineVariables?: Record<string, TsiInlineVariable>;\n\tprojectedVariables?: string[];\n};\n\ntype GetSeries = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tfilter?: Tsx;\n\tinlineVariables?: Record<string, TsiInlineVariable>;\n\tprojectedVariables?: string[];\n\ttake?: number;\n};\n\ntype EventProperty = {\n\tname: string;\n\ttype: string;\n};\n\ntype GetEvents = {\n\tsearchSpan: DateTimeRange;\n\ttimeSeriesId: string[];\n\tfilter?: Tsx;\n\tprojectedProperties?: EventProperty[];\n\ttake?: number;\n};\n\nexport type TsiDataType = 'Bool' | 'DateTime' | 'String' | 'Double' | 'Long' | 'TimeSpan';\n\nexport type TsiProperties = {\n\tname: string;\n\ttype: TsiDataType;\n} & (\n\t| {\n\t\t\ttype: 'Bool';\n\t\t\tvalues: Array<boolean | null>;\n\t }\n\t| {\n\t\t\ttype: 'DateTime' | 'String';\n\t\t\tvalues: Array<string | null>;\n\t }\n\t| {\n\t\t\ttype: 'Double' | 'Long';\n\t\t\tvalues: Array<number | null>;\n\t }\n\t| {\n\t\t\ttype: 'TimeSpan';\n\t\t\tvalues: Array<Record<string, unknown> | null>;\n\t }\n);\n\nexport type TsiResponse = {\n\tcontinuationToken?: string;\n\tprogress: number;\n\tproperties: TsiProperties[];\n\ttimestamps: string[];\n};\n\nconst query = async (data: Record<string, any>): Promise<TsiResponse> => {\n\tconst result = await getAxios().post<TsiResponse>('/v1/timeSeriesInsights/query', data, {\n\t\tparams: {\n\t\t\t'api-version': '2020-07-31',\n\t\t\tstoreType: 'ColdStore'\n\t\t}\n\t});\n\n\treturn result.data;\n};\n\nexport const aggregateSeries = (params: AggregateSeries): Promise<TsiResponse> => {\n\treturn query({aggregateSeries: params});\n};\n\nexport const getSeries = async (params: GetSeries): Promise<TsiResponse> => {\n\treturn query({getSeries: params});\n};\n\nexport const getEvents = async (params: GetEvents): Promise<TsiResponse> => {\n\treturn query({getEvents: params});\n};\n","import {AxiosResponse} from 'axios';\nimport {getAxios} from './axios';\nimport {GrantRequest} from 'ux4iot-admin-node';\n\n/** @deprecated, use sendUx4iotGrantRequestToEndpoint instead, whose endpoint defaults to the endpoint of this function **/\nexport const sendUx4iotGrantRequest = (assetUrn: string, grantRequest: GrantRequest): Promise<AxiosResponse> => {\n\treturn getAxios().put(`/v1/ux4iotSecurity/assets/${assetUrn}`, grantRequest);\n};\n\nexport const sendUx4iotGrantRequestToEndpoint = (\n\tgrantRequestEndpoint = '/v1/ux4iotSecurity/assets/',\n\tgrantRequest: GrantRequest\n): Promise<AxiosResponse> => {\n\treturn getAxios().put(`${grantRequestEndpoint}${grantRequest.deviceId}`, grantRequest);\n};\n","import {DataType} from './datapoint';\nimport {getAxios} from './axios';\n\ntype AdxDatapointType = 'double' | 'long' | 'boolean' | 'string' | 'geo_position' | 'structured';\n\nconst DataTypeToAdxDatapointType: Record<DataType, AdxDatapointType> = {\n\tBOOLEAN: 'boolean',\n\tDOUBLE: 'double',\n\tLONG: 'long',\n\tTEXT: 'string',\n\tGEO_POSITION: 'geo_position',\n\tSTRUCTURED: 'structured'\n};\n\nexport type AdxValuesQueryResult = {\n\tasset: {\n\t\turn: string;\n\t\tdatapoints: Array<{\n\t\t\tname: string;\n\t\t\tvalues: Array<[string, unknown]>;\n\t\t}>;\n\t};\n};\n\n/**\n * @param assetUrn\n * @param datapoints\n * @param datatype\n * @param tsFrom\n * @param tsTo\n * @param groupBy kusto timespan, i.e. 1d, 2h, 1.5m\n * @param deduplication\n * @param includeOutliers\n */\nexport async function queryDatapointValues(\n\tassetUrn: string,\n\tdatapoints: string[],\n\tdatatype: DataType,\n\ttsFrom: number,\n\ttsTo: number,\n\tgroupBy?: string | null,\n\tdeduplication?: boolean | null,\n\tincludeOutliers?: boolean | null\n): Promise<AdxValuesQueryResult> {\n\tconst queryParameters: Record<string, unknown> = {\n\t\tdatapoints,\n\t\tdatatype: DataTypeToAdxDatapointType[datatype],\n\t\ttsFrom: new Date(tsFrom).toISOString(),\n\t\ttsTo: new Date(tsTo).toISOString()\n\t};\n\tif (groupBy != null) queryParameters.groupBy = groupBy;\n\tif (deduplication != null) queryParameters.deduplication = deduplication;\n\tif (includeOutliers != null) queryParameters.includeOutliers = includeOutliers;\n\n\tconst response = await getAxios().post<AdxValuesQueryResult>(\n\t\t`/v2/assets/${assetUrn}/datapointValues`,\n\t\tqueryParameters\n\t);\n\n\treturn response.data;\n}\n\nexport async function queryLastDatapointsValue(\n\tassetUrn: string,\n\tdatapoints: string[],\n\tdatatype: DataType,\n\ttsFrom?: number,\n\ttsTo?: number\n): Promise<AdxValuesQueryResult> {\n\tconst queryParameters: Record<string, unknown> = {\n\t\tdatapoints,\n\t\tdatatype: DataTypeToAdxDatapointType[datatype]\n\t};\n\tif (tsFrom != null && tsTo != null) {\n\t\tqueryParameters.tsFrom = new Date(tsFrom).toISOString();\n\t\tqueryParameters.tsTo = new Date(tsTo).toISOString();\n\t}\n\n\tconst response = await getAxios().post<AdxValuesQueryResult>(\n\t\t`/v2/assets/${assetUrn}/datapointValues/latest`,\n\t\tqueryParameters\n\t);\n\n\treturn response.data;\n}\n","import {extractData, getAxios} from './axios';\n\nexport type InitialAccountGroupAssignmentRule = {\n\tname: string;\n\tdisplayName: string;\n\tacceptedEmailHostname: string;\n\taccountGroupId: number;\n};\n\nexport async function getInitialAccountGroupAssignmentRules(): Promise<InitialAccountGroupAssignmentRule[]> {\n\tconst response = await getAxios().get('/v2/initialAccountGroupAssignmentRules');\n\treturn extractData(response);\n}\n\nexport async function createInitialAccountGroupAssignmentRule(\n\trule: InitialAccountGroupAssignmentRule\n): Promise<InitialAccountGroupAssignmentRule> {\n\tconst response = await getAxios().post('/v2/initialAccountGroupAssignmentRules', rule);\n\treturn extractData(response);\n}\n\nexport async function updateInitialAccountGroupAssignmentRule(\n\truleName: string,\n\trule: InitialAccountGroupAssignmentRule\n): Promise<InitialAccountGroupAssignmentRule> {\n\tconst response = await getAxios().put(`/v2/initialAccountGroupAssignmentRules/${ruleName}`, rule);\n\treturn extractData(response);\n}\n\nexport async function deleteInitialAccountGroupAssignmentRule(ruleName: string): Promise<void> {\n\tawait getAxios().delete(`/v2/initialAccountGroupAssignmentRules/${ruleName}`);\n}\n"],"names":["extractData","response","setAxios","_axios","force","getAxios","setAxiosConfig","config","key","retryRequest","requestFn","retries","delay","attempt","error","waitTime","resolve","fetchAggregation","aggregationConfig","paginationSettingsToQueryParams","paginationSettings","page","size","property","direction","paginationSettingsAdxToQueryParams","fetchAssetGroups","queryParams","fetchAssetGroupsById","id","fetchAssetGroupById","fetchAssetGroupsByDataProcessingDefinitionId","dataProcessingDefinitionId","content","fetchAssetGroupsByRuleId","ruleId","createAssetGroup","assetGroup","updateAssetGroup","deleteAssetGroup","searchAssetGroups","query","sort","params","assignAssetsByIds","assetIds","assignAssetsByQuery","unassignAssetsByIds","unassignAssetsByQuery","getAncestorGroups","fetchGroupsByIds","ids","result","listAllChildAssetGroups","assetGroupId","fetchAssetWithShadowById","fetchGatewayById","fetchAssetByUrn","urn","fetchAssets","fetchAssetsByUrn","fetchAssetsByAssetGroupId","shadow","fetchAssetsByRuleId","fetchAssetsByDataProcessingDefinitionId","createAsset","asset","updateAsset","assetGroupIds","formData","deleteAsset","searchAssets","settings","searchAssetsWithOpenEvents","searchAssetsByProperty","value","searchGateways","searchAssetsWithGeoDistance","geoDistanceParams","distance","geoField","pinLocation","searchAssetsByGeoBoundingBox","topLeft","bottomRight","fetchAssetGroupIds","assetId","assignAssetGroup","unassignAssetGroup","updateAssetGroupIds","oldAssetGroupIds","availableOldAssetGroupIds","addedAssetGroupIds","removedAssetGroupIds","assignGateway","gatewayId","unassignGateway","getGatewayConfigurationsSyncStatus","triggerGatewayConfigurationsSync","retrieveAssetBootstrapJson","assetUrn","retrieveAssetBootstrapShellCommand","getGatewayCertificateSummary","getCertificateDetails","fingerPrint","revokeGatewayCertificate","fingerprint","revokeAllGatewayCertificates","fetchGatewayCommandResponses","commandId","requestApplicationLogCommand","fetchGatewayCapabilities","fetchAuthorities","fetchAuthorityByName","authorityName","createAuthority","deleteAuthority","fetchAssetDefinitions","fetchAssetDefinition","deleteAssetDefinition","updateAssetDefinition","assetDefinition","createAssetDefinition","createAssetDefinitionDatapoint","assetDefinitionId","datapoint","unit","createAssetDefinitionDatapoints","datapoints","newDatapoints","name","dp","deleteAssetDefinitionDatapoint","datapointName","updateAssetDefinitionDatapoint","getAssetGroupHierarchies","getAssetGroupHierarchyRoots","fetchAssetGroupDefinitionById","fetchAssetGroupDefinitionByName","fetchAssetGroupDefinitions","pageable","restPagePromises","_","num","data","restPages","acc","createAssetGroupDefinition","assetGroupDefinition","updateAssetGroupDefinition","deleteAssetGroupDefinition","createUrl","type","path","segment","readObject","asArrayBuffer","writeObject","headers","axiosInstance","deleteObject","checkObject","readAssetObject","writeAssetObject","deleteAssetObject","readAssetDefinitionObject","writeAssetDefinitionObject","deleteAssetDefinitionObject","readAssetGroupObject","writeAssetGroupObject","deleteAssetGroupObject","readTenantObject","writeTenantObject","deleteTenantObject","readUIConfigurations","readUISecrets","writeUIConfigurations","deleteUIConfigurations","readConditionMonitoringPriorities","writeConditionMonitoringPriorities","deleteConditionMonitoringPriorities","readEULA","localeCode","readEULAList","writeEULA","fileName","contentType","deleteEULA","readLegalPage","legalPage","checkAccountObject","readAccountObject","writeAccountObject","deleteAccountObject","checkStartPage","readStartPage","writeStartPage","writeReleaseNotesVersionsViewed","readReleaseNotesVersionsViewed","readReleaseNotesSubscription","writeReleaseNotesSubscription","checkShowUserDocumentation","readShowUserDocumentation","writeShowUserDocumentation","writePaginationSettings","readPaginationSettings","writeFavorites","readFavorites","deleteStartPage","writeAdvancedSearchDefaultProperties","defaultProperties","context","readAdvancedSearchDefaultProperties","readAssetBlobSeries","from","to","urls","metaData","url","index","urlSegments","uniqueKey","downloadAssetBlobSeriesItem","itemKey","readAccountGroupObject","accountGroupId","readAccountGroupObjectBasedOnMembership","writeAccountGroupObject","deleteAccountGroupObject","readAzureB2cConfiguration","fetchConfigurations","fetchConfigurationByName","createConfiguration","configuration","updateConfiguration","deleteConfiguration","assignConfigurationsToAsset","configurationKeyToIdObject","fetchAssignedGatewaysToConfiguration","fetchDatapointsByAssetId","createDatapoint","datatype","updateDatapointThresholds","thresholds","datatypeToDatapointType","getDatapointValues","dpName","dataType","start","end","onlyChangedValues","order","limit","getDatapointGeoPositionValues","getDatapointSamples","slices","updateDatapointUnit","deleteDatapoint","transformDatatypeToUrlSegment","deleteDatapointEntries","startOptional","endOptional","DEFAULT_START","body","DataTypeToAdxDistinctDatapointType","getStructuredDatapointPropertyNodes","tsFrom","tsTo","queryParameters","getStructuredDatapointDistinctValues","propertyPath","getDatapointValuesByFilters","filters","requestPayload","queryString","buildDatapointValuesQueryString","getDatapointValuesByQueryId","queryId","listDataProcessingDefinitions","filterSettings","listDataProcessingDefinitionAssetAssignments","dataProcessingDefinitionIds","listDataProcessingDefinitionAssetGroupAssignments","listDataProcessingDefinitionAccountGroupAssignments","getDataProcessingDefinitionById","definitionId","etag","fetchDataProcessingDefinitionsAssignedToAsset","fetchDataProcessingDefinitionsAssignedToAssetGroup","createDataProcessingDefinition","dataProcessingDefinition","updateDataProcessingDefinition","assignDataProcessingDefinitionsToAsset","assignDataProcessingDefinitionsToAssetGroup","deleteDataProcessingDefinition","validateDataProcessingDefinitionForAssetGroup","definition","listDataProcessingDefinitionAccesses","addAccessToDataProcessingDefinition","removeAccessToDataProcessingDefinition","getDataProcessingDefinitionEvaluations","getKpiGenericWithTimestamp","getKpiGeneric","DAY_MILLIS","fetchEventsByAssetId","excludeAcknowledged","now","defaultTo","defaultFrom","extraParams","parseEvent","fetchOpenStatefulEventsByAssetId","event","parseIsoDateString","isoString","acknowledgeEvent","eventKey","acknowledgeStatefulEvent","acknowledgeStatelessEvent","occurredAt","deleteHistoricEvents","fetchOpenEventsOfMultipleAssets","fetchHistoricEventsOfMultipleAssets","fetchLocales","locale","fetchGrantedAccesses","userGroupId","fetchGrantedAccessesForAssetGroup","createGrantedAccess","requiredAssetGroups","updateGrantedAccess","accessId","updatedGrantedAccess","deleteGrantedAccess","fetchNamedQueries","executeNamedQuery","OAUTH2_CLIENT_USERNAME","OAUTH2_CLIENT_PASSWORD","requestToken","principal","password","access_token","expires_in","refresh_token","createAuthInfo","refreshToken","token","revokeToken","tokenTypeHint","revokeAccessToken","accessToken","revokeRefreshToken","expiresIn","account_number","user_name","tenant","jwtDecode","fetchAuthorizationOptions","fetchProperties","getPropertyById","propertyKey","createProperty","updateProperty","deleteProperty","fetchRoleById","fetchRoleByIds","fetchRolesForLicense","licenseName","createRole","item","createRoleWithLicense","updateRole","deleteRole","fetchRoles","fetchAuthoritiesOfRole","setAuthoritiesOfRole","authorities","fetchAssignedAssetRules","fetchAssignedAssetGroupRules","createRule","rule","updateRule","assignAssetRules","ruleIds","assignAssetGroupRules","unassignAssetRules","assignedRules","unassignAssetGroupRules","deleteRule","fetchRuleByName","checkRuleNameUniquenes","fetchEventTemplateMappingsOfRule","ruleUuid","eventTemplateMappings","createEventTemplateMapping","deleteAllEventTemplateMappingsOfRule","fetchEmailTemplateById","fetchEmailTemplateAccessById","fetchEmailTemplates","emailTemplates","createEmailTemplate","notificationTemplate","updateEmailTemplate","deleteEmailTemplate","notificationTemplateId","subscribeAssets","types","subscribeAssetGroups","unsubscribe","subscriptionId","fetchUnits","addUnit","fetchUserByAccountNumber","accountNumber","fetchMe","fetchUsers","createUser","user","userToCreate","inviteUser","initialState","updateUser","updateMe","searchUsers","fetchUserGroupsOfUser","setUserPassword","deleteUser","deleteMyAccount","triggerPasswordReset","email","triggerEmailChange","oldEmailAddress","newEmailAddress","changeEmail","updateUserGroupsOfUser","addedUserGroupIds","removedUserGroupIds","changes","fetchRolesOfUser","updateRolesOfUser","roleIds","updateLocaleOfUser","acceptEULA","setUserState","state","delete2FADevice","fetchUserGroups","fetchUserGroupById","createUserGroup","usergroup","updateUserGroup","deleteUserGroup","searchUserGroups","fetchRoleIdsOfUserGroup","updateRoleIdsOfUserGroup","assignUsersToUserGroupByIds","userIds","assignUsersToUserGroupByQuery","unassignUsersFromUserGroupByIds","unassignUsersFromUserGroupByQuery","fetchAccesses","addAccess","deleteAccess","fetchAccountGroupAccesses","fetchInverseAccountGroupAccesses","addAccountGroupAccess","givingAccessAccountGroupId","receivingAccessAccountGroupId","deleteAccountGroupAccess","fetchLicenses","fetchLicenseByName","createLicense","license","updateLicense","deleteLicense","getVersion","initializeRemoteServiceConnection","gatewayUrn","targetNetwork","fetchRemoteServiceConnectionInfo","terminateRemoteServiceConnection","fetchPreparedCommands","createPreparedCommand","preparedCommand","updatePreparedCommand","deletePreparedCommand","assignPreparedCommandsToGateway","preparedCommandIds","executePreparedCommand","invokeDiscoveryCommand","discoveryParameters","discoveryPayload","fetchSentCommandResponses","createOrUpdateAuthorizationServer","authorizationServer","deleteAuthorizationServer","fetchAuthorizationServer","fetchAuthorizationServers","createOrUpdateAuthorizationServerRule","authorizationServerName","fetchAuthorizationServerRules","fetchAuthorizationServerRule","ruleName","deleteAuthorizationServerRule","dryRunHeader","createAssetDryRun","updateAssetDryRun","assignAssetGroupDryRun","unassignAssetGroupDryRun","updateAssetGroupIdsDryRun","createAssetGroupDryRun","updateAssetGroupDryRun","deleteAssetGroupDryRun","assignAssetsByIdsDryRun","assignAssetsByQueryDryRun","unassignAssetsByIdsDryRun","unassignAssetsByQueryDryRun","fetchShadowKeys","fetchAllBundles","fetchBundle","createBundle","bundle","deleteBundle","fetchBundleVersions","bundleId","draft","fetchBundleVersion","versionId","createBundleVersion","version","releaseBundleVersion","deleteBundleVersion","createBundleFile","fetchBundleFiles","downloadBundleFile","fileId","deleteBundleFile","fetchAuditLogEntities","dateToString","ts","fetchAuditLogDifferences","entityType","entityId","getParamsForSingleReport","workspaceId","reportId","aggregateSeries","getSeries","getEvents","sendUx4iotGrantRequest","grantRequest","sendUx4iotGrantRequestToEndpoint","grantRequestEndpoint","DataTypeToAdxDatapointType","queryDatapointValues","groupBy","deduplication","includeOutliers","queryLastDatapointsValue","getInitialAccountGroupAssignmentRules","createInitialAccountGroupAssignmentRule","updateInitialAccountGroupAssignmentRule","deleteInitialAccountGroupAssignmentRule"],"mappings":"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"}
|