---
title: Network Pipe Definition
slug: network-pipe-definition
docTags: 
createdAt: 2023-11-14T00:09:11.319Z
---

The Network Pipe Definition defines pipes in the network. The unique constraint on network pipe definitions is **sourceNetworkId + sourceId** — re-posting the same network and pipe upserts the existing record.

:::hint{type="warning"}
**upstreamSourceId** and **downstreamSourceId** need to define **Joints**, which are virtual objects without dedicated headers. Care must be taken to define them consistently here to maintain the integrity of the network and enable joint constraints to be applied.
:::

| **Variable**       | **Data Type**  | **Unit of Measure** | **Is Nullable?** | **Default Value** | **Description**                                                                                                                           |
| ------------------ | -------------- | ------------------- | ---------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| sourceNetworkId    | String         | -                   | No               | -                 | Source ID of the [Network Header](docId\:irXj-Rg5lEh701vW2okjL) the pipe belongs to                                                       |
| sourceId           | String         | -                   | No               | -                 | Source ID for the pipe definition. This sourceId enables upsert functionality from client source systems of record.                       |
| date               | DateTimeOffset | -                   | No               | -                 | Date at which the pipe becomes part of the network. Datetime offset (with timezone) in ISO 8601 format. Example: 2022-09-27T16:28:37+0000 |
| upstreamSourceId   | String         | -                   | No               | -                 | Source ID of the upstream node                                                                                                            |
| downstreamSourceId | String         | -                   | No               | -                 | Source ID of the downstream node                                                                                                          |
| enabled            | Bool           | -                   | No               | -                 | Whether the pipe should participate in the network (false is the equivalent of a mask in GAP)                                             |
| length             | List\<Double>  | ft                  | No               | -                 | List of lengths making up the pipe segments. All pipe property lists must be the same length.                                             |
| trueVerticalDepth  | List\<Double>  | ft                  | No               | -                 | List of true vertical depths making up the pipe segments. All pipe property lists must be the same length.                                |
| innerDiameter      | List\<Double>  | in                  | No               | -                 | List of inner diameters making up the pipe segments. All pipe property lists must be the same length.                                     |
| roughness          | List\<Double>  | in                  | No               | -                 | List of absolute roughness values making up the pipe segments. All pipe property lists must be the same length.                           |

***

# Data Integrity Checks

| **Condition**                                   | **Response**    |
| ----------------------------------------------- | --------------- |
| Any non-nullable field is NULL or empty         | Record Rejected |
| sourceNetworkId does not match a Network Header | Record Rejected |

***

# Common Error Messages

| **API**                   | **Scenario**            | **Error Response**                      |
| ------------------------- | ----------------------- | --------------------------------------- |
| Add / Upsert network pipe | Unknown sourceNetworkId | network was not found for source id xxx |
