| Name | Type | Description | Notes |
|---|---|---|---|
| Type | string | Specifies the type of relation. It must be either of type `in_same_route`, `in_sequence` or `in_direct_sequence`. `in_same_route`: As the name suggest, it enforces the specified services or shipments to be in the same route. It can be specified as follows: ```json { "type": "in_same_route", "ids": ["serv_i_id","serv_j_id"] } ``` This enforces service i to be in the same route as service j no matter which vehicle will be employed. If a specific vehicle (driver) is required to conduct this, just add a `vehicle_id` like this: ``` { "type": "in_same_route", "ids": ["serv_i_id","serv_j_id"], "vehicle_id": "vehicle1" } ``` This not only enforce service i and j to be in the same route, but also makes sure that both services are in the route of `vehicle1`. Tip: This way initial loads and vehicle routes can be modelled. For example, if your vehicles are already on the road and new orders come in, then vehicles can still be rescheduled subject to the orders that have already been assigned to these vehicles. `in_sequence`: This relation type enforces n jobs to be in sequence. It can be specified as ```json { "type": "in_sequence", "ids": ["serv_i_id","serv_j_id"] } ``` which means that service j need to be in the same route as service i AND it needs to occur somewhere after service i. As described above if a specific vehicle needs to conduct this, just add `vehicle_id`. `in_direct_sequence`: This enforces n services or shipments to be in direct sequence. It can be specified as ```json { "type": "in_direct_sequence", "ids": ["serv_i_id","serv_j_id","serv_k_id"] } ``` yielding service j to occur directly after service i, and service k to occur directly after service j i.e. in strong order. Again, a vehicle can be assigned a priority by adding a `vehicle_id` to the relation. Special IDs: If you look at the previous example and you want service i to be the first in the route, use the special ID `start` as follows: ```json { "type": "in_direct_sequence", "ids": ["start","serv_i_id","serv_j_id","serv_k_id"] } ``` Latter enforces the direct sequence of i, j and k at the beginning of the route. If this sequence should be bound to the end of the route, use the special ID `end` like this: ```json { "type": "in_direct_sequence", "ids": ["serv_i_id","service_j_id","serv_k_id","end"] } ``` If you deal with services then you need to use the 'id' of your services in the field 'ids'. To also consider sequences of the pickups and deliveries of your shipments, you need to use a special ID, i.e. use the shipment id plus the keyword `_pickup` or `_delivery`. For example, to ensure that the pickup and delivery of the shipment with the id 'my_shipment' are direct neighbors, you need the following specification: ``` { "type": "in_direct_sequence", "ids": ["my_ship_pickup","my_ship_delivery"] } ``` | |
| Ids | []string | Specifies an array of shipment and/or service ids that are in relation. If you deal with services then you need to use the id of your services in ids. To also consider sequences of the pickups and deliveries of your shipments, you need to use a special ID, i.e. use your shipment id plus the keyword `_pickup` or `_delivery`. If you want to place a service or shipment activity at the beginning of your route, use the special ID `start`. In turn, use `end` to place it at the end of the route. | |
| VehicleId | Pointer to string | Id of pre-assigned vehicle, i.e. the vehicle id that is determined to conduct the services and shipments in this relation. | [optional] |
func NewJobRelation(type_ string, ids []string, ) *JobRelation
NewJobRelation instantiates a new JobRelation object This constructor will assign default values to properties that have it defined, and makes sure properties required by API are set, but the set of arguments will change when the set of required properties is changed
func NewJobRelationWithDefaults() *JobRelation
NewJobRelationWithDefaults instantiates a new JobRelation object This constructor will only assign default values to properties that have it defined, but it doesn't guarantee that properties required by API are set
func (o *JobRelation) GetType() string
GetType returns the Type field if non-nil, zero value otherwise.
func (o *JobRelation) GetTypeOk() (*string, bool)
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.
func (o *JobRelation) SetType(v string)
SetType sets Type field to given value.
func (o *JobRelation) GetIds() []string
GetIds returns the Ids field if non-nil, zero value otherwise.
func (o *JobRelation) GetIdsOk() (*[]string, bool)
GetIdsOk returns a tuple with the Ids field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.
func (o *JobRelation) SetIds(v []string)
SetIds sets Ids field to given value.
func (o *JobRelation) GetVehicleId() string
GetVehicleId returns the VehicleId field if non-nil, zero value otherwise.
func (o *JobRelation) GetVehicleIdOk() (*string, bool)
GetVehicleIdOk returns a tuple with the VehicleId field if it's non-nil, zero value otherwise and a boolean to check if the value has been set.
func (o *JobRelation) SetVehicleId(v string)
SetVehicleId sets VehicleId field to given value.
func (o *JobRelation) HasVehicleId() bool
HasVehicleId returns a boolean if a field has been set.