{"info":{"_postman_id":"f46eac7e-0284-4b29-905a-6a5d062e23b1","name":"Skewb Novus Data Ingest","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"21776937","collectionId":"f46eac7e-0284-4b29-905a-6a5d062e23b1","publishedId":"2s93m1ZjFY","public":true,"customColor":{"top-bar":"ffffff","right-sidebar":"303030","highlight":"31C1E1"},"publishDate":"2023-05-19T20:58:41.000Z"},"item":[{"name":"Authentication","item":[{"name":"Get Auth Token","id":"bd792953-4773-4c8a-9cdb-556b0697c4e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"john_doe\",\n    \"password\": \"password123\",\n    \"access_key\": \"cdba50e1-394d-427a-9b73-903e07c718e1\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/auth/login","description":"<p>This endpoint is used for user authentication. The user provides their username and password, which are sent in the body of the request in JSON format.  </p>\n<p>Upon successful authentication, the server responds with a success message and a JSON Web Token (JWT) that the user can use for authentication in subsequent requests. If the authentication fails (for instance, if the password is incorrect), the server responds with an error message.</p>\n<p>These endpoints should be used over HTTPS to ensure the security of the sensitive data being transmitted.</p>\n","urlObject":{"path":["api","v1","auth","login"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"db3e7b53-f1a4-4e9a-a5f2-f0b8404b6895","name":"Get Auth Token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"john_doe\",\n    \"password\": \"password123\",\n    \"access_key\": \"cdba50e1-394d-427a-9b73-903e07c718e1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://12b2bfc5-2ede-4aff-9be1-22cc3cc188f6.mock.pstmn.io/api/v1/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 19 May 2023 15:20:02 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"164"},{"key":"Connection","value":"keep-alive"},{"key":"x-srv-trace","value":"v=1;t=4eee5a90ce94d5f6"},{"key":"x-srv-span","value":"v=1;s=a818800e7a6c4661"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"X-RateLimit-Limit","value":"120"},{"key":"X-RateLimit-Remaining","value":"119"},{"key":"X-RateLimit-Reset","value":"1684509662"},{"key":"ETag","value":"W/\"a4-7hO0T/XLq3TuFViTu2ZVQQdIY+A\""},{"key":"Vary","value":"Accept-Encoding"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Login successful\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImpvaG5fZG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c\"\n}"}],"_postman_id":"bd792953-4773-4c8a-9cdb-556b0697c4e1"}],"id":"ffb4ba2d-e9d1-471f-b69a-e826f4d63a03","_postman_id":"ffb4ba2d-e9d1-471f-b69a-e826f4d63a03","description":""},{"name":"Bulk Upload","item":[{"name":"Upload Data","id":"0a88e8ad-9b91-40ab-96ed-b37f3fcfa34c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"file","file":{"src":""}},"url":"{{url}}/api/v1/bulk/upload","description":"<p>This endpoint allows for bulk uploading of pipe data via a CSV file. The client sends a CSV file in the request body as form-data. The CSV file should contain columns that match the fields of the pipe data.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request is a multi-part form data request where the CSV file is sent under the key \"file\".</p>\n<h3 id=\"csv-file-format\">CSV File Format:</h3>\n<p>The CSV format should have the following:</p>\n<p><strong>Row 1</strong> Type, {{dataType}}</p>\n<p><strong>Row 2</strong> {{dataTypeColumnHeadings}}</p>\n<p><strong>&gt;= Row 3</strong> {{dataRows}}</p>\n<p>Example for adding Mains:</p>\n<ul>\n<li>pipeId (required): The unique identifier for the pipe.</li>\n<li>dmaCode (required): The District Metered Area (DMA) code for the pipe's location.</li>\n<li>mainsType (optional): The type of mains for the pipe.</li>\n<li>status (required): The current status of the pipe. Possible values are 'Active' and 'Inactive'.</li>\n<li>dateInstalled (optional): The installation date of the pipe in ISO 8601 format.</li>\n<li>dateAbandoned (optional): The abandonment date of the pipe in ISO 8601 format, if applicable.</li>\n<li>material (optional): The material of the pipe.</li>\n<li>diameter (optional): The diameter of the pipe.</li>\n<li>depth (optional): The depth of the pipe.</li>\n<li>surfaceType (optional): The surface type above the pipe.</li>\n<li>jointType (optional): The type of joint used on the pipe.</li>\n<li>layingMethod (optional): The method used to lay the pipe.</li>\n<li>rehabDetails (optional): Any details about rehabilitation of the pipe.</li>\n<li>protectionDetails (optional): Any details about protection measures for the pipe.</li>\n<li>geoLocation (required): The geographical location of the pipe in GeoJSON format.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message, the unique ID of the bulk operation and the status of the operation. If the operation fails, the server responds with an error message.  </p>\n<p>You can use the unique ID to track progress of the upload operation</p>\n","urlObject":{"path":["api","v1","bulk","upload"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"0d0c228e-f2d3-439b-83ef-f1c0cac8ad08","name":"Upload Data","originalRequest":{"method":"POST","header":[],"body":{"mode":"file","file":{"src":""}},"url":"{{url}}/api/v1/bulk/upload"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"cf5077a5-cc1d-4d86-85db-7db2b2dff285\",\n    \"status\": \"queued\",\n    \"dateIssued\" : \"2019-01-01T15:30:00\",\n}"}],"_postman_id":"0a88e8ad-9b91-40ab-96ed-b37f3fcfa34c"},{"name":"Get Upload Status","id":"3f6743c1-22ee-41ee-8777-27f0f1eff049","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{url}}/api/v1/bulk/status?id=cf5077a5-cc1d-4d86-85db-7db2b2dff285","description":"<p>This endpoint provides the status of a bulk operation. The operation is identified by an ID that is provided as a query parameter.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request does not require a body. The ID of the operation for which the status is queried is sent as a query parameter.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><code>id</code> (required): The unique identifier for the bulk operation whose status needs to be queried. This ID is expected to be a UUID and should have been provided to the client when the bulk operation was initiated.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>The server responds with the unique ID of the bulk operation, its current status and the time the status was last updated. If the operation fails, the server responds with an error message.</p>\n<ul>\n<li><code>id</code>: The unique identifier of the bulk operation.</li>\n<li><code>status</code>: The current status of the operation. Possible values are 'Queued', 'In Progress', 'Completed', and 'Failed'.</li>\n<li><code>percentCompleted</code>: The percentage of the bulk operation that has been completed.</li>\n<li><code>noRecords</code>: The number of records detected in the file.</li>\n<li><code>date</code>: The date and time when the operation status was last updated in ISO 8601 format.</li>\n</ul>\n","urlObject":{"path":["api","v1","bulk","status"],"host":["{{url}}"],"query":[{"key":"id","value":"cf5077a5-cc1d-4d86-85db-7db2b2dff285"}],"variable":[]}},"response":[{"id":"cc23f199-e7b8-4943-81f0-89c5f46b36d5","name":"Get Upload Status","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{url}}/api/v1/bulk/status?id=cf5077a5-cc1d-4d86-85db-7db2b2dff285","host":["{{url}}"],"path":["api","v1","bulk","status"],"query":[{"key":"id","value":"cf5077a5-cc1d-4d86-85db-7db2b2dff285"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"cf5077a5-cc1d-4d86-85db-7db2b2dff285\",\n    \"status\" : \"In Progress\",\n    \"percentCompleted\" : \"20%\",\n    \"noRecords\" : \"20\",\n    \"date\" : \"2019-01-01T15:31:00\"\n}"}],"_postman_id":"3f6743c1-22ee-41ee-8777-27f0f1eff049"},{"name":"Cancel Request","id":"c9337007-ac09-43cf-bf06-bf359135734d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"DELETE","header":[],"url":"{{url}}/api/v1/bulk/cancel?id=cf5077a5-cc1d-4d86-85db-7db2b2dff285","description":"<p>This endpoint is used to cancel a bulk operation that is currently waiting in the queue. The operation to be cancelled is identified by an ID that is provided as a query parameter.  </p>\n<p>Only uploads with status of \"Queued\" can be cancelled.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request does not require a body. The ID of the operation to be cancelled is sent as a query parameter.</p>\n<h3 id=\"parameters\">Parameters:</h3>\n<ul>\n<li><code>id</code> (required): The unique identifier for the bulk operation that needs to be cancelled. This ID is expected to be a UUID and should have been provided to the client when the bulk operation was initiated.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful cancellation of the operation, the server responds with a success message. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","bulk","cancel"],"host":["{{url}}"],"query":[{"key":"id","value":"cf5077a5-cc1d-4d86-85db-7db2b2dff285"}],"variable":[]}},"response":[{"id":"ad7f331e-66b6-45f0-b6c0-d79743be3b3a","name":"Cancel Upload","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"{{url}}/api/v1/bulk/cancel?id=cf5077a5-cc1d-4d86-85db-7db2b2dff285","host":["{{url}}"],"path":["api","v1","bulk","cancel"],"query":[{"key":"id","value":"cf5077a5-cc1d-4d86-85db-7db2b2dff285"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"cf5077a5-cc1d-4d86-85db-7db2b2dff285\",\n    \"message\" : \"Successfully Cancelled Request\",\n    \"date\" : \"2019-01-01T15:45:00\"\n}"}],"_postman_id":"c9337007-ac09-43cf-bf06-bf359135734d"}],"id":"6ae7ed95-78ec-4239-881d-e00046d66f7a","_postman_id":"6ae7ed95-78ec-4239-881d-e00046d66f7a","description":""},{"name":"Data Loggers","item":[{"name":"Add Data Logger","id":"ba6435cc-d4d3-400c-b233-0da358b0d33b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"deviceId\": \"123456\",\n    \"deviceName\": \"Device01\",\n    \"deviceType\": \"Type1\",\n    \"deviceDescription\": \"This is a sample device\",\n    \"installDate\": \"2020-01-01T00:00:00Z\",\n    \"status\": \"active\",\n    \"groupName\": \"Group1\",\n    \"dataStreams\": [\n        {\n            \"streamId\": \"stream1\",\n            \"streamType\": \"type1\",\n            \"streamDescription\": \"stream description here\",\n            \"unitOfMeasure\": \"m/h\",\n            \"streamValue\": \"stream value here\"\n        },\n        {\n            \"streamId\": \"stream2\",\n            \"streamType\": \"type2\",\n            \"streamDescription\": \"stream description here\",\n            \"unitOfMeasure\": \"m/h\",\n            \"streamValue\": \"stream value here\"\n        }\n    ],\n    \"reference\": \"ref123\",\n    \"dmaCode\": \"DMA456\",\n    \"elevation\": 100.5,\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dataLogger","description":"<p>This endpoint allows for the creation / or update of a new/existing device entry. (Data Loggers) The device holds various metadata, including device identification, status, description, installation date, data streams, geographical location, and more.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>_id</code> (mandatory): A unique identifier for the device.</li>\n<li><code>deviceId</code> (mandatory): The device identification number.</li>\n<li><code>deviceName</code> (mandatory): The name of the device.</li>\n<li><code>deviceType</code> (mandatory): The type or model of the device.</li>\n<li><code>deviceDescription</code> (mandatory): A detailed description of the device.</li>\n<li><code>installDate</code> (optional): The date when the device was installed, in ISO 8601 format.</li>\n<li><code>status</code> (mandatory): The current status of the device (e.g., active, inactive, maintenance).</li>\n<li><code>groupName (optional)</code>: The name of the group that the device belongs to.</li>\n<li><code>dataStreams</code>(optional): An array of data streams associated with the device. Each element in the array should be a data stream object with properties such as stream ID, stream type, stream description, and stream value. (See Below)</li>\n<li><code>reference (optional)</code>: Any reference associated with the device.</li>\n<li><code>dmaCode</code> (mandatory): The DMA code related to the device's location.</li>\n<li><code>elevation</code> (optional*): The elevation of the device's location. (* Mandatory for Leakage Location)</li>\n<li><code>geoLocation</code>(mandatory): The geographical location of the device in GeoJSON format. (Point)</li>\n</ul>\n<h4 id=\"datastreams\"><strong>dataStreams:</strong></h4>\n<p>Skewb Novus can integrate with Data Logging systems directly eg TechnoLog or Halma but where this isnt possible you can provide details for a streaming data source here:</p>\n<ul>\n<li>streamId (mandatory) : Unique Reference for the stream this could just be a uuid</li>\n<li>streamType: (mandatory): Data type eg: flow, pressure, temperature</li>\n<li>streamDescription (mandatory): eg flow data at 15 minute intervals</li>\n<li>unitOfMeasure (mandatory): eg \"m/Head\", \"m3\", \"degrees/c\"</li>\n<li>streamValue (mandatory): URL for data stream of the logger.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created data logger. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","dataLogger"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"6f198dbd-5f33-461a-a622-0cb298ccca54","name":"Add Data Logger","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dataLogger"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"ba6435cc-d4d3-400c-b233-0da358b0d33b"}],"id":"a3a69f8b-7f29-4437-934c-a11f63096927","_postman_id":"a3a69f8b-7f29-4437-934c-a11f63096927","description":""},{"name":"Data Streams","item":[{"name":"Add Data Stream","id":"3d3bd410-7e4e-4a35-bb69-2a6c53a00a7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n            \"streamId\": \"stream1\",\n            \"streamType\": \"type1\",\n            \"streamDescription\": \"stream description here\",\n            \"unitOfMeasure\": \"m/h\",\n            \"streamValue\": \"stream value here\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dataStream","description":"<p>This endpoint allows for the creation / or update of a data stream. Where a data logger or device doesnt exist but you want to add additional time series data streams.,</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li>streamId (mandatory) : Unique Reference for the stream this could just be a uuid</li>\n<li>streamType: (mandatory): Data type eg: flow, pressure, temperature</li>\n<li>streamDescription (mandatory): eg flow data at 15 minute intervals</li>\n<li>unitOfMeasure (mandatory): eg \"m/Head\", \"m3\", \"degrees/c\"</li>\n<li>streamValue (optional): URL for data stream of the logger. (Alternatively dont send if you want to send values manually through the Telemetry API)</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created data logger. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","dataStream"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"be9659ab-0eec-4fb4-a7a9-277176133a28","name":"Add Data Stream","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dataStream"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"3d3bd410-7e4e-4a35-bb69-2a6c53a00a7f"}],"id":"2eb3dae4-d8b7-4ef1-be5f-3a1207317696","_postman_id":"2eb3dae4-d8b7-4ef1-be5f-3a1207317696","description":""},{"name":"DMA","item":[{"name":"Add DMA","id":"c44d28ac-e4f0-492b-a230-b03a8ea83652","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"dmaCode\": \"DMA456\",\n    \"dmaDescription\": \"Description here\",\n    \"addressPointCount\": \"5000\",\n    \"mainsLength\": \"100km\",\n    \"districtType\": \"Urban\",\n    \"reservoirZone\": \"Zone1\",\n    \"wszRef\": \"WSZ123\",\n    \"waterSupplyZone\": \"Zone1\",\n    \"dmzRef\": \"DMZ123\",\n    \"territoryCode\": \"TC123\",\n    \"hdzCode\": \"HDZ123\",\n    \"waterResourceArea\": \"Area1\",\n    \"wba\": \"WBA123\",\n    \"managementAreas\": [ \"Area1\", \"Area2\", \"Area3\"],\n    \"county\": \"County1\",\n    \"division\": \"Division1\",\n    \"geoLocation\": {\n    \"type\": \"Polygon\",\n    \"coordinates\": [\n      [\n        [-73.9749, 40.769],\n        [-73.981, 40.7681],\n        [-73.9786, 40.7655],\n        [-73.9736, 40.7669],\n        [-73.9749, 40.769]\n      ]\n    ]\n    },\n    \"startDate\": \"2019-01-01T00:00:00Z\",\n    \"endDate\": \"2023-01-01T00:00:00Z\",\n    \"loggers\": 5,\n    \"mains\": 20\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dma","description":"<p>This endpoint allows for the creation of a new District Metered Area (DMA) entry.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>_id</code>(mandatory): A unique identifier for the DMA.</li>\n<li><code>dmaCode (mandatory)</code>: The DMA code.</li>\n<li><code>dmaDescription (mandatory)</code>: A description of the DMA.</li>\n<li><code>addressPointCount</code>(mandatory): The number of address (properties) points within the DMA.</li>\n<li><code>mainsLength (optional)</code>: The total length of mains within the DMA.</li>\n<li><code>districtType (optional)</code>: The type of district of the DMA.</li>\n<li><code>reservoirZone (optional)</code>: The reservoir zone of the DMA.</li>\n<li><code>wszRef (mandatory)</code>: The water supply zone reference.</li>\n<li><code>waterSupplyZone (mandatory)</code>: The water supply zone of the DMA.</li>\n<li><code>dmzRef (mandatory)</code>: The distribution management zone reference.</li>\n<li><code>territoryCode</code> (optional): The territory code of the DMA.</li>\n<li><code>hdzCode (mandatory)</code>: The hydraulic demand zone code.</li>\n<li><code>waterResourceArea (mandatory)</code>: The water resource area of the DMA.</li>\n<li><code>county</code> (mandatory): The county of the DMA.</li>\n<li><code>division (optional)</code>: The division of the DMA.</li>\n<li><code>geoLocation (mandatory)</code>: The geographical location of the DMA in GeoJSON format. For a DMA this would normally be several point types or a polygon type.</li>\n<li><code>startDate (optional)</code>: The start date of the DMA.</li>\n<li><code>endDate</code> (optional): The end date of the DMA.</li>\n<li><code>loggers (mandatory)</code>: The number of loggers in the DMA.</li>\n<li><code>mains (mandatory)</code>: The number of mains in the DMA.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created DMA. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","dma"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"bf10e11e-0fc8-4976-98a2-6f4b2b768d1b","name":"Add DMA","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/dma"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"c44d28ac-e4f0-492b-a230-b03a8ea83652"}],"id":"0fa86da8-7d70-47c1-811b-ea98ee3b7727","_postman_id":"0fa86da8-7d70-47c1-811b-ea98ee3b7727","description":""},{"name":"Jobs","item":[{"name":"Add Job","id":"c79ac7d6-84b0-43b3-a7e8-b901cf13e48c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"jobId\" : \"A123456\",\n    \"workOrderNo\" : \"WO12345\",\n    \"dateRaised\" : \"2019-01-01T10:30:00\",\n    \"dateScheduled\" : \"2019-01-01T10:30:00\",\n    \"dateScheduledFor\" : \"2019-01-01T10:30:00\",\n    \"dateStarted\": \"2019-01-01T10:30:00\",\n    \"dateCompletd\": \"2019-01-01T10:30:00\",\n    \"jobType\": \"Mains Repair\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    },\n    \"location\" : \"1 Main Street, Town, TS1 2ST\",\n    \"volumeAssumed\": 2,\n    \"volumeRecovered\" : 2,\n    \"engineer\" : \"John Doe\",\n    \"dmaCode\" : \"DMA1\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/job","description":"<p>This endpoint allows for the creation of a new job entry. Job entries hold various data about work orders, such as scheduling dates, job types, locations, and details about the volume assumed and recovered.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>jobId (mandatory)</code>: The unique identifier for the job.</li>\n<li><code>workOrderNo (mandatory)</code>: The associated work order number.</li>\n<li><code>dateRaised (mandatory)</code>: The date and time when the job was raised, in ISO 8601 format.</li>\n<li><code>dateScheduled (mandatory)</code>: The date and time when the job was scheduled to start, in ISO 8601 format.</li>\n<li><code>dateScheduledFor (mandatory)</code>: The date and time for which the job is scheduled, in ISO 8601 format.</li>\n<li><code>dateStarted (mandatory)</code>: The date and time when the job actually started, in ISO 8601 format.</li>\n<li><code>dateCompleted (mandatory)</code>: The date and time when the job was completed, in ISO 8601 format.</li>\n<li><code>jobType (mandatory)</code>: The type of the job (e.g., Mains Repair).</li>\n<li><code>geoLocation (\\\\*optional)</code>: The geographical location of the job in GeoJSON format. Mandatory if Locaiton is not populated.</li>\n<li><code>location (\\\\*optional)</code>: The physical address where the job is taking place. Mandatory if geoLocations isnt populated.</li>\n<li><code>volumeAssumed (mandatory)</code>: The volume assumed for the job.</li>\n<li><code>volumeRecovered (mandatory)</code>: The volume recovered after the job.</li>\n<li><code>engineer (mandatory)</code>: The name of the engineer responsible for the job.</li>\n<li><code>dmaCode (mandatory)</code>: The DMA code related to the job's location.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created Job. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","job"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"71490d24-637a-427d-983b-343526c2623a","name":"Add Job","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/job"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"c79ac7d6-84b0-43b3-a7e8-b901cf13e48c"}],"id":"83f5921b-6cb3-4f51-9d8f-24fc909d7de2","_postman_id":"83f5921b-6cb3-4f51-9d8f-24fc909d7de2","description":""},{"name":"Mains","item":[{"name":"Add Mains","id":"df75bf14-8306-4606-9c6b-864ffd51aac0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2019-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/mains","description":"<p>This endpoint is used to add a new pipe to the system. The client should send the pipe details in the body of the request in JSON format.</p>\n<h3 id=\"parameters\"><strong>Parameters</strong></h3>\n<ul>\n<li><code>pipeId</code> (required): The unique identifier for the pipe.</li>\n<li><code>dmaCode</code> (required): The District Metered Area (DMA) code for the pipe's location.</li>\n<li><code>mainsType</code> (optional): The type of mains for the pipe.</li>\n<li><code>status</code> (required): The current status of the pipe. Possible values are 'Active' and 'Inactive'.</li>\n<li><code>dateInstalled</code> (optional): The installation date of the pipe in ISO 8601 format.</li>\n<li><code>dateAbandoned</code> (optional): The abandonment date of the pipe in ISO 8601 format, if applicable.</li>\n<li><code>material</code> (optional): The material of the pipe.</li>\n<li><code>diameter</code> (optional): The diameter of the pipe.</li>\n<li><code>depth</code> (optional): The depth of the pipe.</li>\n<li><code>surfaceType</code> (optional): The surface type above the pipe.</li>\n<li><code>jointType</code> (optional): The type of joint used on the pipe.</li>\n<li><code>layingMethod</code> (optional): The method used to lay the pipe.</li>\n<li><code>rehabDetails</code> (optional): Any details about rehabilitation of the pipe.</li>\n<li><code>protectionDetails</code> (optional): Any details about protection measures for the pipe.</li>\n<li><code>geoLocation</code> (required): The geographical location of the pipe in GeoJSON format.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created pipe. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","mains"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"1131389e-9e69-4dc3-9a63-508171e7c5ae","name":"Add Mains","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/mains"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"df75bf14-8306-4606-9c6b-864ffd51aac0"}],"id":"3d0132cb-d99a-410b-8957-a3003cc447b8","_postman_id":"3d0132cb-d99a-410b-8957-a3003cc447b8","description":""},{"name":"Telemetry","item":[{"name":"Add Telemetry Data","id":"67aacf72-12e1-4438-b6ce-e24e45944141","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n            \"streamId\": \"stream1\",\n            \"value\" : \"value\",\n            \"date\" : \"2019-01-01T10:15:00.000\"\n}\n","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/telemetry","description":"<p>This endpoint allows for the creation of a new data stream entry or time series data. Data streams are typically associated with a device and store a sequence of data points generated by the device. You should use the Data Loggers API where you have a device that is producing this data.  </p>\n<p>This API is only to be used where you need to send manual time series data and you have created a Data Stream using the Data Streams API.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>streamId</code>: The unique identifier for the data stream.</li>\n<li><code>value</code>: The value of the data point in the stream.</li>\n<li><code>date</code>: The timestamp when the data point was generated or recorded, in ISO 8601 format.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created reading. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","telemetry"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"20ee66a3-3e95-442e-b2df-ad59f3539706","name":"Add Telemetry","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/telemetry"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"67aacf72-12e1-4438-b6ce-e24e45944141"}],"id":"df434a37-4954-4a09-845d-3b97e9972825","_postman_id":"df434a37-4954-4a09-845d-3b97e9972825","description":""},{"name":"Weather","item":[{"name":"Add Weather","id":"4c9c734f-d86b-4bdb-b3a5-dfa60e0aaf52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"id\" : \"d1c28784-60ae-4659-8dfd-724c451e3351\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    },\n    \"temperature\" : 20,\n    \"windSpeed\" : 3,\n    \"windDirection\" : \"North\",\n    \"pressure\" : 10,\n    \"weather\" : \"Clear\",\n    \"humidity\" : 3,\n    \"date\": \"2019-01-01T10:30:00.000\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/weather","description":"<p>This endpoint allows for the creation of a new weather data entry. Weather data entries hold various data about weather conditions such as temperature, wind speed and direction, atmospheric pressure, weather conditions (like clear, cloudy, rain, etc), humidity, and time of observation.</p>\n<p>Sending data to this API is optional, as Skewb Novus uses a national weather data connection , however if you have your own weather stations, this can localise the weather to provide better accuracy.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>id (mandatory)</code>: The unique identifier for the weather data entry.</li>\n<li><code>geoLocation (mandatory)</code>: The geographical location of the weather observation in GeoJSON format.</li>\n<li><code>temperature (optional)</code>: The temperature observed at the location in degrees Celsius.</li>\n<li><code>windSpeed (optional)</code>: The speed of the wind observed at the location in meters per second.</li>\n<li><code>windDirection (optional)</code>: The direction of the wind observed at the location in degrees, with reference to true north (which is defined as 0° or 360°).</li>\n<li><code>pressure(optional)</code>: The atmospheric pressure observed at the location in millibars (mb)</li>\n<li><code>weather (optional)</code>: The weather conditions observed at the location (like clear, cloudy, rain, etc).</li>\n<li><code>humidity (optional)</code>: The relative humidity observed at the location as a percentage.</li>\n<li><code>date (mandatory)</code>: The date and time when the weather data was observed, in ISO 8601 format.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created reading. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","weather"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"a23bcdb6-3bfe-49f9-b2e0-51a7032eaa2e","name":"Add Weather","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/weather"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"4c9c734f-d86b-4bdb-b3a5-dfa60e0aaf52"}],"id":"cafc27da-c735-4039-8ffd-0901449c5d8e","_postman_id":"cafc27da-c735-4039-8ffd-0901449c5d8e","description":""},{"name":"Waternet","item":[{"name":"Add Waternet Data","id":"6daca3b0-7d1e-414e-afef-3d4ef7a3dfd9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"dmaCode\": \"AR1\",\n    \"date\": \"2023-05-22\",\n    \"minimumNightFlow\": 25.5,\n    \"demand\": 30.5,\n    \"nightFlowLoss\": {\n        \"m3Hr\" : 5,\n        \"lKmHr\": 5,\n        \"lpHr\" : 5,\n        \"dayAboveTarget\" : 120,\n        \"hourAboveTarget\" : 5\n    },\n    \"costOfWater\": 1.5,\n    \"costAboveTarget\": 180,\n    \"hourToDayFactor\": 24,\n    \"dailyLeakage\": 20,\n    \"loggedCustomerDemand\": 30,\n    \"targetm3hr\": 25,\n    \"totalAllowance\": 40,\n    \"suspendedDays\": 2,\n    \"occupancyRate\": 1.5,\n    \"activeWorkOrders\": 5,\n    \"activeWorkOrdersFlow\": 10,\n    \"globalWeightedPCC\": 30,\n    \"indicativePHC\": 15,\n    \"indicativeMeteredPCC\": 5,\n    \"lastCalculated\": \"2023-05-22T18:30:00.000Z\"\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/waternet","description":"<p>This endpoint allows for the creation of a new Waternet data entry. Waternet data entries hold various data about water network metrics, including details like demand, night flow loss, cost of water, daily leakage, and other related measurements.</p>\n<h3 id=\"request\">Request:</h3>\n<p>The request should be a JSON object containing the following fields:</p>\n<ul>\n<li><code>dmaCode</code>: A unique identifier for the District Metered Area.</li>\n<li><code>date</code>: The date for the data entry, in \"YYYY-MM-DD\" format.</li>\n<li><code>minimumNightFlow</code>: The minimum flow observed during the night in cubic meters per hour.</li>\n<li><code>demand</code>: The total demand for water in the area.</li>\n<li><code>nightFlowLoss</code>: An object containing various metrics related to loss during the night flow:<ul>\n<li><code>m3Hr</code>: Night flow loss in cubic meters per hour.</li>\n<li><code>lKmHr</code>: Night flow loss in liters per kilometer per hour.</li>\n<li><code>lpHr</code>: Night flow loss in liters per property per hour.</li>\n<li><code>dayAboveTarget</code>: The number of days the flow was above target.</li>\n<li><code>hourAboveTarget</code>: The number of hours the flow was above target.</li>\n</ul>\n</li>\n<li><code>costOfWater</code>: The cost of water per cubic meter.</li>\n<li><code>costAboveTarget</code>: The cost incurred due to usage above the target.</li>\n<li><code>hourToDayFactor</code>: Factor to convert hourly data to daily.</li>\n<li><code>dailyLeakage</code>: Daily leakage volume in cubic meters.</li>\n<li><code>loggedCustomerDemand</code>: Logged demand from customers in the DMA.</li>\n<li><code>targetm3hr</code>: The target flow rate for the DMA in cubic meters per hour.</li>\n<li><code>totalAllowance</code>: Total water allowance for the DMA in cubic meters.</li>\n<li><code>suspendedDays</code>: Number of days the DMA was suspended.</li>\n<li><code>occupancyRate</code>: The rate of occupancy in the DMA.</li>\n<li><code>activeWorkOrders</code>: Number of active work orders in the DMA.</li>\n<li><code>activeWorkOrdersFlow</code>: Flow rate related to the active work orders.</li>\n<li><code>globalWeightedPCC</code>: Global weighted per capita consumption.</li>\n<li><code>indicativePHC</code>: Indicative Private Household Consumption (PHC).</li>\n<li><code>indicativeMeteredPCC</code>: Indicative metered per capita consumption.</li>\n<li><code>lastCalculated</code>: The timestamp of when the data was last calculated, in ISO 8601 format.</li>\n</ul>\n<h3 id=\"response\">Response:</h3>\n<p>Upon successful operation, the server responds with a success message and the ID of the created data. If the operation fails, the server responds with an error message.</p>\n","urlObject":{"path":["api","v1","waternet"],"host":["{{url}}"],"query":[],"variable":[]}},"response":[{"id":"93901d35-5b90-4b60-a0d1-6b608e3d0755","name":"Add Waternet","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"_id\": \"60a6dd9f5d56f3d688b2e1a2\",\n    \"pipeId\": \"pipe123\",\n    \"dmaCode\": \"DMA456\",\n    \"mainsType\": \"MainType1\",\n    \"status\": \"Active\",\n    \"dateInstalled\": \"2022-01-01T00:00:00Z\",\n    \"dateAbandoned\": \"2023-01-01T00:00:00Z\",\n    \"material\": \"Steel\",\n    \"diameter\": \"24in\",\n    \"depth\": \"6ft\",\n    \"surfaceType\": \"Concrete\",\n    \"jointType\": \"Welded\",\n    \"layingMethod\": \"Trenchless\",\n    \"rehabDetails\": \"Rehabilitation details here\",\n    \"protectionDetails\": \"Protection details here\",\n    \"geoLocation\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-123.45, 67.89]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{url}}/api/v1/weather"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\" : \"60a6dd9f5d56f3d688b2e1a2\"\n    \"message\" : \"Successful\"\n}"}],"_postman_id":"6daca3b0-7d1e-414e-afef-3d4ef7a3dfd9"}],"id":"39e6183b-643c-47e4-a6c8-140449f63276","_postman_id":"39e6183b-643c-47e4-a6c8-140449f63276","description":""}]}