diff --git a/docs/api/create-device-using-network.api.mdx b/docs/api/create-device-using-network.api.mdx
new file mode 100644
index 0000000..db74c38
--- /dev/null
+++ b/docs/api/create-device-using-network.api.mdx
@@ -0,0 +1,78 @@
+---
+id: create-device-using-network
+title: "Create Device using Network"
+description: "Create either an immutable or a mutable device."
+sidebar_label: "Create Device using Network"
+hide_title: true
+hide_table_of_contents: true
+api: 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
+sidebar_class_name: "post api-method"
+info_path: docs/api/tagoio-api
+custom_edit_url: null
+---
+
+import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
+import ParamsDetails from "@theme/ParamsDetails";
+import RequestSchema from "@theme/RequestSchema";
+import StatusCodes from "@theme/StatusCodes";
+import OperationTabs from "@theme/OperationTabs";
+import TabItem from "@theme/TabItem";
+import Heading from "@theme/Heading";
+
+
+
+
+
+
+
+
+
+
+Create either an immutable or a mutable device.
+ - Immutable devices require chunking parameters and are optimized for long-term, append-only storage.
+ - Mutable devices behave like classic devices and do not require chunk settings.
+
+You must have a Network and a Network-Token to use this endpoint.
+:::warning
+Your Network-Token must have the create device privilege as true.
+:::
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/create-network-token.api.mdx b/docs/api/create-network-token.api.mdx
new file mode 100644
index 0000000..c6967c7
--- /dev/null
+++ b/docs/api/create-network-token.api.mdx
@@ -0,0 +1,71 @@
+---
+id: create-network-token
+title: "Create a Token for the Network"
+description: "Create a token for the network to use in network endpoints"
+sidebar_label: "Create a Token for the Network"
+hide_title: true
+hide_table_of_contents: true
+api: eJy9V9tu2zgQ/RWCeShgSL47jvVQINsGu8EWbZALikUSoGNpLLGRSZWk4hqG/30xpGRLTpN2t9t9SQxxOHPmfrjhFlLDo1v+Hu1K6Qd2LlM0lt8HPEETa1FYoSSP+BuNYJEBs+oBJVsozWyGTFbXrGKlQSbk7gvKpFBCWsMDrgrUQIrOEx7x2KmqDF6TOh5wg3GphV3z6HbDL7RaiBxDfxjd3m/vA67xS4nG/qaSNY82PFbSorT0E4oiF7Ez0PtsCO6GmzjDJdAvuy6QR1zNP2NsudcjNCbktYQl8oBXmMnrQhNYK9DQ3fpgr8ZYLWTKA45fYVnk9On4eDqZ9o+H02QIyaDf789msySGId8G3sCLt72PW7KMjyLHtDJ9CLsNzMfwLT6KuKl/rlSOIJsGrC5xu91uG59uG449j74Gz+sUHQBsQ/Bm7vdmnMyuapwOthI2Y9U3f5EVWjilzotHyMtfjM+HQqMplDRecNjv079n6v0HkAf/vhjbWdVoytx+X+4fVNVPV/CvLcuAW9/jL8EDgPl8HsfhYDAYhMPhcBiORqNROB6Px+AP59wpMxZsaX6sIdyFJdpM0VAqlHHugM14xHtCWkz9zOpVIezZ3ajSj6iNq9NS5zzimbWFiXo9KES3NCEOuhZS1RWKb4NvyWAZrhoy9/vxd0WV4mPpo1jPwJ1HUIg/cc0P5/Mpa8ozm4FlwrBSii8l0nheq1KzxMl02e8oaSLv5/l8zSCO0RghUy/q1b0yrIAUu/tua8EKuCDjGUKCmgf8a7jP2gQHw9F4AmEy7UM4xmESzk9GSTiJ++7geHoyowKrFsGPO1qvqhc9rYS67NS5xc73CTXs9U7Ha6/F0L30MCi05FrKns6cQ/ffClPksH7vpdqutcOzSCbjGSTD8GQwisNxcnwczhfTYTjpn+BkPjuBBY4oPAe78PvhqS5UPjwTHpRWaJphTrZREEJ6AYhjVUrLDForZGoavrcRvVQCMJggTBDCJBkm4Tg+HoUns/EknA3nk3EC4+l0CJzakAbl5X6/n/0Pm4pwL5QLqLB+ZkKqzj+w04vzJ1E9Ojo6Yp3OH2pVMx2bCcMSFZdLlNaVVadzJ68zbH+k0JsiF5Y6bJWJOKvyslblK42sJiMNAkW0quI6XcbuZAWr0OpRJGjYmCVisUCN0npdJrqTIet0mp3Z6USMwFSFrNWyOQCCCspalSwGyVK0XoZsJ63Gv5OMEQoy0Eo8WTjNjWIPUq0YGGo0qhh/2mV/qXKv19muim1XUk8NtPqFDJwbB+nQi11zf5D5msEjiBzmOTKxqOOqVhI1U4sWSa1rWzRnwRMQpxLytRHGo4g6nW8GEiqpoGneJ68+qlWHYXgnXQVdec+d1OnFOTurODK7xFQoeSc/ZijZEh5ICOoqoNqgG/v6DFzmlqWxDCgFpsBYLNbeekErWQtqZu3UQr4j4132JlPKIFMS6+gsVJ6rFVncUXY2B4MJU1W8UlSphiITMeSVzuhO+mjdSGExYVcWLBp2BsayAcWM+ZDe1K1S62arDOsRs2dK1CbeZhVDBGNRS9ZS3621djo3l+/IyqdnN2/vUzOnZyXRFPYR/wN4pISgeZ3fwdTa9ITJ46FUsrdY5Gq9Q0MNYzJV5ombBA6DWklXKDeX73aTvFVvflWrJQhpmMHYoa0SS0a8DRreRFn8MBt0+91+RVohJrpJI5gI0BLknl4eUuD6yVc13+GMbLzIfu6xWO03i19tr8hBOBrrONSmome3vNHBjedbTSbvA54RnYtu+WZDebvR+XZLn7+UqOmJeR/wR9CCouiel0G9v2jjPOCafPDehNcEJ6ifJk/pPTE8f4OYRmFflL1vMM6LD1fXPODz6j27VAnd0bCiNyqseMTdy9lNKfc4oG8bnoNMS6D3Evc6KXlQUlya3ODBcYPqB3lVH8l1A+HhKveO0F9y65tXNhvPPLbbnbw/evbGjhp4aUoovcP+Bm8llIw=
+sidebar_class_name: "post api-method"
+info_path: docs/api/tagoio-api
+custom_edit_url: null
+---
+
+import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
+import ParamsDetails from "@theme/ParamsDetails";
+import RequestSchema from "@theme/RequestSchema";
+import StatusCodes from "@theme/StatusCodes";
+import OperationTabs from "@theme/OperationTabs";
+import TabItem from "@theme/TabItem";
+import Heading from "@theme/Heading";
+
+
+
+
+
+
+
+
+
+
+Create a token for the network to use in network endpoints
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/sidebar/api-sidebar.ts b/docs/api/sidebar/api-sidebar.ts
index 1af8419..a399f61 100644
--- a/docs/api/sidebar/api-sidebar.ts
+++ b/docs/api/sidebar/api-sidebar.ts
@@ -97,6 +97,18 @@ const sidebar: SidebarsConfig = {
label: "Send Data using Network",
className: "api-method post",
},
+ {
+ type: "doc",
+ id: "api/create-device-using-network",
+ label: "Create Device using Network",
+ className: "api-method post",
+ },
+ {
+ type: "doc",
+ id: "api/create-network-token",
+ label: "Create Network Token",
+ className: "api-method post",
+ },
],
},
{
diff --git a/specs/tagoio-api.yaml b/specs/tagoio-api.yaml
index a1d0376..9048397 100644
--- a/specs/tagoio-api.yaml
+++ b/specs/tagoio-api.yaml
@@ -9289,6 +9289,243 @@ paths:
required: true
schema:
type: string
+ /integration/network/device:
+ post:
+ tags:
+ - Network Ingest
+ summary: Create Device using Network
+ description: >-
+ Create either an immutable or a mutable device.
+ - Immutable devices require chunking parameters and are optimized for long-term, append-only storage.
+ - Mutable devices behave like classic devices and do not require chunk settings.
+
+ You must have a Network and a Network-Token to use this endpoint.
+
+ :::warning
+
+ Your Network-Token must have the create device privilege as true.
+
+ :::
+ operationId: createDeviceUsingNetwork
+ security:
+ - Network-Token: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - title: "Immutable Device Creation"
+ type: object
+ required: ["name", "type", "connector", "chunk_period", "chunk_retention"]
+ properties:
+ name:
+ type: string
+ description: "Device name"
+ example: "My first immutable device"
+ type:
+ type: string
+ enum: ["immutable"]
+ description: "Device type - must be 'immutable' for immutable devices"
+ example: "immutable"
+ connector:
+ type: string
+ description: "Connector ID for the device"
+ example: "5f5a8f3351d4db99c40dece5"
+ chunk_period:
+ type: string
+ enum: ["day", "week", "month", "quarter"]
+ description: "Chunk period for data storage - one of day, week, month, quarter"
+ example: "quarter"
+ chunk_retention:
+ type: number
+ minimum: 0
+ maximum: 36
+ description: "Number of chunks to retain (0-36)"
+ example: 36
+ serie_number:
+ type: string
+ description: "Serial number - only required if specified by the network"
+ example: "AB87392C17CA"
+ tags:
+ type: array
+ description: "Device tags as key-value string pairs"
+ items:
+ type: object
+ properties:
+ key:
+ type: string
+ description: "Tag key"
+ example: "tagKey1"
+ value:
+ type: string
+ description: "Tag value"
+ example: "value1"
+ example:
+ - key: "tagKey1"
+ value: "value1"
+ - key: "tagKey2"
+ value: "value2"
+ - title: "Mutable Device Creation"
+ type: object
+ required: ["name", "type", "connector"]
+ properties:
+ name:
+ type: string
+ description: "Device name"
+ example: "My first device"
+ type:
+ type: string
+ enum: ["mutable"]
+ description: "Device type - must be 'mutable' for mutable devices"
+ example: "mutable"
+ connector:
+ type: string
+ description: "Connector ID for the device"
+ example: "5f5a8f3351d4db99c40dece5"
+ serie_number:
+ type: string
+ description: "Serial number - only required if specified by the network"
+ example: "AB87392C12CA"
+ active:
+ type: boolean
+ description: "Device active status"
+ example: true
+ tags:
+ type: array
+ description: "Device tags"
+ items:
+ type: object
+ properties:
+ key:
+ type: string
+ example: "tagKey1"
+ value:
+ type: string
+ example: "value1"
+ example:
+ - key: "tagKey1"
+ value: "value1"
+ - key: "tagKey2"
+ value: "value2"
+ visible:
+ type: boolean
+ description: "Device visibility status"
+ example: true
+
+ examples:
+ Create Immutable Device:
+ value:
+ name: "My first immutable device"
+ type: "immutable"
+ connector: "5f5a8f3351d4db99c40dece5"
+ chunk_period: "quarter"
+ chunk_retention: 36
+ serie_number: "AB87392C17CA"
+ Create Mutable Device:
+ value:
+ name: "My first device"
+ type: "mutable"
+ connector: "5f5a8f3351d4db99c40dece5"
+ serie_number: "AB87392C12CA"
+ text/plain:
+ examples:
+ Create Immutable Device:
+ value: "{\r\n \"name\": \"My first immutable device\",\r\n \"type\": \"immutable\",\r\n \"connector\": \"5f5a8f3351d4db99c40dece5\",\r\n \"chunk_period\": \"quarter\", //define a chunk period by \"day\",\"week\", \"month\", \"quarter\"\r\n \"chunk_retention\": 36, //acceptable range between 0-36\r\n \"serie_number\": \"AB87392C17CA\" //only if required by network (optional)\r\n }"
+ Create Mutable Device:
+ value: "{\r\n \"name\": \"My first device\",\r\n \"type\": \"mutable\",\r\n \"connector\": \"5f5a8f3351d4db99c40dece5\",\r\n \"serie_number\": \"AB87392C12CA\" //only if required by network (optional)\r\n }"
+ responses:
+ '201':
+ description: >-
+ Mutable device created / Immutable device created
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ result:
+ type: object
+ properties:
+ deviceID:
+ type: string
+ example: 5dcad1c216174c001ca23ab9
+ token:
+ type: string
+ example: 5a16405f-b32c-4c91-ae39-cbb2caba18d8
+ status:
+ type: boolean
+ example: true
+ /integration/network/token:
+ post:
+ tags:
+ - Network Ingest
+ summary: Create a Token for the Network
+ description: >-
+ Create a token for the network to use in network endpoints
+ operationId: createNetworkToken
+ security:
+ - Profile-Token: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required: ["name", "network"]
+ properties:
+ network:
+ type: string
+ example: 667570627d2ad1000999dca2
+ name:
+ type: string
+ example: Token #1
+ previlegies:
+ type: object
+ properties:
+ createDevice:
+ type: boolean
+ example: true
+ example:
+ - network: 667570627d2ad1000999dca2
+ name: Token #1
+ previlegies: {
+ createDevice: true
+ }
+ examples:
+ Create a Token with Create Device privilege:
+ value:
+ - network: 667570627d2ad1000999dca2
+ name: Token #1
+ previlegies: {
+ createDevice: true
+ }
+ responses:
+ '200':
+ description: Create a Token with Create Device privilege
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ result:
+ type: object
+ properties:
+ name:
+ type: string
+ example: Token #1
+ network:
+ type: string
+ example: 667570627d2ad1000999dca2
+ previlegies:
+ type: object
+ properties:
+ createDevice:
+ type: boolean
+ example: true
+ token:
+ type: string
+ example: aaabbbcc-1111-2222-3333-4444aaaabbbb
+ status:
+ type: boolean
+ example: true
/integration/network/data:
post:
tags:
@@ -9346,4 +9583,5 @@ paths:
example: 3 Data Added
status:
type: boolean
- example: true
\ No newline at end of file
+ example: true
+
\ No newline at end of file