# Class VisitRequest (1.15.0)

1.15.0 (latest) 1.14.0 1.13.0 1.12.0 1.11.2 1.10.0 1.9.1 1.8.5 1.7.0 1.6.0 1.5.0 1.4.3 1.3.2 1.2.0 1.1.3 1.0.1 0.1.1

    VisitRequest(mapping=None, *, ignore_unknown_fields=False, **kwargs)

Request for a visit which can be done by a vehicle: it has a
geo-location (or two, see below), opening and closing times
represented by time windows, and a service duration time (time
spent by the vehicle once it has arrived to pickup or drop off
goods).

| ## Attributes ||
|---|---|
| **Name** | **Description** |
| `arrival_location` | `google.type.latlng_pb2.LatLng` The geo-location where the vehicle arrives when performing this `VisitRequest`. If the shipment model has duration distance matrices, `arrival_location` must not be specified. |
| `arrival_waypoint` | `https://docs.cloud.google.com/python/docs/reference/optimization/latest/google.cloud.optimization_v1.types.Waypoint` The waypoint where the vehicle arrives when performing this `VisitRequest`. If the shipment model has duration distance matrices, `arrival_waypoint` must not be specified. |
| `departure_location` | `google.type.latlng_pb2.LatLng` The geo-location where the vehicle departs after completing this `VisitRequest`. Can be omitted if it is the same as `arrival_location`. If the shipment model has duration distance matrices, `departure_location` must not be specified. |
| `departure_waypoint` | `https://docs.cloud.google.com/python/docs/reference/optimization/latest/google.cloud.optimization_v1.types.Waypoint` The waypoint where the vehicle departs after completing this `VisitRequest`. Can be omitted if it is the same as `arrival_waypoint`. If the shipment model has duration distance matrices, `departure_waypoint` must not be specified. |
| `tags` | `MutableSequence[str]` Specifies tags attached to the visit request. Empty or duplicate strings are not allowed. |
| `time_windows` | `MutableSequence[https://docs.cloud.google.com/python/docs/reference/optimization/latest/google.cloud.optimization_v1.types.TimeWindow]` Time windows which constrain the arrival time at a visit. Note that a vehicle may depart outside of the arrival time window, i.e. arrival time + duration do not need to be inside a time window. This can result in waiting time if the vehicle arrives before TimeWindow.start_time. The absence of `TimeWindow` means that the vehicle can perform this visit at any time. Time windows must be disjoint, i.e. no time window must overlap with or be adjacent to another, and they must be in increasing order. `cost_per_hour_after_soft_end_time` and `soft_end_time` can only be set if there is a single time window. |
| `duration` | `google.protobuf.duration_pb2.Duration` Duration of the visit, i.e. time spent by the vehicle between arrival and departure (to be added to the possible waiting time; see `time_windows`). |
| `cost` | `float` Cost to service this visit request on a vehicle route. This can be used to pay different costs for each alternative pickup or delivery of a shipment. This cost must be in the same unit as `Shipment.penalty_cost` and must not be negative. |
| `load_demands` | `MutableMapping[str, https://docs.cloud.google.com/python/docs/reference/optimization/latest/google.cloud.optimization_v1.types.Shipment.Load]` Load demands of this visit request. This is just like Shipment.load_demands field, except that it only applies to this VisitRequest instead of the whole Shipment. The demands listed here are added to the demands listed in Shipment.load_demands. |
| `visit_types` | `MutableSequence[str]` Specifies the types of the visit. This may be used to allocate additional time required for a vehicle to complete this visit (see Vehicle.extra_visit_duration_for_visit_type). A type can only appear once. |
| `label` | `str` Specifies a label for this `VisitRequest`. This label is reported in the response as `visit_label` in the corresponding ShipmentRoute.Visit. |
| `demands` | `MutableSequence[https://docs.cloud.google.com/python/docs/reference/optimization/latest/google.cloud.optimization_v1.types.CapacityQuantity]` Deprecated: Use VisitRequest.load_demands instead. |

## Classes

### LoadDemandsEntry

    LoadDemandsEntry(mapping=None, *, ignore_unknown_fields=False, **kwargs)

The abstract base class for a message.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `kwargs` | `dict` Keys and values corresponding to the fields of the message. |
| `mapping` | ``Union[dict, `.Message`]`` A dictionary or message to be used to determine the values for this message. |
| `ignore_unknown_fields` | `Optional(bool)` If True, do not raise errors for unknown fields. Only applied if `mapping` is a mapping type or there are keyword parameters. |