{"servers":[{"url":"https://api.apps.nor.tech","description":"HTTP API for Nortech AI"}],"info":{"title":"Nortech API","version":"1.0.0","contact":{"name":"Nortech AI","url":"https://nortech.ai","email":"support@nortech.ai"},"summary":"HTTP API for Nortech AI. Contact Nortech AI support for access.","description":"This API is structured between three main API groups:\n* **Metadata API** - To navigate and get information about your assets.\n* **Signal Data API** - To query all signal data produced from your assets.\n* **Deriver API** - To create and manage derivers that produce computed signals.\n\n# Pagination\nAll `List` Endpoints support cursor pagination. In this pagination model, the client receives a `next.token` field in the response, \nwhich can be used as a `nextToken` query parameter to fetch the next page of results. \nThe `size` parameter defines the maximum number of results to return, the `sortBy` and `sortOrder` parameters define the field to sort by and its order.","x-logo":{"url":"https://branding-api.apps.nor.tech/logo-light","backgroundColor":"#fafafa","altText":"Nortech AI","href":"https://nortech.ai"}},"tags":[{"name":"Workspace","description":"This API includes endpoints that allow you to interact with `Workspaces` metadata."},{"name":"Asset","description":"This API includes endpoints that allow you to interact with `Assets` metadata."},{"name":"Division","description":"This API includes endpoints that allow you to interact with `Divisions` metadata."},{"name":"Unit","description":"This API includes endpoints that allow you to interact with `Units` metadata."},{"name":"Signal","description":"This API includes endpoints that allow you to interact with `Signals` metadata."},{"name":"Historical Data","description":"This API includes endpoints that allow you to retrieve raw `Signal` Data for a specified period. \n      The data requested is compiled into a file that you can download posteriorly."},{"name":"Live Data","description":"This API includes endpoints that allow you to retrieve live data."},{"name":"MQTT Live Data","description":"\nThis API provides endpoints to configure the Nortech AI Live API by selecting signals to be exported as MQTT messages. Data can then be consumed from `mqtts://live.data.apps.nor.tech` at topics with structure `<format>/workspaces/<workspaceId>/assets/<assetId>/divisions/<divisionId>/units/<unitId>/signals/<signalId>` where `<format>` is one of `json` or `protobuf`. At the moment, the single-level wildcard (+) is not supported.\n\n### Protobuf Schema\n\n```\n  syntax = \"proto3\";\n\n  message DataPoint {\n      uint64 timestamp = 1;\n      oneof value {\n          bool bool_value = 2;\n          double double_value = 3;\n          string string_value = 4;\n      }\n  }\n```\n      "},{"name":"Import Data","description":"This API includes endpoints that allow you to import signal data."},{"name":"Deriver","description":"This API includes endpoints that allow you to create and manage `Derivers`."}],"webhooks":{"asyncDataRequest":{"post":{"summary":"Async Data Request Notification","tags":["historicalData"],"description":"The user can implemement this endpoint to be called when an Async Data Request is finished. \n          See [Create Async Data Request](#tag/historicalData/paths/~1api~1v1~1historical-data~1async/post) for more info.","security":[],"requestBody":{"description":"","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"type":"string","const":"Failed"},"error":{"anyOf":[{"type":"string","const":"Data request failed"},{"type":"string","const":"Request timed out"}]}},"required":["requestId","status","error"],"additionalProperties":false,"description":"Data request failed"},{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"type":"string","const":"Finished"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"additionalProperties":false,"description":"Data request is finished"}]}}}},"responses":{"200":{"description":"Success"}}}}},"openapi":"3.1.1","paths":{"/api/health":{"get":{"operationId":"health","summary":"Health check","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{},{"not":{}}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}}}}},"/api/me":{"get":{"operationId":"me","summary":"Get current user","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"customerId":{"type":"number"},"customerName":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}}},"required":["username","customerId","customerName","roles"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}/assets":{"get":{"operationId":"v1.metadata.asset.listWorkspaceAssets","summary":"List Workspace Assets","description":"List all `Assets` in a `Workspace` by its `ID` or `Name`.","tags":["Asset"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","type","description"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Asset` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"type":{"type":"string","description":"`Type` of the `Asset`","examples":["Vessel"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]}},"required":["id","name","type","description"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}":{"get":{"operationId":"v1.metadata.asset.getWorkspaceAsset","summary":"Get Workspace Asset","description":"Get an `Asset` in a `Workspace` by their `Names`.","tags":["Asset"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}}],"responses":{"200":{"description":"`Asset` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Asset`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Asset`"},"type":{"type":"string","description":"`Type` of the `Asset`","examples":["Vessel"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","type","description","workspace"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}]}}}}}}},"/api/v1/assets/{asset}":{"get":{"operationId":"v1.metadata.asset.getAsset","summary":"Get Asset","description":"Get an `Asset` by its `ID`.","tags":["Asset"],"parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Asset`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Asset`"},"type":{"type":"string","description":"`Type` of the `Asset`","examples":["Vessel"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","type","description","workspace"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.metadata.asset.updateAsset","summary":"Update Asset","description":"Update an `Asset` by its `ID` or `Name` **(Requires editor permissions)**","tags":["Asset"],"parameters":[{"name":"asset","in":"path","required":true,"schema":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"type":{"type":"string","examples":["Vessel"],"default":"Default"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]}},"required":["asset"]}}}},"responses":{"200":{"description":"`Asset` updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Asset`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Asset`"},"type":{"type":"string","description":"`Type` of the `Asset`","examples":["Vessel"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","type","description","workspace"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}}}}}}},"/api/v1/assets":{"post":{"operationId":"v1.metadata.asset.createAsset","summary":"Create Asset","description":"Create a new `Asset` **(Requires editor permissions)**","tags":["Asset"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"type":{"type":"string","examples":["Vessel"],"default":"Default"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]}},"required":["workspace","asset"]}}}},"responses":{"201":{"description":"`Asset` created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Asset`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Asset`"},"type":{"type":"string","description":"`Type` of the `Asset`","examples":["Vessel"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Asset`","examples":["Asset description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","type","description","workspace"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Asset already exists","properties":{"status":{"const":"Asset already exists"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions":{"get":{"operationId":"v1.metadata.division.listWorkspaceAssetDivisions","summary":"List Workspace Asset Divisions","description":"List all `Divisions` in an `Workspace/Asset` group by their `Names`.","tags":["Division"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","description"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Division` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]}},"required":["id","name","description"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets/{asset}/divisions?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}":{"get":{"operationId":"v1.metadata.division.getWorkspaceAssetDivision","summary":"Get Workspace Asset Division","description":"Get a `Division` in an `Workspace/Asset` group by their `Names`.","tags":["Division"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"division","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}}],"responses":{"200":{"description":"`Division` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Division`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Division`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","description","workspace","asset"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/divisions":{"get":{"operationId":"v1.metadata.division.listWorkspaceDivisions","summary":"List Workspace Divisions","description":"List all `Divisions` in a `Workspace` by its `ID`.","tags":["Division"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","description"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]}},"required":["id","name","description"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/divisions?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]}}}}}}},"/api/v1/assets/{asset}/divisions":{"get":{"operationId":"v1.metadata.division.listAssetDivisions","summary":"List Asset Divisions","description":"List all `Divisions` in an `Asset` by its `ID`.","tags":["Division"],"parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","description"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]}},"required":["id","name","description"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/assets/{asset}/divisions?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}}}}}}},"/api/v1/divisions/{division}":{"get":{"operationId":"v1.metadata.division.getDivision","summary":"Get Division","description":"Get a `Division` by its `ID`.","tags":["Division"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Division`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Division`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","description","workspace","asset"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.metadata.division.updateDivision","summary":"Update Division","description":"Update a `Division` **(Requires editor permissions)**","tags":["Division"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["asset","division"]}}}},"responses":{"200":{"description":"`Division` updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Division`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Division`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","description","workspace","asset"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}]}}}}}}},"/api/v1/divisions":{"post":{"operationId":"v1.metadata.division.createDivision","summary":"Create Division","description":"Create a new `Division` **(Requires editor permissions)**","tags":["Division"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["workspace","asset","division"]}}}},"responses":{"201":{"description":"`Division` created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Division`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Division`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Division`","examples":["Division description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","description","workspace","asset"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Division already exists","properties":{"status":{"const":"Division already exists"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals":{"get":{"operationId":"v1.metadata.signal.listWorkspaceAssetDivisionUnitSignals","summary":"List Workspace Asset Division Unit Signals","description":"List all `Signals` in a `Workspace/Asset/Division/Unit` group by their `Names`.","tags":["Signal"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"division","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},{"name":"unit","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals/{signal}":{"get":{"operationId":"v1.metadata.signal.getWorkspaceAssetDivisionUnitSignal","summary":"Get Workspace Asset Division Unit Signal","description":"Get a `Signal` in a `Workspace/Asset/Division/Unit` group by their `Names`.","tags":["Signal"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"division","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},{"name":"unit","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},{"name":"signal","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}}],"responses":{"200":{"description":"`Signal` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]},{"type":"object","description":"Signal not found","properties":{"status":{"const":"Signal not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/signals":{"get":{"operationId":"v1.metadata.signal.listWorkspaceSignals","summary":"List Workspace Signals","description":"List all `Signals` in a `Workspace` by its `IDs`.","tags":["Signal"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/signals?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]}}}}}}},"/api/v1/assets/{asset}/signals":{"get":{"operationId":"v1.metadata.signal.listAssetSignals","summary":"List Asset Signals","description":"List all `Signals` in an `Asset` by its `IDs`.","tags":["Signal"],"parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/assets/{asset}/signals?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}}}}}}},"/api/v1/divisions/{division}/signals":{"get":{"operationId":"v1.metadata.signal.listDivisionSignals","summary":"List Division Signals","description":"List all `Signals` in a `Division` by its `IDs`.","tags":["Signal"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/divisions/{division}/signals?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}}}}}}},"/api/v1/units/{unit}/signals":{"get":{"operationId":"v1.metadata.signal.listUnitSignals","summary":"List Unit Signals","description":"List all `Signals` in a `Unit` by its `IDs`.","tags":["Signal"],"parameters":[{"name":"unit","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/units/{unit}/signals?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}}}}}}},"/api/v1/signals/{signal}":{"get":{"operationId":"v1.metadata.signal.getSignal","summary":"Get Signal","description":"Get a `Signal` by its `ID`.","tags":["Signal"],"parameters":[{"name":"signal","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]}}],"responses":{"200":{"description":"`Signal` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Signal not found","properties":{"status":{"const":"Signal not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.metadata.signal.updateSignal","summary":"Update Signal","description":"Update a `Signal`. **Requires editor role.**","tags":["Signal"],"parameters":[{"name":"signal","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"groupKey":{"type":"string","minLength":1,"maxLength":64,"description":"`Signals` with the same `groupKey` are stored together"},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["asset","division","unit"]}}}},"responses":{"200":{"description":"`Signal` updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]},{"type":"object","description":"Signal not found","properties":{"status":{"const":"Signal not found"}},"required":["status"]}]}}}}}}},"/api/v1/signals":{"post":{"operationId":"v1.metadata.signal.getSignals","summary":"Get Signals","description":"Get multiple `Signals` from their `IDs` or `Search JSON`.","tags":["Signal"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"}},"required":["signals"]}}}},"responses":{"200":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"}},"required":["signals"]}},"required":["status","details"]}}}}}}},"/api/v1/signals/new":{"post":{"operationId":"v1.metadata.signal.createSignal","summary":"Create Signal","description":"Create a `Signal`. **Requires editor role.**","tags":["Signal"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"groupKey":{"type":"string","minLength":1,"maxLength":64,"description":"`Signals` with the same `groupKey` are stored together"},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["workspace","asset","division","unit","signal","dataType"]}}}},"responses":{"200":{"description":"`Signal` created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Signal already exists","properties":{"status":{"const":"Signal already exists"}},"required":["status"]}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","description":"Maximum of 900 signals per unit reached","properties":{"status":{"const":"Maximum of 900 signals per unit reached"}},"required":["status"]}}}}}}},"/api/v1/signals/new/batch":{"post":{"operationId":"v1.metadata.signal.createSignals","summary":"Create Signals","description":"Create multiple `Signals`. The request only succeeds if at least one of the `Signals` is new. **Requires editor role.**","tags":["Signal"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signals":{"type":"array","items":{"type":"object","properties":{"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"groupKey":{"type":"string","minLength":1,"maxLength":64,"description":"`Signals` with the same `groupKey` are stored together"}},"required":["signal","dataType"]}},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["workspace","asset","division","unit","signals"]}}}},"responses":{"201":{"description":"`Signal` list","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Signals already exists","properties":{"status":{"const":"Signals already exists"}},"required":["status"]}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","description":"Maximum of 900 signals per unit reached","properties":{"status":{"const":"Maximum of 900 signals per unit reached"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units":{"get":{"operationId":"v1.metadata.unit.listWorkspaceAssetDivisionUnits","summary":"List Workspace Asset Division Units","description":"List all `Units` in a `Workspace/Asset/Division` group by their `Names`.","tags":["Unit"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"division","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Unit` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}":{"get":{"operationId":"v1.metadata.unit.getWorkspaceAssetDivisionUnit","summary":"Get Workspace Asset Division Unit","description":"Get a `Unit` in a `Workspace/Asset/Division` group by their `Names`.","tags":["Unit"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},{"name":"asset","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},{"name":"division","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},{"name":"unit","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}}],"responses":{"200":{"description":"`Unit` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Unit`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Unit`"},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","workspace","asset","division"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}]}}}}}}},"/api/v1/workspaces/{workspace}/units":{"get":{"operationId":"v1.metadata.unit.listWorkspaceUnits","summary":"List Workspace Units","description":"List all `Units` in a `Workspace` by its `ID`.","tags":["Unit"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Unit` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces/{workspace}/units?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]}}}}}}},"/api/v1/assets/{asset}/units":{"get":{"operationId":"v1.metadata.unit.listAssetUnits","summary":"List Asset Units","description":"List all `Units` in an `Asset` by its `ID`.","tags":["Unit"],"parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Unit` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/assets/{asset}/units?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]}}}}}}},"/api/v1/divisions/{division}/units":{"get":{"operationId":"v1.metadata.unit.listDivisionUnits","summary":"List Division Units","description":"List all `Units` in a `Division` by its `ID`.","tags":["Unit"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]}},{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Unit` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/divisions/{division}/units?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}}}}}}},"/api/v1/units/{unit}":{"get":{"operationId":"v1.metadata.unit.getUnit","summary":"Get Unit","description":"Get a `Unit` by its `ID`.","tags":["Unit"],"parameters":[{"name":"unit","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]}}],"responses":{"200":{"description":"`Unit` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Unit`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Unit`"},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","workspace","asset","division"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.metadata.unit.updateUnit","summary":"Update Unit","description":"Update a `Unit` **(Requires editor permissions)**","tags":["Unit"],"parameters":[{"name":"unit","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["asset","division","unit"]}}}},"responses":{"200":{"description":"`Unit` updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Unit`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Unit`"},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","workspace","asset","division"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}]}}}}}}},"/api/v1/units":{"post":{"operationId":"v1.metadata.unit.createUnit","summary":"Create Unit","description":"Create a new `Unit` **(Requires editor permissions)**","tags":["Unit"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createParents":{"type":"string","default":false,"description":"Force creation of parent resources if they don't exist"}},"required":["workspace","asset","division","unit"]}}}},"responses":{"200":{"description":"`Unit` created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Unit`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Unit`"},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","workspace","asset","division"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Unit already exists","properties":{"status":{"const":"Unit already exists"}},"required":["status"]}}}}}}},"/api/v1/workspaces":{"get":{"operationId":"v1.metadata.workspace.listWorkspaces","summary":"List Workspaces","description":"List all `Workspaces` accessible to the user.","tags":["Workspace"],"parameters":[{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","description"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Workspace` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Workspace`","examples":["Workspace description"]}},"required":["id","name"],"additionalProperties":false}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/workspaces?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}}}}},"/api/v1/workspaces/{workspace}":{"get":{"operationId":"v1.metadata.workspace.getWorkspace","summary":"Get Workspace","description":"Get a `Workspace` by its `ID` or `Name`.","tags":["Workspace"],"parameters":[{"name":"workspace","in":"path","required":true,"schema":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}]}}],"responses":{"200":{"description":"`Workspace` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Workspace`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Workspace`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Workspace`","examples":["Workspace description"]}},"required":["id","name","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]}}}}}}},"/api/v1/signal/data/import":{"post":{"operationId":"v1.signalData.dataImport.dataImport","summary":"Import Signal Data","description":"This endpoint allows you to import signal data into the system. **Requires editor role.**","tags":["Import Data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signals":{"type":"array","minItems":1,"items":{"type":"object","properties":{"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"points":{"type":"array","minItems":1,"items":{"type":"object","properties":{"value":{"anyOf":[{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","additionalProperties":{}}]},{"type":"boolean"}]},"timestamp":{"anyOf":[{"type":"number","description":"Unix timestamp in milliseconds"},{"type":"string","description":"ISO date string"}],"description":"ISO date string or Unix timestamp"}},"required":["value","timestamp"]}}},"required":["name","points"]}}},"required":["workspace","asset","division","unit","signals"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"anyOf":[{},{"not":{}}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspace not found","properties":{"status":{"const":"Workspace not found"}},"required":["status"]},{"type":"object","description":"Asset not found","properties":{"status":{"const":"Asset not found"}},"required":["status"]},{"type":"object","description":"Division not found","properties":{"status":{"const":"Division not found"}},"required":["status"]},{"type":"object","description":"Unit not found","properties":{"status":{"const":"Unit not found"}},"required":["status"]},{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"type":"array","items":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"description":"Missing Signals"}}}},"required":["status","details"]}]}}}}}}},"/api/v1/historical-data/async":{"post":{"operationId":"v1.signalData.historicalData.asyncRequest","summary":"Create Async Data Request","description":"This endpoint creates a data request and responds immediately while the data is being processed in the background. \n        The response will contain a `status`, indicating if the request is running or if it failed, \n        and a `requestId` field that can be used to check the status of the request using the \n        [Get Data Request](#tag/historicalData/paths/~1api~1v1~1historical-data~1%7BrequestId%7D/get). \n        The field `outputFile` indicates the URL to download the output file, when ready.","tags":["Historical Data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]},"timeWindow":{"type":"object","properties":{"start":{"type":"string","description":"Date in ISO format"},"end":{"type":"string","description":"Date in ISO format"}},"required":["start"]},"format":{"anyOf":[{"const":"parquet"},{"const":"json"},{"const":"csv"}],"default":"parquet","description":"Output file format"},"notificationUrl":{"type":"string","format":"uri","description":"URL to notify when the output file is ready, see [Async historical data request notification](#tag/historicalData/paths/asyncDataRequest/post) for more info"}},"required":["signals","timeWindow"],"description":"Async Data Request"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Running"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"description":"Data request is still running"},{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Finished"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"description":"Data request is finished"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]}},"required":["signals"]}},"required":["status","details"]}}}},"503":{"description":"503","content":{"application/json":{"schema":{"type":"object","description":"Failed","properties":{"status":{"const":"Failed"},"details":{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Failed"},"error":{"anyOf":[{"const":"Data request failed"},{"const":"Request timed out"}]}},"required":["requestId","status","error"],"description":"Data request failed"}},"required":["status","details"]}}}}}}},"/api/v1/historical-data/sync":{"post":{"operationId":"v1.signalData.historicalData.syncRequest","summary":"Create Sync Data Request","description":"This endpoint creates a data request and waits for the data to be processed before responding. \n        The response will contain a `status`, indicating if the request succeeded or if it failed, \n        and a `outputFile` or `error` field indicating the URL of the output file or the error message, respectively.","tags":["Historical Data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]},"timeWindow":{"type":"object","properties":{"start":{"type":"string","description":"Date in ISO format"},"end":{"type":"string","description":"Date in ISO format"}},"required":["start"]},"format":{"anyOf":[{"const":"parquet"},{"const":"json"},{"const":"csv"}],"default":"parquet","description":"Output file format"}},"required":["signals","timeWindow"],"description":"Sync Data Request"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Finished"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"description":"Data request is finished"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]}},"required":["signals"]}},"required":["status","details"]},{"type":"object","description":"Signal Data not found","properties":{"status":{"const":"Signal Data not found"}},"required":["status"]}]}}}},"503":{"description":"503","content":{"application/json":{"schema":{"type":"object","description":"Failed","properties":{"status":{"const":"Failed"},"details":{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"error":{"anyOf":[{"const":"Data request failed"},{"const":"Request timed out"}]}},"required":["requestId","error"]}},"required":["status","details"]}}}}}}},"/api/v1/historical-data/{requestId}":{"get":{"operationId":"v1.signalData.historicalData.getRequest","summary":"Get Data Request","description":"This endpoint allows you to check the status of a data request.","tags":["Historical Data"],"parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Running"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"description":"Data request is still running"},{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Finished"},"outputFile":{"type":"string","format":"uri","description":"URL to download the data output file","examples":["https://nortech-historical-data-euc1.s3.eu-central-1.amazonaws.com/User-10-1713999600/000.parquet"]}},"required":["requestId","status","outputFile"],"description":"Data request is finished"},{"type":"object","properties":{"requestId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Request`","examples":[10000]},"status":{"const":"Failed"},"error":{"anyOf":[{"const":"Data request failed"},{"const":"Request timed out"}]}},"required":["requestId","status","error"],"description":"Data request failed"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Request not found","properties":{"status":{"const":"Request not found"}},"required":["status"]}}}}}}},"/api/v1/live-data/points":{"post":{"operationId":"v1.signalData.liveData.getLatestData","summary":"Get latest data points","description":"Get the latest data points for the given signals","deprecated":true,"tags":["Live Data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"Timestamp of the data point in UTC format"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","additionalProperties":{}},{"type":"null"}],"description":"Value of the data point","examples":["on",100,true,{"status":"ok"}]}},"required":["timestamp","value"]}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"rename":{"type":"string","maxLength":127,"description":"Name to give the returned signal. Defaults to the signal ID."}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}]}},"required":["signals"]}},"required":["status","details"]},{"type":"object","description":"Signal Data not found","properties":{"status":{"const":"Signal Data not found"}},"required":["status"]}]}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","description":"Signals must belong to the same workspace","properties":{"status":{"const":"Signals must belong to the same workspace"}},"required":["status"]}}}}}}},"/api/v1/live-data/connections":{"get":{"operationId":"v1.signalData.mqttLiveData.listConnections","summary":"List Data Connections","tags":["MQTT Live Data"],"parameters":[{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["name","workspaceId","signals","format"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true},{"name":"workspaceId","in":"query","schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]},"name":{"type":"string","description":"Name of the Data Connection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"brokerUrl":{"type":"string","format":"uri","description":"URL of the broker to connect to","examples":["mqtts://live.data.apps.nor.tech"]},"topics":{"type":"array","items":{"type":"object","properties":{"signalId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"Name of the topic exposing the Signal data"}},"required":["signalId","name"]},"description":"Array of topics to subscribe to"}},"required":["id","name","workspaceId","brokerUrl","topics"]}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1/connections?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}}}},"post":{"operationId":"v1.signalData.mqttLiveData.createConnection","summary":"Create Data Connection","tags":["MQTT Live Data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Data Cnnection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"},"format":{"anyOf":[{"const":"json"},{"const":"protobuf"}],"description":"Serialization format of the data"}},"required":["name","workspaceId","signals","format"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]},"name":{"type":"string","description":"Name of the Data Connection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"brokerUrl":{"type":"string","format":"uri","description":"URL of the broker to connect to","examples":["mqtts://live.data.apps.nor.tech"]},"topics":{"type":"array","items":{"type":"object","properties":{"signalId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"Name of the topic exposing the Signal data"}},"required":["signalId","name"]},"description":"Array of topics to subscribe to"}},"required":["id","name","workspaceId","brokerUrl","topics"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"}},"required":["signals"]}},"required":["status","details"]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","description":"Data Connection already exists","properties":{"status":{"const":"Data Connection already exists"}},"required":["status"]}}}}}}},"/api/v1/live-data/connections/{connectionId}":{"get":{"operationId":"v1.signalData.mqttLiveData.getConnection","summary":"Get Data Connection","tags":["MQTT Live Data"],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]},"name":{"type":"string","description":"Name of the Data Connection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"brokerUrl":{"type":"string","format":"uri","description":"URL of the broker to connect to","examples":["mqtts://live.data.apps.nor.tech"]},"topics":{"type":"array","items":{"type":"object","properties":{"signalId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"Name of the topic exposing the Signal data"}},"required":["signalId","name"]},"description":"Array of topics to subscribe to"}},"required":["id","name","workspaceId","brokerUrl","topics"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Data Connection not found","properties":{"status":{"const":"Data Connection not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.signalData.mqttLiveData.updateConnection","summary":"Update Data Connection","tags":["MQTT Live Data"],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Data Cnnection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"},"format":{"anyOf":[{"const":"json"},{"const":"protobuf"}],"description":"Serialization format of the data"}},"required":["name","workspaceId","signals","format"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]},"name":{"type":"string","description":"Name of the Data Connection"},"workspaceId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"brokerUrl":{"type":"string","format":"uri","description":"URL of the broker to connect to","examples":["mqtts://live.data.apps.nor.tech"]},"topics":{"type":"array","items":{"type":"object","properties":{"signalId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"Name of the topic exposing the Signal data"}},"required":["signalId","name"]},"description":"Array of topics to subscribe to"}},"required":["id","name","workspaceId","brokerUrl","topics"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"type":"object","properties":{"signals":{"anyOf":[{"type":"array","minItems":1,"items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]}},"required":["workspace","asset","division","unit","signal"],"description":"Signal search JSON"},"examples":[[{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal1"},{"workspace":"Workspace1","asset":"Asset1","division":"Division1","unit":"Unit1","signal":"Signal2"}]]},{"type":"array","minItems":1,"items":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"description":"Array of signal ID's","examples":[[10000,10001,10002]]}],"description":"Array of Signal ID's or Search JSON's"}},"required":["signals"]}},"required":["status","details"]},{"type":"object","description":"Data Connection not found","properties":{"status":{"const":"Data Connection not found"}},"required":["status"]}]}}}}}},"delete":{"operationId":"v1.signalData.mqttLiveData.deleteConnection","summary":"Delete Data Connection","tags":["MQTT Live Data"],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Data Connection`","examples":[10000]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{},{"not":{}}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Data Connection not found","properties":{"status":{"const":"Data Connection not found"}},"required":["status"]}}}}}}},"/api/v1/derivers":{"get":{"operationId":"v1.deriver.listDerivers","summary":"List Derivers","description":"List all `Derivers`.","tags":["Deriver"],"parameters":[{"name":"size","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"allowEmptyValue":true,"allowReserved":true},{"name":"nextToken","in":"query","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"name":"sortBy","in":"query","schema":{"enum":["id","name","createdAt","updatedAt","definition","description","startAt","status"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"sortOrder","in":"query","schema":{"anyOf":[{"const":"asc"},{"const":"desc"}],"default":"asc"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Deriver` list","content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Deriver`","examples":[10000]},"name":{"type":"string","description":"Name of the `Deriver` class definition","examples":["TestDeriver"]},"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{},"status":{"enum":["STARTING","RUNNING","STOPPED","ERROR"]}},"required":["id","name","definition","status"]}},"next":{"type":"object","properties":{"token":{"type":"string"},"href":{"type":"string","format":"uri","examples":["https://api.apps.nor.tech/api/v1?nextToken=abc"]}},"required":["token","href"]}},"required":["size","data"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}}}},"post":{"operationId":"v1.deriver.createDeriver","summary":"Create Deriver","description":"Create a new `Deriver` **(Requires editor permissions)**","tags":["Deriver"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"default":"2026-04-02T17:00:55.566Z"},"createParents":{"type":"boolean","default":false,"description":"Create parent resources if they don't exist"}},"required":["definition"]}}}},"responses":{"201":{"description":"`Deriver` created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Deriver`","examples":[10000]},"name":{"type":"string","description":"Name of the `Deriver` class definition","examples":["TestDeriver"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Deriver`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Deriver`"},"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{},"inputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"outputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"status":{"enum":["STARTING","RUNNING","STOPPED","ERROR"]}},"required":["id","name","createdAt","updatedAt","definition","inputs","outputs","status"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Workspaces not found","properties":{"status":{"const":"Workspaces not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Assets not found","properties":{"status":{"const":"Assets not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Divisions not found","properties":{"status":{"const":"Divisions not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Units not found","properties":{"status":{"const":"Units not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Deriver already exists","properties":{"status":{"const":"Deriver already exists"}},"required":["status"]},{"type":"object","description":"Deriver output already exists","properties":{"status":{"const":"Deriver output already exists"},"details":{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}},"required":["status","details"]},{"type":"object","description":"Input type mismatch","properties":{"status":{"const":"Input type mismatch"},"details":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"inputName":{"type":"string","description":"Input name"},"receivedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Received data type"},"expectedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Expected data type"}},"required":["inputName","receivedType","expectedType"]}}},"required":["inputs"],"description":"Input type mismatch"}},"required":["status","details"]}]}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","description":"Validation Error","properties":{"status":{"const":"Validation Error"},"details":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"required":["status","details"]}}}}}}},"/api/v1/derivers/{deriver}":{"get":{"operationId":"v1.deriver.getDeriver","summary":"Get Deriver","description":"Get a `Deriver` by its `Name`.","tags":["Deriver"],"parameters":[{"name":"deriver","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Deriver`","examples":["Deriver 1"]}}],"responses":{"200":{"description":"`Deriver` details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Deriver`","examples":[10000]},"name":{"type":"string","description":"Name of the `Deriver` class definition","examples":["TestDeriver"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Deriver`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Deriver`"},"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{},"inputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"outputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"status":{"enum":["STARTING","RUNNING","STOPPED","ERROR"]}},"required":["id","name","createdAt","updatedAt","definition","inputs","outputs","status"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Deriver not found","properties":{"status":{"const":"Deriver not found"}},"required":["status"]}}}}}},"put":{"operationId":"v1.deriver.updateDeriver","summary":"Update Deriver","description":"Update a `Deriver` by its `Name` **(Requires editor permissions)**","tags":["Deriver"],"parameters":[{"name":"deriver","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Deriver`","examples":["Deriver 1"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"default":"2026-04-02T17:00:55.566Z"},"createParents":{"type":"boolean","default":false,"description":"Create parent resources if they don't exist"},"keepData":{"type":"boolean","default":false,"description":"Keep data for the deriver"}},"required":["definition"]}}}},"responses":{"200":{"description":"`Deriver` updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Deriver`","examples":[10000]},"name":{"type":"string","description":"Name of the `Deriver` class definition","examples":["TestDeriver"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Deriver`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Deriver`"},"definition":{"type":"string","examples":["\nimport bytewax.operators as op\n\nfrom nortech.derivers import Deriver, DeriverInput, DeriverInputs, DeriverOutput, DeriverOutputs\n\n\nclass TestDeriver(Deriver):\n    class Inputs(DeriverInputs):\n        input_1: float | None = DeriverInput(\n            workspace=\"workspace1\", asset=\"asset1\", division=\"division1\", unit=\"unit1\", signal=\"signal1\"\n        )\n        input_2: float | None = DeriverInput(\n            workspace=\"workspace2\", asset=\"asset2\", division=\"division2\", unit=\"unit2\", signal=\"signal2\"\n        )\n\n    class Outputs(DeriverOutputs):\n        output_1: float = DeriverOutput(\n            workspace=\"workspace1\",\n            asset=\"asset1\",\n            division=\"division1\",\n            unit=\"unit1\",\n            signal=\"new_signal1\",\n            description=\"output_1\",\n            long_description=\"output_1_long_description\",\n            physical_unit=\"m/s\",\n        )\n        output_2: str = DeriverOutput(\n            workspace=\"workspace2\",\n            asset=\"asset2\",\n            division=\"division2\",\n            unit=\"unit2\",\n            signal=\"new_signal2\",\n            description=\"output_2\",\n            long_description=\"output_2_long_description\",\n            physical_unit=\"m/s\",\n        )\n\n    def run(self, inputs: op.Stream[Inputs]) -> op.Stream[Outputs]:\n        return op.map(\n            \"\",\n            inputs,\n            lambda _input: self.Outputs(\n                timestamp=_input.timestamp,\n                output_1=_input.input_1 or 0,\n                output_2=str(_input.input_2),\n            ),\n        )\n\n"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"startAt":{},"inputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"outputs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Signal`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"createdAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Creation Date` of the `Signal`"},"updatedAt":{"type":"string","format":"date-time","x-native-type":"date","description":"`Update Date` of the `Signal`"},"physicalUnit":{"type":"string","description":"Physical unit of the `Signal`","examples":["m/s"]},"dataType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"`Data type` of the `Signal`"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`Description` of the `Signal`","examples":["Signal description"]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Long description of the `Signal`","examples":["Signal description"]},"workspace":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Workspace`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Asset`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]}},"required":["id","name"]},"division":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Division`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]}},"required":["id","name"]},"unit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"`ID` of the `Unit`","examples":[10000]},"name":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]}},"required":["id","name"]}},"required":["id","name","createdAt","updatedAt","physicalUnit","dataType","description","longDescription","workspace","asset","division","unit"],"additionalProperties":false}},"status":{"enum":["STARTING","RUNNING","STOPPED","ERROR"]}},"required":["id","name","createdAt","updatedAt","definition","inputs","outputs","status"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Deriver not found","properties":{"status":{"const":"Deriver not found"}},"required":["status"]},{"type":"object","description":"Workspaces not found","properties":{"status":{"const":"Workspaces not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Assets not found","properties":{"status":{"const":"Assets not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Divisions not found","properties":{"status":{"const":"Divisions not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Units not found","properties":{"status":{"const":"Units not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]},{"type":"object","description":"Signals not found","properties":{"status":{"const":"Signals not found"},"details":{"anyOf":[{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"inputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","inputName"]}}},"required":["inputs"]},{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}]}},"required":["status","details"]}]}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Deriver already exists","properties":{"status":{"const":"Deriver already exists"}},"required":["status"]},{"type":"object","description":"Deriver output already exists","properties":{"status":{"const":"Deriver output already exists"},"details":{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"workspace":{"type":"string","description":"`Name` of the `Workspace`","examples":["Workspace 1"]},"asset":{"type":"string","description":"`Name` of the `Asset`","examples":["Asset 1"]},"division":{"type":"string","description":"`Name` of the `Division`","examples":["Division 1"]},"unit":{"type":"string","description":"`Name` of the `Unit`","examples":["Unit 1"]},"signal":{"type":"string","description":"`Name` of the `Signal`","examples":["Signal 1"]},"outputName":{"type":"string","description":"Output name"}},"required":["workspace","asset","division","unit","signal","outputName"]}}},"required":["outputs"]}},"required":["status","details"]},{"type":"object","description":"Input type mismatch","properties":{"status":{"const":"Input type mismatch"},"details":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"inputName":{"type":"string","description":"Input name"},"receivedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Received data type"},"expectedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Expected data type"}},"required":["inputName","receivedType","expectedType"]}}},"required":["inputs"],"description":"Input type mismatch"}},"required":["status","details"]},{"type":"object","description":"Output type mismatch","properties":{"status":{"const":"Output type mismatch"},"details":{"type":"object","properties":{"outputs":{"type":"array","items":{"type":"object","properties":{"outputName":{"type":"string","description":"Output name"},"receivedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Received data type"},"expectedType":{"anyOf":[{"const":"float"},{"const":"boolean"},{"const":"string"},{"const":"json"}],"description":"Expected data type"}},"required":["outputName","receivedType","expectedType"]}}},"required":["outputs"],"description":"Existing output type mismatch"}},"required":["status","details"]}]}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","description":"Validation Error","properties":{"status":{"const":"Validation Error"},"details":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"required":["status","details"]}}}}}}},"/api/v1/derivers/{deriver}/logs":{"get":{"operationId":"v1.deriver.getDeriverLogs","summary":"Get Deriver Logs","description":"Get the logs for a `Deriver` by its `Name`.","tags":["Deriver"],"parameters":[{"name":"deriver","in":"path","required":true,"schema":{"type":"string","description":"`Name` of the `Deriver`","examples":["Deriver 1"]}},{"name":"since","in":"query","schema":{"type":"string","format":"date-time"},"allowEmptyValue":true,"allowReserved":true},{"name":"until","in":"query","schema":{"type":"string","format":"date-time"},"allowEmptyValue":true,"allowReserved":true},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":9007199254740991},"allowEmptyValue":true,"allowReserved":true},{"name":"direction","in":"query","schema":{"enum":["forward","backward"],"default":"forward"},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true},{"name":"level","in":"query","schema":{"enum":["CRITICAL","FATAL","ERROR","WARN","WARNING","INFO","DEBUG","NOTSET"]},"style":"deepObject","explode":true,"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"`Deriver` logs","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"timestamp":{"type":"string","format":"date-time","x-native-type":"date"}},"required":["message","timestamp"]}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Validation Error"},"details":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},"required":["status","details"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"Unauthorized"}},"required":["status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","description":"Forbidden","properties":{"status":{"const":"Forbidden"}},"required":["status"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","description":"Deriver not found","properties":{"status":{"const":"Deriver not found"}},"required":["status"]}}}}}}}},"components":{"securitySchemes":{"Bearer Token":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"Bearer Token":[]}],"x-tagGroups":[{"name":"Metadata API v1","tags":["Workspace","Asset","Division","Unit","Signal"]},{"name":"Signal Data API v1","tags":["Historical Data","Live Data","MQTT Live Data","Import Data"]},{"name":"Deriver API v1","tags":["Deriver"]}]}