# Path for a shipment within the network.

| JSON representation |
|---|
| ``` { "shipment": string, "segments": [ { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/Path#AnnotatedPathSegment`) } ], "departureTime": { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`) }, "arrivalTime": { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`) }, "incurredPenalties": number, "costConstant": number, "cost": { string: number, ... } } ``` |

| Fields ||
|---|---|
| `shipment` | `string` Required. Shipment whose path is being described. |
| `segments[]` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/Path#AnnotatedPathSegment`)`` Required. Segments of the path. |
| `departureTime` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`)`` Output only. Actual departure time of the shipment. |
| `arrivalTime` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`)`` Output only. Actual arrival time of the shipment. |
| `incurredPenalties` | `number` Output only. Penalties due to soft constraints not respected. |
| `costConstant` | `number` Output only. Constant cost for this shipment. |
| `cost` | `map (key: string, value: number)` Output only. Cost by components. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |

## AnnotatedPathSegment

Represents a part of a path with more redundant information that can be computed based on the contained PathSegment and the Network. These messages are typically returned by the API server.

| JSON representation |
|---|
| ``` { "segment": { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/PathSegment`) }, "arrivalTime": { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`) }, "departureTime": { object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`) }, "isCommitted": boolean, "segmentCostConstant": number, "segmentCostDueToVehicle": { string: number, ... }, "segmentCostDueToDeparture": number, "segmentCostDueToArrival": number } ``` |

| Fields ||
|---|---|
| `segment` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/PathSegment`)`` Required. Segment being annotated. |
| `arrivalTime` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`)`` Output only. Arrival time of this segment. |
| `departureTime` | ``object (`https://developers.google.com/optimization/middlemileoptimization/reference/rest/v1/DateTime`)`` Output only. Departure time of this segment. |
| `isCommitted` | `boolean` Output only. Whether the API customer has decided to commit this part of the path. |
| `segmentCostConstant` | `number` Output only. Constant cost for this segment. |
| `segmentCostDueToVehicle` | `map (key: string, value: number)` Output only. One entry per dimension. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `segmentCostDueToDeparture` | `number` Output only. Cost due to the line rotation: departure. |
| `segmentCostDueToArrival` | `number` Output only. Cost due to the line rotation: arrival. |