Package cloud.google.com/go/optimization/apiv1/optimizationpb (v1.6.5)

Variables

DataFormat_name, DataFormat_value

var (
	DataFormat_name = map[int32]string{
		0: "DATA_FORMAT_UNSPECIFIED",
		1: "JSON",
		2: "STRING",
	}
	DataFormat_value = map[string]int32{
		"DATA_FORMAT_UNSPECIFIED": 0,
		"JSON":                    1,
		"STRING":                  2,
	}
)

Enum value maps for DataFormat.

AsyncModelMetadata_State_name, AsyncModelMetadata_State_value

var (
	AsyncModelMetadata_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "RUNNING",
		2: "SUCCEEDED",
		3: "CANCELLED",
		4: "FAILED",
	}
	AsyncModelMetadata_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"RUNNING":           1,
		"SUCCEEDED":         2,
		"CANCELLED":         3,
		"FAILED":            4,
	}
)

Enum value maps for AsyncModelMetadata_State.

OptimizeToursRequest_SolvingMode_name, OptimizeToursRequest_SolvingMode_value

var (
	OptimizeToursRequest_SolvingMode_name = map[int32]string{
		0: "DEFAULT_SOLVE",
		1: "VALIDATE_ONLY",
		2: "DETECT_SOME_INFEASIBLE_SHIPMENTS",
	}
	OptimizeToursRequest_SolvingMode_value = map[string]int32{
		"DEFAULT_SOLVE":                    0,
		"VALIDATE_ONLY":                    1,
		"DETECT_SOME_INFEASIBLE_SHIPMENTS": 2,
	}
)

Enum value maps for OptimizeToursRequest_SolvingMode.

OptimizeToursRequest_SearchMode_name, OptimizeToursRequest_SearchMode_value

var (
	OptimizeToursRequest_SearchMode_name = map[int32]string{
		0: "SEARCH_MODE_UNSPECIFIED",
		1: "RETURN_FAST",
		2: "CONSUME_ALL_AVAILABLE_TIME",
	}
	OptimizeToursRequest_SearchMode_value = map[string]int32{
		"SEARCH_MODE_UNSPECIFIED":    0,
		"RETURN_FAST":                1,
		"CONSUME_ALL_AVAILABLE_TIME": 2,
	}
)

Enum value maps for OptimizeToursRequest_SearchMode.

ShipmentTypeIncompatibility_IncompatibilityMode_name, ShipmentTypeIncompatibility_IncompatibilityMode_value

var (
	ShipmentTypeIncompatibility_IncompatibilityMode_name = map[int32]string{
		0: "INCOMPATIBILITY_MODE_UNSPECIFIED",
		1: "NOT_PERFORMED_BY_SAME_VEHICLE",
		2: "NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY",
	}
	ShipmentTypeIncompatibility_IncompatibilityMode_value = map[string]int32{
		"INCOMPATIBILITY_MODE_UNSPECIFIED":   0,
		"NOT_PERFORMED_BY_SAME_VEHICLE":      1,
		"NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY": 2,
	}
)

Enum value maps for ShipmentTypeIncompatibility_IncompatibilityMode.

ShipmentTypeRequirement_RequirementMode_name, ShipmentTypeRequirement_RequirementMode_value

var (
	ShipmentTypeRequirement_RequirementMode_name = map[int32]string{
		0: "REQUIREMENT_MODE_UNSPECIFIED",
		1: "PERFORMED_BY_SAME_VEHICLE",
		2: "IN_SAME_VEHICLE_AT_PICKUP_TIME",
		3: "IN_SAME_VEHICLE_AT_DELIVERY_TIME",
	}
	ShipmentTypeRequirement_RequirementMode_value = map[string]int32{
		"REQUIREMENT_MODE_UNSPECIFIED":     0,
		"PERFORMED_BY_SAME_VEHICLE":        1,
		"IN_SAME_VEHICLE_AT_PICKUP_TIME":   2,
		"IN_SAME_VEHICLE_AT_DELIVERY_TIME": 3,
	}
)

Enum value maps for ShipmentTypeRequirement_RequirementMode.

Vehicle_TravelMode_name, Vehicle_TravelMode_value

var (
	Vehicle_TravelMode_name = map[int32]string{
		0: "TRAVEL_MODE_UNSPECIFIED",
		1: "DRIVING",
		2: "WALKING",
	}
	Vehicle_TravelMode_value = map[string]int32{
		"TRAVEL_MODE_UNSPECIFIED": 0,
		"DRIVING":                 1,
		"WALKING":                 2,
	}
)

Enum value maps for Vehicle_TravelMode.

Vehicle_UnloadingPolicy_name, Vehicle_UnloadingPolicy_value

var (
	Vehicle_UnloadingPolicy_name = map[int32]string{
		0: "UNLOADING_POLICY_UNSPECIFIED",
		1: "LAST_IN_FIRST_OUT",
		2: "FIRST_IN_FIRST_OUT",
	}
	Vehicle_UnloadingPolicy_value = map[string]int32{
		"UNLOADING_POLICY_UNSPECIFIED": 0,
		"LAST_IN_FIRST_OUT":            1,
		"FIRST_IN_FIRST_OUT":           2,
	}
)

Enum value maps for Vehicle_UnloadingPolicy.

SkippedShipment_Reason_Code_name, SkippedShipment_Reason_Code_value

var (
	SkippedShipment_Reason_Code_name = map[int32]string{
		0: "CODE_UNSPECIFIED",
		1: "NO_VEHICLE",
		2: "DEMAND_EXCEEDS_VEHICLE_CAPACITY",
		3: "CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT",
		4: "CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT",
		5: "CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT",
		6: "CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS",
		7: "VEHICLE_NOT_ALLOWED",
	}
	SkippedShipment_Reason_Code_value = map[string]int32{
		"CODE_UNSPECIFIED":                0,
		"NO_VEHICLE":                      1,
		"DEMAND_EXCEEDS_VEHICLE_CAPACITY": 2,
		"CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT":        3,
		"CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT":        4,
		"CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT": 5,
		"CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS":          6,
		"VEHICLE_NOT_ALLOWED":                                      7,
	}
)

Enum value maps for SkippedShipment_Reason_Code.

InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_name, InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_value

var (
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_name = map[int32]string{
		0: "LEVEL_UNSPECIFIED",
		1: "RELAX_VISIT_TIMES_AFTER_THRESHOLD",
		2: "RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD",
		3: "RELAX_ALL_AFTER_THRESHOLD",
	}
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level_value = map[string]int32{
		"LEVEL_UNSPECIFIED":                              0,
		"RELAX_VISIT_TIMES_AFTER_THRESHOLD":              1,
		"RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD": 2,
		"RELAX_ALL_AFTER_THRESHOLD":                      3,
	}
)

Enum value maps for InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level.

File_google_cloud_optimization_v1_async_model_proto

var File_google_cloud_optimization_v1_async_model_proto protoreflect.FileDescriptor

File_google_cloud_optimization_v1_fleet_routing_proto

var File_google_cloud_optimization_v1_fleet_routing_proto protoreflect.FileDescriptor

Functions

func RegisterFleetRoutingServer

func RegisterFleetRoutingServer(s *grpc.Server, srv FleetRoutingServer)

AggregatedMetrics

type AggregatedMetrics struct {
	PerformedShipmentCount int32 "" /* 130 byte string literal not displayed */

	TravelDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=travel_duration,json=travelDuration,proto3" json:"travel_duration,omitempty"`

	WaitDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=wait_duration,json=waitDuration,proto3" json:"wait_duration,omitempty"`

	DelayDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=delay_duration,json=delayDuration,proto3" json:"delay_duration,omitempty"`

	BreakDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=break_duration,json=breakDuration,proto3" json:"break_duration,omitempty"`

	VisitDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=visit_duration,json=visitDuration,proto3" json:"visit_duration,omitempty"`

	TotalDuration *durationpb.Duration `protobuf:"bytes,7,opt,name=total_duration,json=totalDuration,proto3" json:"total_duration,omitempty"`

	TravelDistanceMeters float64 `protobuf:"fixed64,8,opt,name=travel_distance_meters,json=travelDistanceMeters,proto3" json:"travel_distance_meters,omitempty"`

	MaxLoads map[string]*ShipmentRoute_VehicleLoad "" /* 173 byte string literal not displayed */

	Costs map[string]float64 "" /* 154 byte string literal not displayed */

	TotalCost float64 `protobuf:"fixed64,11,opt,name=total_cost,json=totalCost,proto3" json:"total_cost,omitempty"`

}

Aggregated metrics for [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute] (resp. for [OptimizeToursResponse][google.cloud.optimization.v1.OptimizeToursResponse] over all [Transition][google.cloud.optimization.v1.ShipmentRoute.Transition] and/or [Visit][google.cloud.optimization.v1.ShipmentRoute.Visit] (resp. over all [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute]) elements.

func (*AggregatedMetrics) Descriptor

func (*AggregatedMetrics) Descriptor() ([]byte, []int)

Deprecated: Use AggregatedMetrics.ProtoReflect.Descriptor instead.

func (*AggregatedMetrics) GetBreakDuration

func (x *AggregatedMetrics) GetBreakDuration() *durationpb.Duration

func (*AggregatedMetrics) GetCosts

func (x *AggregatedMetrics) GetCosts() map[string]float64

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*AggregatedMetrics) GetDelayDuration

func (x *AggregatedMetrics) GetDelayDuration() *durationpb.Duration

func (*AggregatedMetrics) GetMaxLoads

func (x *AggregatedMetrics) GetMaxLoads() map[string]*ShipmentRoute_VehicleLoad

func (*AggregatedMetrics) GetPerformedShipmentCount

func (x *AggregatedMetrics) GetPerformedShipmentCount() int32

func (*AggregatedMetrics) GetTotalCost

func (x *AggregatedMetrics) GetTotalCost() float64

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*AggregatedMetrics) GetTotalDuration

func (x *AggregatedMetrics) GetTotalDuration() *durationpb.Duration

func (*AggregatedMetrics) GetTravelDistanceMeters

func (x *AggregatedMetrics) GetTravelDistanceMeters() float64

func (*AggregatedMetrics) GetTravelDuration

func (x *AggregatedMetrics) GetTravelDuration() *durationpb.Duration

func (*AggregatedMetrics) GetVisitDuration

func (x *AggregatedMetrics) GetVisitDuration() *durationpb.Duration

func (*AggregatedMetrics) GetWaitDuration

func (x *AggregatedMetrics) GetWaitDuration() *durationpb.Duration

func (*AggregatedMetrics) ProtoMessage

func (*AggregatedMetrics) ProtoMessage()

func (*AggregatedMetrics) ProtoReflect

func (x *AggregatedMetrics) ProtoReflect() protoreflect.Message

func (*AggregatedMetrics) Reset

func (x *AggregatedMetrics) Reset()

func (*AggregatedMetrics) String

func (x *AggregatedMetrics) String() string

AsyncModelMetadata

type AsyncModelMetadata struct {

	// The state of the current operation.
	State AsyncModelMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.optimization.v1.AsyncModelMetadata_State" json:"state,omitempty"`
	// A message providing more details about the current state of the operation.
	// For example, the error message if the operation is failed.
	StateMessage string `protobuf:"bytes,2,opt,name=state_message,json=stateMessage,proto3" json:"state_message,omitempty"`
	// The creation time of the operation.
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The last update time of the operation.
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// contains filtered or unexported fields
}

The long running operation metadata for async model related methods.

func (*AsyncModelMetadata) Descriptor

func (*AsyncModelMetadata) Descriptor() ([]byte, []int)

Deprecated: Use AsyncModelMetadata.ProtoReflect.Descriptor instead.

func (*AsyncModelMetadata) GetCreateTime

func (x *AsyncModelMetadata) GetCreateTime() *timestamppb.Timestamp

func (*AsyncModelMetadata) GetState

func (*AsyncModelMetadata) GetStateMessage

func (x *AsyncModelMetadata) GetStateMessage() string

func (*AsyncModelMetadata) GetUpdateTime

func (x *AsyncModelMetadata) GetUpdateTime() *timestamppb.Timestamp

func (*AsyncModelMetadata) ProtoMessage

func (*AsyncModelMetadata) ProtoMessage()

func (*AsyncModelMetadata) ProtoReflect

func (x *AsyncModelMetadata) ProtoReflect() protoreflect.Message

func (*AsyncModelMetadata) Reset

func (x *AsyncModelMetadata) Reset()

func (*AsyncModelMetadata) String

func (x *AsyncModelMetadata) String() string

AsyncModelMetadata_State

type AsyncModelMetadata_State int32

Possible states of the operation.

AsyncModelMetadata_STATE_UNSPECIFIED, AsyncModelMetadata_RUNNING, AsyncModelMetadata_SUCCEEDED, AsyncModelMetadata_CANCELLED, AsyncModelMetadata_FAILED

const (
	// The default value. This value is used if the state is omitted.
	AsyncModelMetadata_STATE_UNSPECIFIED AsyncModelMetadata_State = 0
	// Request is being processed.
	AsyncModelMetadata_RUNNING AsyncModelMetadata_State = 1
	// The operation completed successfully.
	AsyncModelMetadata_SUCCEEDED AsyncModelMetadata_State = 2
	// The operation was cancelled.
	AsyncModelMetadata_CANCELLED AsyncModelMetadata_State = 3
	// The operation has failed.
	AsyncModelMetadata_FAILED AsyncModelMetadata_State = 4
)

func (AsyncModelMetadata_State) Descriptor

func (AsyncModelMetadata_State) Enum

func (AsyncModelMetadata_State) EnumDescriptor

func (AsyncModelMetadata_State) EnumDescriptor() ([]byte, []int)

Deprecated: Use AsyncModelMetadata_State.Descriptor instead.

func (AsyncModelMetadata_State) Number

func (AsyncModelMetadata_State) String

func (x AsyncModelMetadata_State) String() string

func (AsyncModelMetadata_State) Type

BatchOptimizeToursRequest

type BatchOptimizeToursRequest struct {

	// Required. Target project and location to make a call.
	//
	// Format: `projects/{project-id}/locations/{location-id}`.
	//
	// If no location is specified, a region will be chosen automatically.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Input/Output information each purchase model, such as file paths
	// and data formats.
	ModelConfigs []*BatchOptimizeToursRequest_AsyncModelConfig `protobuf:"bytes,2,rep,name=model_configs,json=modelConfigs,proto3" json:"model_configs,omitempty"`
	// contains filtered or unexported fields
}

Request to batch optimize tours as an asynchronous operation. Each input file should contain one OptimizeToursRequest, and each output file will contain one OptimizeToursResponse. The request contains information to read/write and parse the files. All the input and output files should be under the same project.

func (*BatchOptimizeToursRequest) Descriptor

func (*BatchOptimizeToursRequest) Descriptor() ([]byte, []int)

Deprecated: Use BatchOptimizeToursRequest.ProtoReflect.Descriptor instead.

func (*BatchOptimizeToursRequest) GetModelConfigs

func (*BatchOptimizeToursRequest) GetParent

func (x *BatchOptimizeToursRequest) GetParent() string

func (*BatchOptimizeToursRequest) ProtoMessage

func (*BatchOptimizeToursRequest) ProtoMessage()

func (*BatchOptimizeToursRequest) ProtoReflect

func (*BatchOptimizeToursRequest) Reset

func (x *BatchOptimizeToursRequest) Reset()

func (*BatchOptimizeToursRequest) String

func (x *BatchOptimizeToursRequest) String() string

BatchOptimizeToursRequest_AsyncModelConfig

type BatchOptimizeToursRequest_AsyncModelConfig struct {

	// User defined model name, can be used as alias by users to keep track of
	// models.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Required. Information about the input model.
	InputConfig *InputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
	// Required. The desired output location information.
	OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
	// If this is set, the model will be solved in the checkpoint mode. In this
	// mode, the input model can have a deadline longer than 30 mins without the
	// risk of interruption. The model will be solved in multiple short-running
	// stages. Each stage generates an intermediate checkpoint
	// and stores it in the user's Cloud Storage buckets. The checkpoint
	// mode should be preferred over
	// allow_large_deadline_despite_interruption_risk since it prevents the risk
	// of interruption.
	EnableCheckpoints bool `protobuf:"varint,4,opt,name=enable_checkpoints,json=enableCheckpoints,proto3" json:"enable_checkpoints,omitempty"`
	// contains filtered or unexported fields
}

Information for solving one optimization model asynchronously.

func (*BatchOptimizeToursRequest_AsyncModelConfig) Descriptor

Deprecated: Use BatchOptimizeToursRequest_AsyncModelConfig.ProtoReflect.Descriptor instead.

func (*BatchOptimizeToursRequest_AsyncModelConfig) GetDisplayName

func (*BatchOptimizeToursRequest_AsyncModelConfig) GetEnableCheckpoints

func (x *BatchOptimizeToursRequest_AsyncModelConfig) GetEnableCheckpoints() bool

func (*BatchOptimizeToursRequest_AsyncModelConfig) GetInputConfig

func (*BatchOptimizeToursRequest_AsyncModelConfig) GetOutputConfig

func (*BatchOptimizeToursRequest_AsyncModelConfig) ProtoMessage

func (*BatchOptimizeToursRequest_AsyncModelConfig) ProtoReflect

func (*BatchOptimizeToursRequest_AsyncModelConfig) Reset

func (*BatchOptimizeToursRequest_AsyncModelConfig) String

BatchOptimizeToursResponse

type BatchOptimizeToursResponse struct {
	// contains filtered or unexported fields
}

Response to a BatchOptimizeToursRequest. This is returned in the LRO Operation after the operation is complete.

func (*BatchOptimizeToursResponse) Descriptor

func (*BatchOptimizeToursResponse) Descriptor() ([]byte, []int)

Deprecated: Use BatchOptimizeToursResponse.ProtoReflect.Descriptor instead.

func (*BatchOptimizeToursResponse) ProtoMessage

func (*BatchOptimizeToursResponse) ProtoMessage()

func (*BatchOptimizeToursResponse) ProtoReflect

func (*BatchOptimizeToursResponse) Reset

func (x *BatchOptimizeToursResponse) Reset()

func (*BatchOptimizeToursResponse) String

func (x *BatchOptimizeToursResponse) String() string

BreakRule

type BreakRule struct {

	// Sequence of breaks. See the `BreakRequest` message.
	BreakRequests []*BreakRule_BreakRequest `protobuf:"bytes,1,rep,name=break_requests,json=breakRequests,proto3" json:"break_requests,omitempty"`
	// Several `FrequencyConstraint` may apply. They must all be satisfied by
	// the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
	FrequencyConstraints []*BreakRule_FrequencyConstraint `protobuf:"bytes,2,rep,name=frequency_constraints,json=frequencyConstraints,proto3" json:"frequency_constraints,omitempty"`
	// contains filtered or unexported fields
}

Rules to generate time breaks for a vehicle (e.g. lunch breaks). A break is a contiguous period of time during which the vehicle remains idle at its current position and cannot perform any visit. A break may occur:

  • during the travel between two visits (which includes the time right before or right after a visit, but not in the middle of a visit), in which case it extends the corresponding transit time between the visits,
  • or before the vehicle start (the vehicle may not start in the middle of a break), in which case it does not affect the vehicle start time.
  • or after the vehicle end (ditto, with the vehicle end time).

func (*BreakRule) Descriptor

func (*BreakRule) Descriptor() ([]byte, []int)

Deprecated: Use BreakRule.ProtoReflect.Descriptor instead.

func (*BreakRule) GetBreakRequests

func (x *BreakRule) GetBreakRequests() []*BreakRule_BreakRequest

func (*BreakRule) GetFrequencyConstraints

func (x *BreakRule) GetFrequencyConstraints() []*BreakRule_FrequencyConstraint

func (*BreakRule) ProtoMessage

func (*BreakRule) ProtoMessage()

func (*BreakRule) ProtoReflect

func (x *BreakRule) ProtoReflect() protoreflect.Message

func (*BreakRule) Reset

func (x *BreakRule) Reset()

func (*BreakRule) String

func (x *BreakRule) String() string

BreakRule_BreakRequest

type BreakRule_BreakRequest struct {

	// Required. Lower bound (inclusive) on the start of the break.
	EarliestStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=earliest_start_time,json=earliestStartTime,proto3" json:"earliest_start_time,omitempty"`
	// Required. Upper bound (inclusive) on the start of the break.
	LatestStartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=latest_start_time,json=latestStartTime,proto3" json:"latest_start_time,omitempty"`
	// Required. Minimum duration of the break. Must be positive.
	MinDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=min_duration,json=minDuration,proto3" json:"min_duration,omitempty"`
	// contains filtered or unexported fields
}

The sequence of breaks (i.e. their number and order) that apply to each vehicle must be known beforehand. The repeated BreakRequests define that sequence, in the order in which they must occur. Their time windows (earliest_start_time / latest_start_time) may overlap, but they must be compatible with the order (this is checked).

func (*BreakRule_BreakRequest) Descriptor

func (*BreakRule_BreakRequest) Descriptor() ([]byte, []int)

Deprecated: Use BreakRule_BreakRequest.ProtoReflect.Descriptor instead.

func (*BreakRule_BreakRequest) GetEarliestStartTime

func (x *BreakRule_BreakRequest) GetEarliestStartTime() *timestamppb.Timestamp

func (*BreakRule_BreakRequest) GetLatestStartTime

func (x *BreakRule_BreakRequest) GetLatestStartTime() *timestamppb.Timestamp

func (*BreakRule_BreakRequest) GetMinDuration

func (x *BreakRule_BreakRequest) GetMinDuration() *durationpb.Duration

func (*BreakRule_BreakRequest) ProtoMessage

func (*BreakRule_BreakRequest) ProtoMessage()

func (*BreakRule_BreakRequest) ProtoReflect

func (x *BreakRule_BreakRequest) ProtoReflect() protoreflect.Message

func (*BreakRule_BreakRequest) Reset

func (x *BreakRule_BreakRequest) Reset()

func (*BreakRule_BreakRequest) String

func (x *BreakRule_BreakRequest) String() string

BreakRule_FrequencyConstraint

type BreakRule_FrequencyConstraint struct {
	MinBreakDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=min_break_duration,json=minBreakDuration,proto3" json:"min_break_duration,omitempty"`

	MaxInterBreakDuration *durationpb.Duration "" /* 128 byte string literal not displayed */

}

One may further constrain the frequency and duration of the breaks specified above, by enforcing a minimum break frequency, such as "There must be a break of at least 1 hour every 12 hours". Assuming that this can be interpreted as "Within any sliding time window of 12h, there must be at least one break of at least one hour", that example would translate to the following FrequencyConstraint:


    {
       min_break_duration { seconds: 3600 }         # 1 hour.
       max_inter_break_duration { seconds: 39600 }  # 11 hours (12 - 1 = 11).
    }

The timing and duration of the breaks in the solution will respect all such constraints, in addition to the time windows and minimum durations already specified in the BreakRequest.

A FrequencyConstraint may in practice apply to non-consecutive breaks. For example, the following schedule honors the "1h every 12h" example:


    04:00 vehicle start
     .. performing travel and visits ..
    09:00 1 hour break
    10:00 end of the break
     .. performing travel and visits ..
    12:00 20-min lunch break
    12:20 end of the break
     .. performing travel and visits ..
    21:00 1 hour break
    22:00 end of the break
     .. performing travel and visits ..
    23:59 vehicle end

func (*BreakRule_FrequencyConstraint) Descriptor

func (*BreakRule_FrequencyConstraint) Descriptor() ([]byte, []int)

Deprecated: Use BreakRule_FrequencyConstraint.ProtoReflect.Descriptor instead.

func (*BreakRule_FrequencyConstraint) GetMaxInterBreakDuration

func (x *BreakRule_FrequencyConstraint) GetMaxInterBreakDuration() *durationpb.Duration

func (*BreakRule_FrequencyConstraint) GetMinBreakDuration

func (x *BreakRule_FrequencyConstraint) GetMinBreakDuration() *durationpb.Duration

func (*BreakRule_FrequencyConstraint) ProtoMessage

func (*BreakRule_FrequencyConstraint) ProtoMessage()

func (*BreakRule_FrequencyConstraint) ProtoReflect

func (*BreakRule_FrequencyConstraint) Reset

func (x *BreakRule_FrequencyConstraint) Reset()

func (*BreakRule_FrequencyConstraint) String

CapacityQuantity (deprecated)

type CapacityQuantity struct {
	Type  string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

Deprecated: Use [Vehicle.LoadLimit.Interval][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval] instead.

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*CapacityQuantity) Descriptor (deprecated)

func (*CapacityQuantity) Descriptor() ([]byte, []int)

Deprecated: Use CapacityQuantity.ProtoReflect.Descriptor instead.

func (*CapacityQuantity) GetType (deprecated)

func (x *CapacityQuantity) GetType() string

func (*CapacityQuantity) GetValue (deprecated)

func (x *CapacityQuantity) GetValue() int64

func (*CapacityQuantity) ProtoMessage (deprecated)

func (*CapacityQuantity) ProtoMessage()

func (*CapacityQuantity) ProtoReflect (deprecated)

func (x *CapacityQuantity) ProtoReflect() protoreflect.Message

func (*CapacityQuantity) Reset (deprecated)

func (x *CapacityQuantity) Reset()

func (*CapacityQuantity) String (deprecated)

func (x *CapacityQuantity) String() string

CapacityQuantityInterval (deprecated)

type CapacityQuantityInterval struct {
	Type     string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	MinValue *int64 `protobuf:"varint,2,opt,name=min_value,json=minValue,proto3,oneof" json:"min_value,omitempty"`
	MaxValue *int64 `protobuf:"varint,3,opt,name=max_value,json=maxValue,proto3,oneof" json:"max_value,omitempty"`
	// contains filtered or unexported fields
}

Deprecated: Use [Vehicle.LoadLimit.Interval][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval] instead.

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*CapacityQuantityInterval) Descriptor (deprecated)

func (*CapacityQuantityInterval) Descriptor() ([]byte, []int)

Deprecated: Use CapacityQuantityInterval.ProtoReflect.Descriptor instead.

func (*CapacityQuantityInterval) GetMaxValue (deprecated)

func (x *CapacityQuantityInterval) GetMaxValue() int64

func (*CapacityQuantityInterval) GetMinValue (deprecated)

func (x *CapacityQuantityInterval) GetMinValue() int64

func (*CapacityQuantityInterval) GetType (deprecated)

func (x *CapacityQuantityInterval) GetType() string

func (*CapacityQuantityInterval) ProtoMessage (deprecated)

func (*CapacityQuantityInterval) ProtoMessage()

func (*CapacityQuantityInterval) ProtoReflect (deprecated)

func (x *CapacityQuantityInterval) ProtoReflect() protoreflect.Message

func (*CapacityQuantityInterval) Reset (deprecated)

func (x *CapacityQuantityInterval) Reset()

func (*CapacityQuantityInterval) String (deprecated)

func (x *CapacityQuantityInterval) String() string

DataFormat

type DataFormat int32

Data formats for input and output files.

DataFormat_DATA_FORMAT_UNSPECIFIED, DataFormat_JSON, DataFormat_STRING

const (
	// Default value.
	DataFormat_DATA_FORMAT_UNSPECIFIED DataFormat = 0
	// Input data in json format.
	DataFormat_JSON DataFormat = 1
	// Input data in string format.
	DataFormat_STRING DataFormat = 2
)

func (DataFormat) Descriptor

func (DataFormat) Descriptor() protoreflect.EnumDescriptor

func (DataFormat) Enum

func (x DataFormat) Enum() *DataFormat

func (DataFormat) EnumDescriptor

func (DataFormat) EnumDescriptor() ([]byte, []int)

Deprecated: Use DataFormat.Descriptor instead.

func (DataFormat) Number

func (x DataFormat) Number() protoreflect.EnumNumber

func (DataFormat) String

func (x DataFormat) String() string

func (DataFormat) Type

DistanceLimit

type DistanceLimit struct {
	MaxMeters *int64 `protobuf:"varint,1,opt,name=max_meters,json=maxMeters,proto3,oneof" json:"max_meters,omitempty"`

	SoftMaxMeters *int64 `protobuf:"varint,2,opt,name=soft_max_meters,json=softMaxMeters,proto3,oneof" json:"soft_max_meters,omitempty"`

	CostPerKilometerBelowSoftMax *float64 "" /* 161 byte string literal not displayed */

	CostPerKilometerAboveSoftMax *float64 "" /* 161 byte string literal not displayed */

}

A limit defining a maximum distance which can be traveled. It can be either hard or soft.

If a soft limit is defined, both soft_max_meters and cost_per_kilometer_above_soft_max must be defined and be nonnegative.

func (*DistanceLimit) Descriptor

func (*DistanceLimit) Descriptor() ([]byte, []int)

Deprecated: Use DistanceLimit.ProtoReflect.Descriptor instead.

func (*DistanceLimit) GetCostPerKilometerAboveSoftMax

func (x *DistanceLimit) GetCostPerKilometerAboveSoftMax() float64

func (*DistanceLimit) GetCostPerKilometerBelowSoftMax

func (x *DistanceLimit) GetCostPerKilometerBelowSoftMax() float64

func (*DistanceLimit) GetMaxMeters

func (x *DistanceLimit) GetMaxMeters() int64

func (*DistanceLimit) GetSoftMaxMeters

func (x *DistanceLimit) GetSoftMaxMeters() int64

func (*DistanceLimit) ProtoMessage

func (*DistanceLimit) ProtoMessage()

func (*DistanceLimit) ProtoReflect

func (x *DistanceLimit) ProtoReflect() protoreflect.Message

func (*DistanceLimit) Reset

func (x *DistanceLimit) Reset()

func (*DistanceLimit) String

func (x *DistanceLimit) String() string

FleetRoutingClient

type FleetRoutingClient interface {
	// Sends an `OptimizeToursRequest` containing a `ShipmentModel` and returns an
	// `OptimizeToursResponse` containing `ShipmentRoute`s, which are a set of
	// routes to be performed by vehicles minimizing the overall cost.
	//
	// A `ShipmentModel` model consists mainly of `Shipment`s that need to be
	// carried out and `Vehicle`s that can be used to transport the `Shipment`s.
	// The `ShipmentRoute`s assign `Shipment`s to `Vehicle`s. More specifically,
	// they assign a series of `Visit`s to each vehicle, where a `Visit`
	// corresponds to a `VisitRequest`, which is a pickup or delivery for a
	// `Shipment`.
	//
	// The goal is to provide an assignment of `ShipmentRoute`s to `Vehicle`s that
	// minimizes the total cost where cost has many components defined in the
	// `ShipmentModel`.
	OptimizeTours(ctx context.Context, in *OptimizeToursRequest, opts ...grpc.CallOption) (*OptimizeToursResponse, error)
	// Optimizes vehicle tours for one or more `OptimizeToursRequest`
	// messages as a batch.
	//
	// This method is a Long Running Operation (LRO). The inputs for optimization
	// (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse`
	// messages) are read/written from/to Cloud Storage in user-specified
	// format. Like the `OptimizeTours` method, each `OptimizeToursRequest`
	// contains a `ShipmentModel` and returns an `OptimizeToursResponse`
	// containing `ShipmentRoute`s, which are a set of routes to be performed by
	// vehicles minimizing the overall cost.
	BatchOptimizeTours(ctx context.Context, in *BatchOptimizeToursRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error)
}

FleetRoutingClient is the client API for FleetRouting service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewFleetRoutingClient

func NewFleetRoutingClient(cc grpc.ClientConnInterface) FleetRoutingClient

FleetRoutingServer

type FleetRoutingServer interface {
	// Sends an `OptimizeToursRequest` containing a `ShipmentModel` and returns an
	// `OptimizeToursResponse` containing `ShipmentRoute`s, which are a set of
	// routes to be performed by vehicles minimizing the overall cost.
	//
	// A `ShipmentModel` model consists mainly of `Shipment`s that need to be
	// carried out and `Vehicle`s that can be used to transport the `Shipment`s.
	// The `ShipmentRoute`s assign `Shipment`s to `Vehicle`s. More specifically,
	// they assign a series of `Visit`s to each vehicle, where a `Visit`
	// corresponds to a `VisitRequest`, which is a pickup or delivery for a
	// `Shipment`.
	//
	// The goal is to provide an assignment of `ShipmentRoute`s to `Vehicle`s that
	// minimizes the total cost where cost has many components defined in the
	// `ShipmentModel`.
	OptimizeTours(context.Context, *OptimizeToursRequest) (*OptimizeToursResponse, error)
	// Optimizes vehicle tours for one or more `OptimizeToursRequest`
	// messages as a batch.
	//
	// This method is a Long Running Operation (LRO). The inputs for optimization
	// (`OptimizeToursRequest` messages) and outputs (`OptimizeToursResponse`
	// messages) are read/written from/to Cloud Storage in user-specified
	// format. Like the `OptimizeTours` method, each `OptimizeToursRequest`
	// contains a `ShipmentModel` and returns an `OptimizeToursResponse`
	// containing `ShipmentRoute`s, which are a set of routes to be performed by
	// vehicles minimizing the overall cost.
	BatchOptimizeTours(context.Context, *BatchOptimizeToursRequest) (*longrunningpb.Operation, error)
}

FleetRoutingServer is the server API for FleetRouting service.

GcsDestination

type GcsDestination struct {

	// Required. URI of the Google Cloud Storage location.
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	// contains filtered or unexported fields
}

The Google Cloud Storage location where the output file will be written to.

func (*GcsDestination) Descriptor

func (*GcsDestination) Descriptor() ([]byte, []int)

Deprecated: Use GcsDestination.ProtoReflect.Descriptor instead.

func (*GcsDestination) GetUri

func (x *GcsDestination) GetUri() string

func (*GcsDestination) ProtoMessage

func (*GcsDestination) ProtoMessage()

func (*GcsDestination) ProtoReflect

func (x *GcsDestination) ProtoReflect() protoreflect.Message

func (*GcsDestination) Reset

func (x *GcsDestination) Reset()

func (*GcsDestination) String

func (x *GcsDestination) String() string

GcsSource

type GcsSource struct {

	// Required. URI of the Google Cloud Storage location.
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	// contains filtered or unexported fields
}

The Google Cloud Storage location where the input file will be read from.

func (*GcsSource) Descriptor

func (*GcsSource) Descriptor() ([]byte, []int)

Deprecated: Use GcsSource.ProtoReflect.Descriptor instead.

func (*GcsSource) GetUri

func (x *GcsSource) GetUri() string

func (*GcsSource) ProtoMessage

func (*GcsSource) ProtoMessage()

func (*GcsSource) ProtoReflect

func (x *GcsSource) ProtoReflect() protoreflect.Message

func (*GcsSource) Reset

func (x *GcsSource) Reset()

func (*GcsSource) String

func (x *GcsSource) String() string

InjectedSolutionConstraint

type InjectedSolutionConstraint struct {

	// Routes of the solution to inject. Some routes may be omitted from the
	// original solution. The routes and skipped shipments must satisfy the basic
	// validity assumptions listed for `injected_first_solution_routes`.
	Routes []*ShipmentRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
	// Skipped shipments of the solution to inject. Some may be omitted from the
	// original solution. See the `routes` field.
	SkippedShipments []*SkippedShipment `protobuf:"bytes,2,rep,name=skipped_shipments,json=skippedShipments,proto3" json:"skipped_shipments,omitempty"`
	// For zero or more groups of vehicles, specifies when and how much to relax
	// constraints. If this field is empty, all non-empty vehicle routes are
	// fully constrained.
	ConstraintRelaxations []*InjectedSolutionConstraint_ConstraintRelaxation `protobuf:"bytes,3,rep,name=constraint_relaxations,json=constraintRelaxations,proto3" json:"constraint_relaxations,omitempty"`
	// contains filtered or unexported fields
}

Solution injected in the request including information about which visits must be constrained and how they must be constrained.

func (*InjectedSolutionConstraint) Descriptor

func (*InjectedSolutionConstraint) Descriptor() ([]byte, []int)

Deprecated: Use InjectedSolutionConstraint.ProtoReflect.Descriptor instead.

func (*InjectedSolutionConstraint) GetConstraintRelaxations

func (*InjectedSolutionConstraint) GetRoutes

func (x *InjectedSolutionConstraint) GetRoutes() []*ShipmentRoute

func (*InjectedSolutionConstraint) GetSkippedShipments

func (x *InjectedSolutionConstraint) GetSkippedShipments() []*SkippedShipment

func (*InjectedSolutionConstraint) ProtoMessage

func (*InjectedSolutionConstraint) ProtoMessage()

func (*InjectedSolutionConstraint) ProtoReflect

func (*InjectedSolutionConstraint) Reset

func (x *InjectedSolutionConstraint) Reset()

func (*InjectedSolutionConstraint) String

func (x *InjectedSolutionConstraint) String() string

InjectedSolutionConstraint_ConstraintRelaxation

type InjectedSolutionConstraint_ConstraintRelaxation struct {

	// All the visit constraint relaxations that will apply to visits on
	// routes with vehicles in `vehicle_indices`.
	Relaxations []*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation `protobuf:"bytes,1,rep,name=relaxations,proto3" json:"relaxations,omitempty"`
	// Specifies the vehicle indices to which the visit constraint
	// `relaxations` apply. If empty, this is considered the default and the
	// `relaxations` apply to all vehicles that are not specified in other
	// `constraint_relaxations`. There can be at most one default, i.e., at
	// most one constraint relaxation field is allowed empty
	// `vehicle_indices`. A vehicle index can only be listed once, even within
	// several `constraint_relaxations`.
	//
	// A vehicle index is mapped the same as
	// [ShipmentRoute.vehicle_index][google.cloud.optimization.v1.ShipmentRoute.vehicle_index],
	// if `interpret_injected_solutions_using_labels` is true (see `fields`
	// comment).
	VehicleIndices []int32 `protobuf:"varint,2,rep,packed,name=vehicle_indices,json=vehicleIndices,proto3" json:"vehicle_indices,omitempty"`
	// contains filtered or unexported fields
}

For a group of vehicles, specifies at what threshold(s) constraints on visits will be relaxed and to which level. Shipments listed in the skipped_shipment field are constrained to be skipped; i.e., they cannot be performed.

func (*InjectedSolutionConstraint_ConstraintRelaxation) Descriptor

Deprecated: Use InjectedSolutionConstraint_ConstraintRelaxation.ProtoReflect.Descriptor instead.

func (*InjectedSolutionConstraint_ConstraintRelaxation) GetRelaxations

func (*InjectedSolutionConstraint_ConstraintRelaxation) GetVehicleIndices

func (x *InjectedSolutionConstraint_ConstraintRelaxation) GetVehicleIndices() []int32

func (*InjectedSolutionConstraint_ConstraintRelaxation) ProtoMessage

func (*InjectedSolutionConstraint_ConstraintRelaxation) ProtoReflect

func (*InjectedSolutionConstraint_ConstraintRelaxation) Reset

func (*InjectedSolutionConstraint_ConstraintRelaxation) String

InjectedSolutionConstraint_ConstraintRelaxation_Relaxation

type InjectedSolutionConstraint_ConstraintRelaxation_Relaxation struct {
	Level InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level "" /* 163 byte string literal not displayed */

	ThresholdTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=threshold_time,json=thresholdTime,proto3" json:"threshold_time,omitempty"`

	ThresholdVisitCount int32 `protobuf:"varint,3,opt,name=threshold_visit_count,json=thresholdVisitCount,proto3" json:"threshold_visit_count,omitempty"`

}

If relaxations is empty, the start time and sequence of all visits on routes are fully constrained and no new visits may be inserted or added to those routes. Also, a vehicle's start and end time in routes is fully constrained, unless the vehicle is empty (i.e., has no visits and has used_if_route_is_empty set to false in the model).

relaxations(i).level specifies the constraint relaxation level applied to a visit #j that satisfies:

  • route.visits(j).start_time >= relaxations(i).threshold_time AND
  • j + 1 >= relaxations(i).threshold_visit_count

Similarly, the vehicle start is relaxed to relaxations(i).level if it satisfies:

  • vehicle_start_time >= relaxations(i).threshold_time AND
  • relaxations(i).threshold_visit_count == 0

and the vehicle end is relaxed to relaxations(i).level if it satisfies:

  • vehicle_end_time >= relaxations(i).threshold_time AND
  • route.visits_size() + 1 >= relaxations(i).threshold_visit_count

To apply a relaxation level if a visit meets the threshold_visit_count OR the threshold_time add two relaxations with the same level: one with only threshold_visit_count set and the other with only threshold_time set. If a visit satisfies the conditions of multiple relaxations, the most relaxed level applies. As a result, from the vehicle start through the route visits in order to the vehicle end, the relaxation level becomes more relaxed: i.e., the relaxation level is non-decreasing as the route progresses.

The timing and sequence of route visits that do not satisfy the threshold conditions of any relaxations are fully constrained and no visits may be inserted into these sequences. Also, if a vehicle start or end does not satisfy the conditions of any relaxation the time is fixed, unless the vehicle is empty.

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) Descriptor

Deprecated: Use InjectedSolutionConstraint_ConstraintRelaxation_Relaxation.ProtoReflect.Descriptor instead.

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) GetLevel

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) GetThresholdTime

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) GetThresholdVisitCount

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) ProtoMessage

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) ProtoReflect

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) Reset

func (*InjectedSolutionConstraint_ConstraintRelaxation_Relaxation) String

InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level

type InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level int32

Expresses the different constraint relaxation levels, which are applied for a visit and those that follow when it satisfies the threshold conditions.

The enumeration below is in order of increasing relaxation.

InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_LEVEL_UNSPECIFIED, InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AFTER_THRESHOLD, InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD, InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_ALL_AFTER_THRESHOLD

const (
	// Implicit default relaxation level: no constraints are relaxed,
	// i.e., all visits are fully constrained.
	//
	// This value must not be explicitly used in `level`.
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_LEVEL_UNSPECIFIED InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level = 0
	// Visit start times and vehicle start/end times will be relaxed, but
	// each visit remains bound to the same vehicle and the visit sequence
	// must be observed: no visit can be inserted between them or before
	// them.
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AFTER_THRESHOLD InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level = 1
	// Same as `RELAX_VISIT_TIMES_AFTER_THRESHOLD`, but the visit sequence
	// is also relaxed: visits can only be performed by this vehicle, but
	// can potentially become unperformed.
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level = 2
	// Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the
	// vehicle is also relaxed: visits are completely free at or after the
	// threshold time and can potentially become unperformed.
	InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_RELAX_ALL_AFTER_THRESHOLD InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level = 3
)

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) Descriptor

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) Enum

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) EnumDescriptor

Deprecated: Use InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level.Descriptor instead.

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) Number

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) String

func (InjectedSolutionConstraint_ConstraintRelaxation_Relaxation_Level) Type

InputConfig

type InputConfig struct {
	Source isInputConfig_Source `protobuf_oneof:"source"`

	DataFormat DataFormat "" /* 137 byte string literal not displayed */

}

The desired input location information.

func (*InputConfig) Descriptor

func (*InputConfig) Descriptor() ([]byte, []int)

Deprecated: Use InputConfig.ProtoReflect.Descriptor instead.

func (*InputConfig) GetDataFormat

func (x *InputConfig) GetDataFormat() DataFormat

func (*InputConfig) GetGcsSource

func (x *InputConfig) GetGcsSource() *GcsSource

func (*InputConfig) GetSource

func (m *InputConfig) GetSource() isInputConfig_Source

func (*InputConfig) ProtoMessage

func (*InputConfig) ProtoMessage()

func (*InputConfig) ProtoReflect

func (x *InputConfig) ProtoReflect() protoreflect.Message

func (*InputConfig) Reset

func (x *InputConfig) Reset()

func (*InputConfig) String

func (x *InputConfig) String() string

InputConfig_GcsSource

type InputConfig_GcsSource struct {
	// The Google Cloud Storage location to read the input from. This must be a
	// single file.
	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
}

Location

type Location struct {

	// The waypoint's geographic coordinates.
	LatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
	// The compass heading associated with the direction of the flow of traffic.
	// This value is used to specify the side of the road to use for pickup and
	// drop-off. Heading values can be from 0 to 360, where 0 specifies a heading
	// of due North, 90 specifies a heading of due East, etc.
	Heading *int32 `protobuf:"varint,2,opt,name=heading,proto3,oneof" json:"heading,omitempty"`
	// contains filtered or unexported fields
}

Encapsulates a location (a geographic point, and an optional heading).

func (*Location) Descriptor

func (*Location) Descriptor() ([]byte, []int)

Deprecated: Use Location.ProtoReflect.Descriptor instead.

func (*Location) GetHeading

func (x *Location) GetHeading() int32

func (*Location) GetLatLng

func (x *Location) GetLatLng() *latlng.LatLng

func (*Location) ProtoMessage

func (*Location) ProtoMessage()

func (*Location) ProtoReflect

func (x *Location) ProtoReflect() protoreflect.Message

func (*Location) Reset

func (x *Location) Reset()

func (*Location) String

func (x *Location) String() string

OptimizeToursRequest

type OptimizeToursRequest struct {
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`

	Timeout *durationpb.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`

	Model *ShipmentModel `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`

	SolvingMode OptimizeToursRequest_SolvingMode "" /* 162 byte string literal not displayed */

	SearchMode OptimizeToursRequest_SearchMode "" /* 158 byte string literal not displayed */

	InjectedFirstSolutionRoutes []*ShipmentRoute "" /* 146 byte string literal not displayed */

	InjectedSolutionConstraint *InjectedSolutionConstraint "" /* 141 byte string literal not displayed */

	RefreshDetailsRoutes []*ShipmentRoute `protobuf:"bytes,9,rep,name=refresh_details_routes,json=refreshDetailsRoutes,proto3" json:"refresh_details_routes,omitempty"`

	InterpretInjectedSolutionsUsingLabels bool "" /* 180 byte string literal not displayed */

	ConsiderRoadTraffic bool `protobuf:"varint,11,opt,name=consider_road_traffic,json=considerRoadTraffic,proto3" json:"consider_road_traffic,omitempty"`

	PopulatePolylines bool `protobuf:"varint,12,opt,name=populate_polylines,json=populatePolylines,proto3" json:"populate_polylines,omitempty"`

	PopulateTransitionPolylines bool "" /* 146 byte string literal not displayed */

	AllowLargeDeadlineDespiteInterruptionRisk bool "" /* 194 byte string literal not displayed */

	UseGeodesicDistances bool `protobuf:"varint,15,opt,name=use_geodesic_distances,json=useGeodesicDistances,proto3" json:"use_geodesic_distances,omitempty"`

	GeodesicMetersPerSecond *float64 "" /* 143 byte string literal not displayed */

	MaxValidationErrors *int32 "" /* 127 byte string literal not displayed */

	Label string `protobuf:"bytes,17,opt,name=label,proto3" json:"label,omitempty"`

	PopulateTravelStepPolylines bool "" /* 148 byte string literal not displayed */

}

Request to be given to a tour optimization solver which defines the shipment model to solve as well as optimization parameters.

func (*OptimizeToursRequest) Descriptor

func (*OptimizeToursRequest) Descriptor() ([]byte, []int)

Deprecated: Use OptimizeToursRequest.ProtoReflect.Descriptor instead.

func (*OptimizeToursRequest) GetAllowLargeDeadlineDespiteInterruptionRisk

func (x *OptimizeToursRequest) GetAllowLargeDeadlineDespiteInterruptionRisk() bool

func (*OptimizeToursRequest) GetConsiderRoadTraffic

func (x *OptimizeToursRequest) GetConsiderRoadTraffic() bool

func (*OptimizeToursRequest) GetGeodesicMetersPerSecond

func (x *OptimizeToursRequest) GetGeodesicMetersPerSecond() float64

func (*OptimizeToursRequest) GetInjectedFirstSolutionRoutes

func (x *OptimizeToursRequest) GetInjectedFirstSolutionRoutes() []*ShipmentRoute

func (*OptimizeToursRequest) GetInjectedSolutionConstraint

func (x *OptimizeToursRequest) GetInjectedSolutionConstraint() *InjectedSolutionConstraint

func (*OptimizeToursRequest) GetInterpretInjectedSolutionsUsingLabels

func (x *OptimizeToursRequest) GetInterpretInjectedSolutionsUsingLabels() bool

func (*OptimizeToursRequest) GetLabel

func (x *OptimizeToursRequest) GetLabel() string

func (*OptimizeToursRequest) GetMaxValidationErrors

func (x *OptimizeToursRequest) GetMaxValidationErrors() int32

func (*OptimizeToursRequest) GetModel

func (x *OptimizeToursRequest) GetModel() *ShipmentModel

func (*OptimizeToursRequest) GetParent

func (x *OptimizeToursRequest) GetParent() string

func (*OptimizeToursRequest) GetPopulatePolylines

func (x *OptimizeToursRequest) GetPopulatePolylines() bool

func (*OptimizeToursRequest) GetPopulateTransitionPolylines

func (x *OptimizeToursRequest) GetPopulateTransitionPolylines() bool

func (*OptimizeToursRequest) GetPopulateTravelStepPolylines

func (x *OptimizeToursRequest) GetPopulateTravelStepPolylines() bool

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*OptimizeToursRequest) GetRefreshDetailsRoutes

func (x *OptimizeToursRequest) GetRefreshDetailsRoutes() []*ShipmentRoute

func (*OptimizeToursRequest) GetSearchMode

func (*OptimizeToursRequest) GetSolvingMode

func (*OptimizeToursRequest) GetTimeout

func (x *OptimizeToursRequest) GetTimeout() *durationpb.Duration

func (*OptimizeToursRequest) GetUseGeodesicDistances

func (x *OptimizeToursRequest) GetUseGeodesicDistances() bool

func (*OptimizeToursRequest) ProtoMessage

func (*OptimizeToursRequest) ProtoMessage()

func (*OptimizeToursRequest) ProtoReflect

func (x *OptimizeToursRequest) ProtoReflect() protoreflect.Message

func (*OptimizeToursRequest) Reset

func (x *OptimizeToursRequest) Reset()

func (*OptimizeToursRequest) String

func (x *OptimizeToursRequest) String() string

OptimizeToursRequest_SearchMode

type OptimizeToursRequest_SearchMode int32

Mode defining the behavior of the search, trading off latency versus solution quality. In all modes, the global request deadline is enforced.

OptimizeToursRequest_SEARCH_MODE_UNSPECIFIED, OptimizeToursRequest_RETURN_FAST, OptimizeToursRequest_CONSUME_ALL_AVAILABLE_TIME

const (
	// Unspecified search mode, equivalent to `RETURN_FAST`.
	OptimizeToursRequest_SEARCH_MODE_UNSPECIFIED OptimizeToursRequest_SearchMode = 0
	// Stop the search after finding the first good solution.
	OptimizeToursRequest_RETURN_FAST OptimizeToursRequest_SearchMode = 1
	// Spend all the available time to search for better solutions.
	OptimizeToursRequest_CONSUME_ALL_AVAILABLE_TIME OptimizeToursRequest_SearchMode = 2
)

func (OptimizeToursRequest_SearchMode) Descriptor

func (OptimizeToursRequest_SearchMode) Enum

func (OptimizeToursRequest_SearchMode) EnumDescriptor

func (OptimizeToursRequest_SearchMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use OptimizeToursRequest_SearchMode.Descriptor instead.

func (OptimizeToursRequest_SearchMode) Number

func (OptimizeToursRequest_SearchMode) String

func (OptimizeToursRequest_SearchMode) Type

OptimizeToursRequest_SolvingMode

type OptimizeToursRequest_SolvingMode int32

Defines how the solver should handle the request. In all modes but VALIDATE_ONLY, if the request is invalid, you will receive an INVALID_REQUEST error. See [max_validation_errors][google.cloud.optimization.v1.OptimizeToursRequest.max_validation_errors] to cap the number of errors returned.

OptimizeToursRequest_DEFAULT_SOLVE, OptimizeToursRequest_VALIDATE_ONLY, OptimizeToursRequest_DETECT_SOME_INFEASIBLE_SHIPMENTS

const (
	// Solve the model.
	OptimizeToursRequest_DEFAULT_SOLVE OptimizeToursRequest_SolvingMode = 0
	// Only validates the model without solving it: populates as many
	// [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]
	// as possible.
	OptimizeToursRequest_VALIDATE_ONLY OptimizeToursRequest_SolvingMode = 1
	// Only populates
	// [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]
	// or
	// [OptimizeToursResponse.skipped_shipments][google.cloud.optimization.v1.OptimizeToursResponse.skipped_shipments],
	// and doesn't actually solve the rest of the request (`status` and `routes`
	// are unset in the response).
	// If infeasibilities in `injected_solution_constraint` routes are detected
	// they are populated in the
	// [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]
	// field and
	// [OptimizeToursResponse.skipped_shipments][google.cloud.optimization.v1.OptimizeToursResponse.skipped_shipments]
	// is left empty.
	//
	// *IMPORTANT*: not all infeasible shipments are returned here, but only the
	// ones that are detected as infeasible during preprocessing.
	OptimizeToursRequest_DETECT_SOME_INFEASIBLE_SHIPMENTS OptimizeToursRequest_SolvingMode = 2
)

func (OptimizeToursRequest_SolvingMode) Descriptor

func (OptimizeToursRequest_SolvingMode) Enum

func (OptimizeToursRequest_SolvingMode) EnumDescriptor

func (OptimizeToursRequest_SolvingMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use OptimizeToursRequest_SolvingMode.Descriptor instead.

func (OptimizeToursRequest_SolvingMode) Number

func (OptimizeToursRequest_SolvingMode) String

func (OptimizeToursRequest_SolvingMode) Type

OptimizeToursResponse

type OptimizeToursResponse struct {

	// Routes computed for each vehicle; the i-th route corresponds to the i-th
	// vehicle in the model.
	Routes []*ShipmentRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
	// Copy of the
	// [OptimizeToursRequest.label][google.cloud.optimization.v1.OptimizeToursRequest.label],
	// if a label was specified in the request.
	RequestLabel string `protobuf:"bytes,3,opt,name=request_label,json=requestLabel,proto3" json:"request_label,omitempty"`
	// The list of all shipments skipped.
	SkippedShipments []*SkippedShipment `protobuf:"bytes,4,rep,name=skipped_shipments,json=skippedShipments,proto3" json:"skipped_shipments,omitempty"`
	// List of all the validation errors that we were able to detect
	// independently. See the "MULTIPLE ERRORS" explanation for the
	// [OptimizeToursValidationError][google.cloud.optimization.v1.OptimizeToursValidationError]
	// message.
	ValidationErrors []*OptimizeToursValidationError `protobuf:"bytes,5,rep,name=validation_errors,json=validationErrors,proto3" json:"validation_errors,omitempty"`
	// Duration, distance and usage metrics for this solution.
	Metrics *OptimizeToursResponse_Metrics `protobuf:"bytes,6,opt,name=metrics,proto3" json:"metrics,omitempty"`
	// Deprecated: Use
	// [Metrics.total_cost][google.cloud.optimization.v1.OptimizeToursResponse.Metrics.total_cost]
	// instead. Total cost of the solution. This takes into account all costs:
	// costs per per hour and travel hour, fixed vehicle costs, unperformed
	// shipment penalty costs, global duration cost, etc.
	//
	// Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.
	TotalCost float64 `protobuf:"fixed64,2,opt,name=total_cost,json=totalCost,proto3" json:"total_cost,omitempty"`
	// contains filtered or unexported fields
}

Response after solving a tour optimization problem containing the routes followed by each vehicle, the shipments which have been skipped and the overall cost of the solution.

func (*OptimizeToursResponse) Descriptor

func (*OptimizeToursResponse) Descriptor() ([]byte, []int)

Deprecated: Use OptimizeToursResponse.ProtoReflect.Descriptor instead.

func (*OptimizeToursResponse) GetMetrics

func (*OptimizeToursResponse) GetRequestLabel

func (x *OptimizeToursResponse) GetRequestLabel() string

func (*OptimizeToursResponse) GetRoutes

func (x *OptimizeToursResponse) GetRoutes() []*ShipmentRoute

func (*OptimizeToursResponse) GetSkippedShipments

func (x *OptimizeToursResponse) GetSkippedShipments() []*SkippedShipment

func (*OptimizeToursResponse) GetTotalCost

func (x *OptimizeToursResponse) GetTotalCost() float64

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*OptimizeToursResponse) GetValidationErrors

func (x *OptimizeToursResponse) GetValidationErrors() []*OptimizeToursValidationError

func (*OptimizeToursResponse) ProtoMessage

func (*OptimizeToursResponse) ProtoMessage()

func (*OptimizeToursResponse) ProtoReflect

func (x *OptimizeToursResponse) ProtoReflect() protoreflect.Message

func (*OptimizeToursResponse) Reset

func (x *OptimizeToursResponse) Reset()

func (*OptimizeToursResponse) String

func (x *OptimizeToursResponse) String() string

OptimizeToursResponse_Metrics

type OptimizeToursResponse_Metrics struct {
	AggregatedRouteMetrics *AggregatedMetrics "" /* 129 byte string literal not displayed */

	SkippedMandatoryShipmentCount int32 "" /* 153 byte string literal not displayed */

	UsedVehicleCount int32 `protobuf:"varint,3,opt,name=used_vehicle_count,json=usedVehicleCount,proto3" json:"used_vehicle_count,omitempty"`

	EarliestVehicleStartTime *timestamppb.Timestamp "" /* 137 byte string literal not displayed */

	LatestVehicleEndTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=latest_vehicle_end_time,json=latestVehicleEndTime,proto3" json:"latest_vehicle_end_time,omitempty"`

	Costs map[string]float64 "" /* 154 byte string literal not displayed */

	TotalCost float64 `protobuf:"fixed64,6,opt,name=total_cost,json=totalCost,proto3" json:"total_cost,omitempty"`

}

Overall metrics, aggregated over all routes.

func (*OptimizeToursResponse_Metrics) Descriptor

func (*OptimizeToursResponse_Metrics) Descriptor() ([]byte, []int)

Deprecated: Use OptimizeToursResponse_Metrics.ProtoReflect.Descriptor instead.

func (*OptimizeToursResponse_Metrics) GetAggregatedRouteMetrics

func (x *OptimizeToursResponse_Metrics) GetAggregatedRouteMetrics() *AggregatedMetrics

func (*OptimizeToursResponse_Metrics) GetCosts

func (x *OptimizeToursResponse_Metrics) GetCosts() map[string]float64

func (*OptimizeToursResponse_Metrics) GetEarliestVehicleStartTime

func (x *OptimizeToursResponse_Metrics) GetEarliestVehicleStartTime() *timestamppb.Timestamp

func (*OptimizeToursResponse_Metrics) GetLatestVehicleEndTime

func (x *OptimizeToursResponse_Metrics) GetLatestVehicleEndTime() *timestamppb.Timestamp

func (*OptimizeToursResponse_Metrics) GetSkippedMandatoryShipmentCount

func (x *OptimizeToursResponse_Metrics) GetSkippedMandatoryShipmentCount() int32

func (*OptimizeToursResponse_Metrics) GetTotalCost

func (x *OptimizeToursResponse_Metrics) GetTotalCost() float64

func (*OptimizeToursResponse_Metrics) GetUsedVehicleCount

func (x *OptimizeToursResponse_Metrics) GetUsedVehicleCount() int32

func (*OptimizeToursResponse_Metrics) ProtoMessage

func (*OptimizeToursResponse_Metrics) ProtoMessage()

func (*OptimizeToursResponse_Metrics) ProtoReflect

func (*OptimizeToursResponse_Metrics) Reset

func (x *OptimizeToursResponse_Metrics) Reset()

func (*OptimizeToursResponse_Metrics) String

OptimizeToursValidationError

type OptimizeToursValidationError struct {

	// A validation error is defined by the pair (`code`, `display_name`) which
	// are always present.
	//
	// Other fields (below) provide more context about the error.
	//
	// *MULTIPLE ERRORS*:
	// When there are multiple errors, the validation process tries to output
	// several of them. Much like a compiler, this is an imperfect process. Some
	// validation errors will be "fatal", meaning that they stop the entire
	// validation process. This is the case for `display_name="UNSPECIFIED"`
	// errors, among others. Some may cause the validation process to skip other
	// errors.
	//
	// *STABILITY*:
	// `code` and `display_name` should be very stable. But new codes and
	// display names may appear over time, which may cause a given (invalid)
	// request to yield a different (`code`, `display_name`) pair because the new
	// error hid the old one (see "MULTIPLE ERRORS").
	//
	// *REFERENCE*: A list of all (code, name) pairs:
	//
	// * UNSPECIFIED = 0;
	// * VALIDATION_TIMEOUT_ERROR = 10; Validation couldn't be completed within
	// the deadline.
	//
	// * REQUEST_OPTIONS_ERROR = 12;
	//   - REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201;
	//   - REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
	//   - REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204;
	//   - REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 1205;
	//   - REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_SECOND = 1206;
	//   - REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE
	//     = 1207;
	//   - REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208;
	//   - REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211;
	//   - REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212;
	//   - REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213;
	//   - REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214;
	//   - REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215;
	//   - REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216;
	//   - REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217;
	//
	// * INJECTED_SOLUTION_ERROR = 20;
	//   - INJECTED_SOLUTION_MISSING_LABEL = 2000;
	//   - INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
	//   - INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
	//   - INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003;
	//   - INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004;
	//   - INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005;
	//   - INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006;
	//   - INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008;
	//   - INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
	//
	// * SHIPMENT_MODEL_ERROR = 22;
	//   - SHIPMENT_MODEL_TOO_LARGE = 2200;
	//   - SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
	//   - SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
	//   - SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
	//   - SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204;
	//   - SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
	//   - SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
	//   - SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
	//
	// * INDEX_ERROR = 24;
	// * TAG_ERROR = 26;
	// * TIME_WINDOW_ERROR = 28;
	//   - TIME_WINDOW_INVALID_START_TIME = 2800;
	//   - TIME_WINDOW_INVALID_END_TIME = 2801;
	//   - TIME_WINDOW_INVALID_SOFT_START_TIME = 2802;
	//   - TIME_WINDOW_INVALID_SOFT_END_TIME = 2803;
	//   - TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804;
	//   - TIME_WINDOW_START_TIME_AFTER_END_TIME = 2805;
	//   - TIME_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806;
	//   - TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807;
	//   - TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME
	//     = 2808;
	//   - TIME_WINDOW_COST_AFTER_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809;
	//   - TIME_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME
	//     = 2810;
	//   - TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_AFTER_SOFT_END_TIME = 2811;
	//   - TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812;
	//   - TIME_WINDOW_START_TIME_AFTER_SOFT_START_TIME = 2813;
	//   - TIME_WINDOW_SOFT_START_TIME_AFTER_END_TIME = 2814;
	//   - TIME_WINDOW_START_TIME_AFTER_SOFT_END_TIME = 2815;
	//   - TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816;
	//   - TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS
	//     = 2817;
	//   - TIME_WINDOW_COST_AFTER_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818;
	//   - TRANSITION_ATTRIBUTES_ERROR = 30;
	//   - TRANSITION_ATTRIBUTES_INVALID_COST = 3000;
	//   - TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001;
	//   - TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002;
	//   - TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_METERS_UNSUPPORTED = 3003;
	//   - TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004;
	//   - TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005;
	//   - TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006;
	//   - TRANSITION_ATTRIBUTES_CONFLICTING_DESTINATION_TAGS_FIELDS = 3007;
	//   - TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008;
	//   - TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009;
	//
	// * AMOUNT_ERROR = 31;
	//   - AMOUNT_NEGATIVE_VALUE = 3100;
	//
	// * LOAD_LIMIT_ERROR = 33;
	//   - LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303;
	//   - LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304;
	//   - LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305;
	//   - LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306;
	//   - LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307;
	//   - LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308;
	//   - LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3309;
	//
	// * INTERVAL_ERROR = 34;
	//   - INTERVAL_MIN_EXCEEDS_MAX = 3401;
	//   - INTERVAL_NEGATIVE_MIN = 3402;
	//   - INTERVAL_NEGATIVE_MAX = 3403;
	//   - INTERVAL_MIN_EXCEEDS_CAPACITY = 3404;
	//   - INTERVAL_MAX_EXCEEDS_CAPACITY = 3405;
	//
	// * DISTANCE_LIMIT_ERROR = 36;
	//   - DISTANCE_LIMIT_INVALID_COST_AFTER_SOFT_MAX = 3601;
	//   - DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602;
	//   - DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603;
	//   - DISTANCE_LIMIT_NEGATIVE_MAX = 3604;
	//   - DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605;
	//   - DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
	//
	// * DURATION_LIMIT_ERROR = 38;
	//   - DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
	//   - DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801;
	//   - DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802;
	//   - DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803;
	//   - DURATION_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3804;
	//   - DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805;
	//   - DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806;
	//   - DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR
	//     = 3807;
	//   - DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX
	//     = 3808;
	//   - DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809;
	//   - DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810;
	//   - DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811;
	//   - DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE
	//     = 3812;
	//   - DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813;
	//   - DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814;
	//   - DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION
	//     = 3815;
	//
	// * SHIPMENT_ERROR = 40;
	//   - SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014;
	//   - SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
	//   - SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION
	//     = 4001;
	//   - SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
	//   - SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016;
	//   - SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
	//   - SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003;
	//   - SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004;
	//   - SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005;
	//   - SHIPMENT_INVALID_PENALTY_COST = 4006;
	//   - SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007;
	//   - SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
	//   - SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009;
	//   - SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010;
	//   - SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011;
	//   - SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012;
	//   - SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013;
	//
	// * VEHICLE_ERROR = 42;
	//   - VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200;
	//   - VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201;
	//   - VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202;
	//   - VEHICLE_EMPTY_START_TAG = 4203;
	//   - VEHICLE_DUPLICATE_START_TAG = 4204;
	//   - VEHICLE_EMPTY_END_TAG = 4205;
	//   - VEHICLE_DUPLICATE_END_TAG = 4206;
	//   - VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207;
	//   - VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208;
	//   - VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209;
	//   - VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210;
	//   - VEHICLE_FIRST_SHIPMENT_IGNORED = 4211;
	//   - VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212;
	//   - VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213;
	//   - VEHICLE_LAST_SHIPMENT_IGNORED = 4214;
	//   - VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215;
	//   - VEHICLE_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216;
	//   - VEHICLE_INVALID_COST_PER_KILOMETER = 4217;
	//   - VEHICLE_INVALID_COST_PER_HOUR = 4218;
	//   - VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219;
	//   - VEHICLE_INVALID_FIXED_COST = 4220;
	//   - VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221;
	//   - VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS
	//     = 4223;
	//   - VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224;
	//   - VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222;
	//
	// * VISIT_REQUEST_ERROR = 44;
	//   - VISIT_REQUEST_EMPTY_TAG = 4400;
	//   - VISIT_REQUEST_DUPLICATE_TAG = 4401;
	//   - VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404;
	//   - VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405;
	//
	// * PRECEDENCE_ERROR = 46;
	//   - PRECEDENCE_RULE_MISSING_FIRST_INDEX = 4600;
	//   - PRECEDENCE_RULE_MISSING_SECOND_INDEX = 4601;
	//   - PRECEDENCE_RULE_FIRST_INDEX_OUT_OF_BOUNDS = 4602;
	//   - PRECEDENCE_RULE_SECOND_INDEX_OUT_OF_BOUNDS = 4603;
	//   - PRECEDENCE_RULE_DUPLICATE_INDEX = 4604;
	//   - PRECEDENCE_RULE_INEXISTENT_FIRST_VISIT_REQUEST = 4605;
	//   - PRECEDENCE_RULE_INEXISTENT_SECOND_VISIT_REQUEST = 4606;
	//
	// * BREAK_ERROR = 48;
	//   - BREAK_RULE_EMPTY = 4800;
	//   - BREAK_REQUEST_UNSPECIFIED_DURATION = 4801;
	//   - BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802;
	//   - BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803;
	//   - BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804;
	//   - BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805;
	//   - BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806;
	//   - BREAK_REQUEST_LATEST_END_TIME_AFTER_GLOBAL_END_TIME = 4807;
	//   - BREAK_REQUEST_NON_SCHEDULABLE = 4808;
	//   - BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809;
	//   - BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
	//   - BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811;
	//   - BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION
	//     = 4812;
	//   - BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813;
	//   - BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814;
	//   - BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815;
	//
	// * SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50;
	//   - SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
	//   - SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
	//   - SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
	//   - SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004;
	//   - SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005;
	//
	// * SHIPMENT_TYPE_REQUIREMENT_ERROR = 52;
	//   - SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
	//   - SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002;
	//   - SHIPMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003;
	//   - SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004;
	//   - SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005;
	//   - SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006;
	//   - SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007;
	//   - SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008;
	//   - SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009;
	//   - SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010;
	//   - SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011;
	//
	// * VEHICLE_OPERATOR_ERROR = 54;
	//   - VEHICLE_OPERATOR_EMPTY_TYPE = 5400;
	//   - VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401;
	//   - VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402;
	//   - VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403;
	//   - VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404;
	//
	// * DURATION_SECONDS_MATRIX_ERROR = 56;
	//   - DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600;
	//   - DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601;
	Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	// The error display name.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// An error context may involve 0, 1 (most of the time) or more fields. For
	// example, referring to vehicle #4 and shipment #2's first pickup can be
	// done as follows:
	// ```
	// fields { name: "vehicles" index: 4}
	// fields { name: "shipments" index: 2 sub_field {name: "pickups" index: 0} }
	// ```
	// Note, however, that the cardinality of `fields` should not change for a
	// given error code.
	Fields []*OptimizeToursValidationError_FieldReference `protobuf:"bytes,3,rep,name=fields,proto3" json:"fields,omitempty"`
	// Human-readable string describing the error. There is a 1:1 mapping
	// between `code` and `error_message` (when code != "UNSPECIFIED").
	//
	// *STABILITY*: Not stable: the error message associated to a given `code` may
	// change (hopefully to clarify it) over time. Please rely on the
	// `display_name` and `code` instead.
	ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// May contain the value(s) of the field(s). This is not always available. You
	// should absolutely not rely on it and use it only for manual model
	// debugging.
	OffendingValues string `protobuf:"bytes,5,opt,name=offending_values,json=offendingValues,proto3" json:"offending_values,omitempty"`
	// contains filtered or unexported fields
}

Describes an error encountered when validating an OptimizeToursRequest.

func (*OptimizeToursValidationError) Descriptor

func (*OptimizeToursValidationError) Descriptor() ([]byte, []int)

Deprecated: Use OptimizeToursValidationError.ProtoReflect.Descriptor instead.

func (*OptimizeToursValidationError) GetCode

func (x *OptimizeToursValidationError) GetCode() int32

func (*OptimizeToursValidationError) GetDisplayName

func (x *OptimizeToursValidationError) GetDisplayName() string

func (*OptimizeToursValidationError) GetErrorMessage

func (x *OptimizeToursValidationError) GetErrorMessage() string

func (*OptimizeToursValidationError) GetFields

func (*OptimizeToursValidationError) GetOffendingValues

func (x *OptimizeToursValidationError) GetOffendingValues() string

func (*OptimizeToursValidationError) ProtoMessage

func (*OptimizeToursValidationError) ProtoMessage()

func (*OptimizeToursValidationError) ProtoReflect

func (*OptimizeToursValidationError) Reset

func (x *OptimizeToursValidationError) Reset()

func (*OptimizeToursValidationError) String

OptimizeToursValidationError_FieldReference

type OptimizeToursValidationError_FieldReference struct {

	// Name of the field, e.g., "vehicles".
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to IndexOrKey:
	//
	//	*OptimizeToursValidationError_FieldReference_Index
	//	*OptimizeToursValidationError_FieldReference_Key
	IndexOrKey isOptimizeToursValidationError_FieldReference_IndexOrKey `protobuf_oneof:"index_or_key"`
	// Recursively nested sub-field, if needed.
	SubField *OptimizeToursValidationError_FieldReference `protobuf:"bytes,3,opt,name=sub_field,json=subField,proto3" json:"sub_field,omitempty"`
	// contains filtered or unexported fields
}

Specifies a context for the validation error. A FieldReference always refers to a given field in this file and follows the same hierarchical structure. For example, we may specify element #2 of start_time_windows of vehicle #5 using:

name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }

We however omit top-level entities such as OptimizeToursRequest or ShipmentModel to avoid crowding the message.

func (*OptimizeToursValidationError_FieldReference) Descriptor

Deprecated: Use OptimizeToursValidationError_FieldReference.ProtoReflect.Descriptor instead.

func (*OptimizeToursValidationError_FieldReference) GetIndex

func (*OptimizeToursValidationError_FieldReference) GetIndexOrKey

func (m *OptimizeToursValidationError_FieldReference) GetIndexOrKey() isOptimizeToursValidationError_FieldReference_IndexOrKey

func (*OptimizeToursValidationError_FieldReference) GetKey

func (*OptimizeToursValidationError_FieldReference) GetName

func (*OptimizeToursValidationError_FieldReference) GetSubField

func (*OptimizeToursValidationError_FieldReference) ProtoMessage

func (*OptimizeToursValidationError_FieldReference) ProtoReflect

func (*OptimizeToursValidationError_FieldReference) Reset

func (*OptimizeToursValidationError_FieldReference) String

OptimizeToursValidationError_FieldReference_Index

type OptimizeToursValidationError_FieldReference_Index struct {
	// Index of the field if repeated.
	Index int32 `protobuf:"varint,2,opt,name=index,proto3,oneof"`
}

OptimizeToursValidationError_FieldReference_Key

type OptimizeToursValidationError_FieldReference_Key struct {
	// Key if the field is a map.
	Key string `protobuf:"bytes,4,opt,name=key,proto3,oneof"`
}

OutputConfig

type OutputConfig struct {
	Destination isOutputConfig_Destination `protobuf_oneof:"destination"`

	DataFormat DataFormat "" /* 137 byte string literal not displayed */

}

The desired output location.

func (*OutputConfig) Descriptor

func (*OutputConfig) Descriptor() ([]byte, []int)

Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead.

func (*OutputConfig) GetDataFormat

func (x *OutputConfig) GetDataFormat() DataFormat

func (*OutputConfig) GetDestination

func (m *OutputConfig) GetDestination() isOutputConfig_Destination

func (*OutputConfig) GetGcsDestination

func (x *OutputConfig) GetGcsDestination() *GcsDestination

func (*OutputConfig) ProtoMessage

func (*OutputConfig) ProtoMessage()

func (*OutputConfig) ProtoReflect

func (x *OutputConfig) ProtoReflect() protoreflect.Message

func (*OutputConfig) Reset

func (x *OutputConfig) Reset()

func (*OutputConfig) String

func (x *OutputConfig) String() string

OutputConfig_GcsDestination

type OutputConfig_GcsDestination struct {
	// The Google Cloud Storage location to write the output to.
	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"`
}

RouteModifiers

type RouteModifiers struct {

	// Specifies whether to avoid toll roads where reasonable. Preference will be
	// given to routes not containing toll roads. Applies only to motorized travel
	// modes.
	AvoidTolls bool `protobuf:"varint,2,opt,name=avoid_tolls,json=avoidTolls,proto3" json:"avoid_tolls,omitempty"`
	// Specifies whether to avoid highways where reasonable. Preference will be
	// given to routes not containing highways. Applies only to motorized travel
	// modes.
	AvoidHighways bool `protobuf:"varint,3,opt,name=avoid_highways,json=avoidHighways,proto3" json:"avoid_highways,omitempty"`
	// Specifies whether to avoid ferries where reasonable. Preference will be
	// given to routes not containing travel by ferries. Applies only to motorized
	// travel modes.
	AvoidFerries bool `protobuf:"varint,4,opt,name=avoid_ferries,json=avoidFerries,proto3" json:"avoid_ferries,omitempty"`
	// Optional. Specifies whether to avoid navigating indoors where reasonable.
	// Preference will be given to routes not containing indoor navigation.
	// Applies only to the `WALKING` travel mode.
	AvoidIndoor bool `protobuf:"varint,5,opt,name=avoid_indoor,json=avoidIndoor,proto3" json:"avoid_indoor,omitempty"`
	// contains filtered or unexported fields
}

Encapsulates a set of optional conditions to satisfy when calculating vehicle routes. This is similar to RouteModifiers in the Google Maps Platform API; see: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.

func (*RouteModifiers) Descriptor

func (*RouteModifiers) Descriptor() ([]byte, []int)

Deprecated: Use RouteModifiers.ProtoReflect.Descriptor instead.

func (*RouteModifiers) GetAvoidFerries

func (x *RouteModifiers) GetAvoidFerries() bool

func (*RouteModifiers) GetAvoidHighways

func (x *RouteModifiers) GetAvoidHighways() bool

func (*RouteModifiers) GetAvoidIndoor

func (x *RouteModifiers) GetAvoidIndoor() bool

func (*RouteModifiers) GetAvoidTolls

func (x *RouteModifiers) GetAvoidTolls() bool

func (*RouteModifiers) ProtoMessage

func (*RouteModifiers) ProtoMessage()

func (*RouteModifiers) ProtoReflect

func (x *RouteModifiers) ProtoReflect() protoreflect.Message

func (*RouteModifiers) Reset

func (x *RouteModifiers) Reset()

func (*RouteModifiers) String

func (x *RouteModifiers) String() string

Shipment

type Shipment struct {
	Pickups []*Shipment_VisitRequest `protobuf:"bytes,1,rep,name=pickups,proto3" json:"pickups,omitempty"`

	Deliveries []*Shipment_VisitRequest `protobuf:"bytes,2,rep,name=deliveries,proto3" json:"deliveries,omitempty"`

	LoadDemands map[string]*Shipment_Load "" /* 183 byte string literal not displayed */

	PenaltyCost *float64 `protobuf:"fixed64,4,opt,name=penalty_cost,json=penaltyCost,proto3,oneof" json:"penalty_cost,omitempty"`

	AllowedVehicleIndices []int32 "" /* 134 byte string literal not displayed */

	CostsPerVehicle []float64 `protobuf:"fixed64,6,rep,packed,name=costs_per_vehicle,json=costsPerVehicle,proto3" json:"costs_per_vehicle,omitempty"`

	CostsPerVehicleIndices []int32 "" /* 139 byte string literal not displayed */

	PickupToDeliveryRelativeDetourLimit *float64 "" /* 182 byte string literal not displayed */

	PickupToDeliveryAbsoluteDetourLimit *durationpb.Duration "" /* 174 byte string literal not displayed */

	PickupToDeliveryTimeLimit *durationpb.Duration "" /* 143 byte string literal not displayed */

	ShipmentType string `protobuf:"bytes,11,opt,name=shipment_type,json=shipmentType,proto3" json:"shipment_type,omitempty"`

	Label string `protobuf:"bytes,12,opt,name=label,proto3" json:"label,omitempty"`

	Ignore bool `protobuf:"varint,13,opt,name=ignore,proto3" json:"ignore,omitempty"`

	Demands []*CapacityQuantity `protobuf:"bytes,3,rep,name=demands,proto3" json:"demands,omitempty"`

}

The shipment of a single item, from one of its pickups to one of its deliveries. For the shipment to be considered as performed, a unique vehicle must visit one of its pickup locations (and decrease its spare capacities accordingly), then visit one of its delivery locations later on (and therefore re-increase its spare capacities accordingly).

func (*Shipment) Descriptor

func (*Shipment) Descriptor() ([]byte, []int)

Deprecated: Use Shipment.ProtoReflect.Descriptor instead.

func (*Shipment) GetAllowedVehicleIndices

func (x *Shipment) GetAllowedVehicleIndices() []int32

func (*Shipment) GetCostsPerVehicle

func (x *Shipment) GetCostsPerVehicle() []float64

func (*Shipment) GetCostsPerVehicleIndices

func (x *Shipment) GetCostsPerVehicleIndices() []int32

func (*Shipment) GetDeliveries

func (x *Shipment) GetDeliveries() []*Shipment_VisitRequest

func (*Shipment) GetDemands

func (x *Shipment) GetDemands() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Shipment) GetIgnore

func (x *Shipment) GetIgnore() bool

func (*Shipment) GetLabel

func (x *Shipment) GetLabel() string

func (*Shipment) GetLoadDemands

func (x *Shipment) GetLoadDemands() map[string]*Shipment_Load

func (*Shipment) GetPenaltyCost

func (x *Shipment) GetPenaltyCost() float64

func (*Shipment) GetPickupToDeliveryAbsoluteDetourLimit

func (x *Shipment) GetPickupToDeliveryAbsoluteDetourLimit() *durationpb.Duration

func (*Shipment) GetPickupToDeliveryRelativeDetourLimit

func (x *Shipment) GetPickupToDeliveryRelativeDetourLimit() float64

func (*Shipment) GetPickupToDeliveryTimeLimit

func (x *Shipment) GetPickupToDeliveryTimeLimit() *durationpb.Duration

func (*Shipment) GetPickups

func (x *Shipment) GetPickups() []*Shipment_VisitRequest

func (*Shipment) GetShipmentType

func (x *Shipment) GetShipmentType() string

func (*Shipment) ProtoMessage

func (*Shipment) ProtoMessage()

func (*Shipment) ProtoReflect

func (x *Shipment) ProtoReflect() protoreflect.Message

func (*Shipment) Reset

func (x *Shipment) Reset()

func (*Shipment) String

func (x *Shipment) String() string

ShipmentModel

type ShipmentModel struct {
	Shipments []*Shipment `protobuf:"bytes,1,rep,name=shipments,proto3" json:"shipments,omitempty"`

	Vehicles []*Vehicle `protobuf:"bytes,2,rep,name=vehicles,proto3" json:"vehicles,omitempty"`

	MaxActiveVehicles *int32 `protobuf:"varint,4,opt,name=max_active_vehicles,json=maxActiveVehicles,proto3,oneof" json:"max_active_vehicles,omitempty"`

	GlobalStartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=global_start_time,json=globalStartTime,proto3" json:"global_start_time,omitempty"`

	GlobalEndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=global_end_time,json=globalEndTime,proto3" json:"global_end_time,omitempty"`

	GlobalDurationCostPerHour float64 "" /* 144 byte string literal not displayed */

	DurationDistanceMatrices []*ShipmentModel_DurationDistanceMatrix "" /* 135 byte string literal not displayed */

	DurationDistanceMatrixSrcTags []string "" /* 154 byte string literal not displayed */

	DurationDistanceMatrixDstTags []string "" /* 155 byte string literal not displayed */

	TransitionAttributes []*TransitionAttributes `protobuf:"bytes,11,rep,name=transition_attributes,json=transitionAttributes,proto3" json:"transition_attributes,omitempty"`

	ShipmentTypeIncompatibilities []*ShipmentTypeIncompatibility "" /* 151 byte string literal not displayed */

	ShipmentTypeRequirements []*ShipmentTypeRequirement "" /* 136 byte string literal not displayed */

	PrecedenceRules []*ShipmentModel_PrecedenceRule `protobuf:"bytes,14,rep,name=precedence_rules,json=precedenceRules,proto3" json:"precedence_rules,omitempty"`

	BreakRules []*ShipmentModel_BreakRule `protobuf:"bytes,15,rep,name=break_rules,json=breakRules,proto3" json:"break_rules,omitempty"`

}

A shipment model contains a set of shipments which must be performed by a set of vehicles, while minimizing the overall cost, which is the sum of:

  • the cost of routing the vehicles (sum of cost per total time, cost per travel time, and fixed cost over all vehicles).
  • the unperformed shipment penalties.
  • the cost of the global duration of the shipments

func (*ShipmentModel) Descriptor

func (*ShipmentModel) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel.ProtoReflect.Descriptor instead.

func (*ShipmentModel) GetBreakRules

func (x *ShipmentModel) GetBreakRules() []*ShipmentModel_BreakRule

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentModel) GetDurationDistanceMatrices

func (x *ShipmentModel) GetDurationDistanceMatrices() []*ShipmentModel_DurationDistanceMatrix

func (*ShipmentModel) GetDurationDistanceMatrixDstTags

func (x *ShipmentModel) GetDurationDistanceMatrixDstTags() []string

func (*ShipmentModel) GetDurationDistanceMatrixSrcTags

func (x *ShipmentModel) GetDurationDistanceMatrixSrcTags() []string

func (*ShipmentModel) GetGlobalDurationCostPerHour

func (x *ShipmentModel) GetGlobalDurationCostPerHour() float64

func (*ShipmentModel) GetGlobalEndTime

func (x *ShipmentModel) GetGlobalEndTime() *timestamppb.Timestamp

func (*ShipmentModel) GetGlobalStartTime

func (x *ShipmentModel) GetGlobalStartTime() *timestamppb.Timestamp

func (*ShipmentModel) GetMaxActiveVehicles

func (x *ShipmentModel) GetMaxActiveVehicles() int32

func (*ShipmentModel) GetPrecedenceRules

func (x *ShipmentModel) GetPrecedenceRules() []*ShipmentModel_PrecedenceRule

func (*ShipmentModel) GetShipmentTypeIncompatibilities

func (x *ShipmentModel) GetShipmentTypeIncompatibilities() []*ShipmentTypeIncompatibility

func (*ShipmentModel) GetShipmentTypeRequirements

func (x *ShipmentModel) GetShipmentTypeRequirements() []*ShipmentTypeRequirement

func (*ShipmentModel) GetShipments

func (x *ShipmentModel) GetShipments() []*Shipment

func (*ShipmentModel) GetTransitionAttributes

func (x *ShipmentModel) GetTransitionAttributes() []*TransitionAttributes

func (*ShipmentModel) GetVehicles

func (x *ShipmentModel) GetVehicles() []*Vehicle

func (*ShipmentModel) ProtoMessage

func (*ShipmentModel) ProtoMessage()

func (*ShipmentModel) ProtoReflect

func (x *ShipmentModel) ProtoReflect() protoreflect.Message

func (*ShipmentModel) Reset

func (x *ShipmentModel) Reset()

func (*ShipmentModel) String

func (x *ShipmentModel) String() string

ShipmentModel_BreakRule (deprecated)

type ShipmentModel_BreakRule struct {

	// Sequence of breaks. See the `BreakRequest` message.
	BreakRequests []*ShipmentModel_BreakRule_BreakRequest `protobuf:"bytes,1,rep,name=break_requests,json=breakRequests,proto3" json:"break_requests,omitempty"`
	// Several `FrequencyConstraint` may apply. They must all be satisfied by
	// the `BreakRequest`s of this `BreakRule`. See `FrequencyConstraint`.
	FrequencyConstraints []*ShipmentModel_BreakRule_FrequencyConstraint `protobuf:"bytes,2,rep,name=frequency_constraints,json=frequencyConstraints,proto3" json:"frequency_constraints,omitempty"`
	// contains filtered or unexported fields
}

Deprecated: Use top level [BreakRule][google.cloud.optimization.v1.ShipmentModel.BreakRule] instead. Rules to generate time breaks for a vehicle (e.g. lunch breaks). A break is a contiguous period of time during which the vehicle remains idle at its current position and cannot perform any visit. A break may occur:

  • during the travel between two visits (which includes the time right before or right after a visit, but not in the middle of a visit), in which case it extends the corresponding transit time between the visits
  • before the vehicle start (the vehicle may not start in the middle of a break), in which case it does not affect the vehicle start time.
  • after the vehicle end (ditto, with the vehicle end time).

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentModel_BreakRule) Descriptor (deprecated)

func (*ShipmentModel_BreakRule) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel_BreakRule.ProtoReflect.Descriptor instead.

func (*ShipmentModel_BreakRule) GetBreakRequests (deprecated)

func (*ShipmentModel_BreakRule) GetFrequencyConstraints (deprecated)

func (*ShipmentModel_BreakRule) ProtoMessage (deprecated)

func (*ShipmentModel_BreakRule) ProtoMessage()

func (*ShipmentModel_BreakRule) ProtoReflect (deprecated)

func (x *ShipmentModel_BreakRule) ProtoReflect() protoreflect.Message

func (*ShipmentModel_BreakRule) Reset (deprecated)

func (x *ShipmentModel_BreakRule) Reset()

func (*ShipmentModel_BreakRule) String (deprecated)

func (x *ShipmentModel_BreakRule) String() string

ShipmentModel_BreakRule_BreakRequest

type ShipmentModel_BreakRule_BreakRequest struct {

	// Required. Lower bound (inclusive) on the start of the break.
	EarliestStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=earliest_start_time,json=earliestStartTime,proto3" json:"earliest_start_time,omitempty"`
	// Required. Upper bound (inclusive) on the start of the break.
	LatestStartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=latest_start_time,json=latestStartTime,proto3" json:"latest_start_time,omitempty"`
	// Required. Minimum duration of the break. Must be positive.
	MinDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=min_duration,json=minDuration,proto3" json:"min_duration,omitempty"`
	// contains filtered or unexported fields
}

The sequence of breaks (i.e. their number and order) that apply to each vehicle must be known beforehand. The repeated BreakRequests define that sequence, in the order in which they must occur. Their time windows (earliest_start_time / latest_start_time) may overlap, but they must be compatible with the order (this is checked).

func (*ShipmentModel_BreakRule_BreakRequest) Descriptor

func (*ShipmentModel_BreakRule_BreakRequest) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel_BreakRule_BreakRequest.ProtoReflect.Descriptor instead.

func (*ShipmentModel_BreakRule_BreakRequest) GetEarliestStartTime

func (x *ShipmentModel_BreakRule_BreakRequest) GetEarliestStartTime() *timestamppb.Timestamp

func (*ShipmentModel_BreakRule_BreakRequest) GetLatestStartTime

func (*ShipmentModel_BreakRule_BreakRequest) GetMinDuration

func (*ShipmentModel_BreakRule_BreakRequest) ProtoMessage

func (*ShipmentModel_BreakRule_BreakRequest) ProtoMessage()

func (*ShipmentModel_BreakRule_BreakRequest) ProtoReflect

func (*ShipmentModel_BreakRule_BreakRequest) Reset

func (*ShipmentModel_BreakRule_BreakRequest) String

ShipmentModel_BreakRule_FrequencyConstraint

type ShipmentModel_BreakRule_FrequencyConstraint struct {
	MinBreakDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=min_break_duration,json=minBreakDuration,proto3" json:"min_break_duration,omitempty"`

	MaxInterBreakDuration *durationpb.Duration "" /* 128 byte string literal not displayed */

}

One may further constrain the frequency and duration of the breaks specified above, by enforcing a minimum break frequency, such as "There must be a break of at least 1 hour every 12 hours". Assuming that this can be interpreted as "Within any sliding time window of 12h, there must be at least one break of at least one hour", that example would translate to the following FrequencyConstraint:


    {
       min_break_duration { seconds: 3600 }         # 1 hour.
       max_inter_break_duration { seconds: 39600 }  # 11 hours (12 - 1 = 11).
    }

The timing and duration of the breaks in the solution will respect all such constraints, in addition to the time windows and minimum durations already specified in the BreakRequest.

A FrequencyConstraint may in practice apply to non-consecutive breaks. For example, the following schedule honors the "1h every 12h" example:


    04:00 vehicle start
     .. performing travel and visits ..
    09:00 1 hour break
    10:00 end of the break
     .. performing travel and visits ..
    12:00 20-min lunch break
    12:20 end of the break
     .. performing travel and visits ..
    21:00 1 hour break
    22:00 end of the break
     .. performing travel and visits ..
    23:59 vehicle end

func (*ShipmentModel_BreakRule_FrequencyConstraint) Descriptor

Deprecated: Use ShipmentModel_BreakRule_FrequencyConstraint.ProtoReflect.Descriptor instead.

func (*ShipmentModel_BreakRule_FrequencyConstraint) GetMaxInterBreakDuration

func (x *ShipmentModel_BreakRule_FrequencyConstraint) GetMaxInterBreakDuration() *durationpb.Duration

func (*ShipmentModel_BreakRule_FrequencyConstraint) GetMinBreakDuration

func (*ShipmentModel_BreakRule_FrequencyConstraint) ProtoMessage

func (*ShipmentModel_BreakRule_FrequencyConstraint) ProtoReflect

func (*ShipmentModel_BreakRule_FrequencyConstraint) Reset

func (*ShipmentModel_BreakRule_FrequencyConstraint) String

ShipmentModel_DurationDistanceMatrix

type ShipmentModel_DurationDistanceMatrix struct {

	// Specifies the rows of the duration and distance matrix. It must have as
	// many elements as
	// [ShipmentModel.duration_distance_matrix_src_tags][google.cloud.optimization.v1.ShipmentModel.duration_distance_matrix_src_tags].
	Rows []*ShipmentModel_DurationDistanceMatrix_Row `protobuf:"bytes,1,rep,name=rows,proto3" json:"rows,omitempty"`
	// Tag defining to which vehicles this duration and distance matrix applies.
	// If empty, this applies to all vehicles, and there can only be a single
	// matrix.
	//
	// Each vehicle start must match exactly one matrix, i.e. exactly one of
	// their `start_tags` field must match the `vehicle_start_tag` of a matrix
	// (and of that matrix only).
	//
	// All matrices must have a different `vehicle_start_tag`.
	VehicleStartTag string `protobuf:"bytes,2,opt,name=vehicle_start_tag,json=vehicleStartTag,proto3" json:"vehicle_start_tag,omitempty"`
	// contains filtered or unexported fields
}

Specifies a duration and distance matrix from visit and vehicle start locations to visit and vehicle end locations.

func (*ShipmentModel_DurationDistanceMatrix) Descriptor

func (*ShipmentModel_DurationDistanceMatrix) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel_DurationDistanceMatrix.ProtoReflect.Descriptor instead.

func (*ShipmentModel_DurationDistanceMatrix) GetRows

func (*ShipmentModel_DurationDistanceMatrix) GetVehicleStartTag

func (x *ShipmentModel_DurationDistanceMatrix) GetVehicleStartTag() string

func (*ShipmentModel_DurationDistanceMatrix) ProtoMessage

func (*ShipmentModel_DurationDistanceMatrix) ProtoMessage()

func (*ShipmentModel_DurationDistanceMatrix) ProtoReflect

func (*ShipmentModel_DurationDistanceMatrix) Reset

func (*ShipmentModel_DurationDistanceMatrix) String

ShipmentModel_DurationDistanceMatrix_Row

type ShipmentModel_DurationDistanceMatrix_Row struct {

	// Duration values for a given row. It must have as many elements as
	// [ShipmentModel.duration_distance_matrix_dst_tags][google.cloud.optimization.v1.ShipmentModel.duration_distance_matrix_dst_tags].
	Durations []*durationpb.Duration `protobuf:"bytes,1,rep,name=durations,proto3" json:"durations,omitempty"`
	// Distance values for a given row. If no costs or constraints refer to
	// distances in the model, this can be left empty; otherwise it must have
	// as many elements as `durations`.
	Meters []float64 `protobuf:"fixed64,2,rep,packed,name=meters,proto3" json:"meters,omitempty"`
	// contains filtered or unexported fields
}

Specifies a row of the duration and distance matrix.

func (*ShipmentModel_DurationDistanceMatrix_Row) Descriptor

func (*ShipmentModel_DurationDistanceMatrix_Row) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel_DurationDistanceMatrix_Row.ProtoReflect.Descriptor instead.

func (*ShipmentModel_DurationDistanceMatrix_Row) GetDurations

func (*ShipmentModel_DurationDistanceMatrix_Row) GetMeters

func (*ShipmentModel_DurationDistanceMatrix_Row) ProtoMessage

func (*ShipmentModel_DurationDistanceMatrix_Row) ProtoReflect

func (*ShipmentModel_DurationDistanceMatrix_Row) Reset

func (*ShipmentModel_DurationDistanceMatrix_Row) String

ShipmentModel_PrecedenceRule

type ShipmentModel_PrecedenceRule struct {

	// Shipment index of the "first" event. This field must be specified.
	FirstIndex *int32 `protobuf:"varint,1,opt,name=first_index,json=firstIndex,proto3,oneof" json:"first_index,omitempty"`
	// Indicates if the "first" event is a delivery.
	FirstIsDelivery bool `protobuf:"varint,3,opt,name=first_is_delivery,json=firstIsDelivery,proto3" json:"first_is_delivery,omitempty"`
	// Shipment index of the "second" event. This field must be specified.
	SecondIndex *int32 `protobuf:"varint,2,opt,name=second_index,json=secondIndex,proto3,oneof" json:"second_index,omitempty"`
	// Indicates if the "second" event is a delivery.
	SecondIsDelivery bool `protobuf:"varint,4,opt,name=second_is_delivery,json=secondIsDelivery,proto3" json:"second_is_delivery,omitempty"`
	// The offset between the "first" and "second" event. It can be negative.
	OffsetDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=offset_duration,json=offsetDuration,proto3" json:"offset_duration,omitempty"`
	// contains filtered or unexported fields
}

A precedence rule between two events (each event is the pickup or the delivery of a shipment): the "second" event has to start at least offset_duration after "first" has started.

Several precedences can refer to the same (or related) events, e.g., "pickup of B happens after delivery of A" and "pickup of C happens after pickup of B".

Furthermore, precedences only apply when both shipments are performed and are otherwise ignored.

func (*ShipmentModel_PrecedenceRule) Descriptor

func (*ShipmentModel_PrecedenceRule) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentModel_PrecedenceRule.ProtoReflect.Descriptor instead.

func (*ShipmentModel_PrecedenceRule) GetFirstIndex

func (x *ShipmentModel_PrecedenceRule) GetFirstIndex() int32

func (*ShipmentModel_PrecedenceRule) GetFirstIsDelivery

func (x *ShipmentModel_PrecedenceRule) GetFirstIsDelivery() bool

func (*ShipmentModel_PrecedenceRule) GetOffsetDuration

func (x *ShipmentModel_PrecedenceRule) GetOffsetDuration() *durationpb.Duration

func (*ShipmentModel_PrecedenceRule) GetSecondIndex

func (x *ShipmentModel_PrecedenceRule) GetSecondIndex() int32

func (*ShipmentModel_PrecedenceRule) GetSecondIsDelivery

func (x *ShipmentModel_PrecedenceRule) GetSecondIsDelivery() bool

func (*ShipmentModel_PrecedenceRule) ProtoMessage

func (*ShipmentModel_PrecedenceRule) ProtoMessage()

func (*ShipmentModel_PrecedenceRule) ProtoReflect

func (*ShipmentModel_PrecedenceRule) Reset

func (x *ShipmentModel_PrecedenceRule) Reset()

func (*ShipmentModel_PrecedenceRule) String

ShipmentRoute

type ShipmentRoute struct {
	VehicleIndex int32 `protobuf:"varint,1,opt,name=vehicle_index,json=vehicleIndex,proto3" json:"vehicle_index,omitempty"`

	VehicleLabel string `protobuf:"bytes,2,opt,name=vehicle_label,json=vehicleLabel,proto3" json:"vehicle_label,omitempty"`

	VehicleStartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=vehicle_start_time,json=vehicleStartTime,proto3" json:"vehicle_start_time,omitempty"`

	VehicleEndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=vehicle_end_time,json=vehicleEndTime,proto3" json:"vehicle_end_time,omitempty"`

	Visits []*ShipmentRoute_Visit `protobuf:"bytes,7,rep,name=visits,proto3" json:"visits,omitempty"`

	Transitions []*ShipmentRoute_Transition `protobuf:"bytes,8,rep,name=transitions,proto3" json:"transitions,omitempty"`

	HasTrafficInfeasibilities bool "" /* 139 byte string literal not displayed */

	RoutePolyline *ShipmentRoute_EncodedPolyline `protobuf:"bytes,10,opt,name=route_polyline,json=routePolyline,proto3" json:"route_polyline,omitempty"`

	Breaks []*ShipmentRoute_Break `protobuf:"bytes,11,rep,name=breaks,proto3" json:"breaks,omitempty"`

	Metrics *AggregatedMetrics `protobuf:"bytes,12,opt,name=metrics,proto3" json:"metrics,omitempty"`

	RouteCosts map[string]float64 "" /* 182 byte string literal not displayed */

	RouteTotalCost float64 `protobuf:"fixed64,18,opt,name=route_total_cost,json=routeTotalCost,proto3" json:"route_total_cost,omitempty"`

	EndLoads []*CapacityQuantity `protobuf:"bytes,13,rep,name=end_loads,json=endLoads,proto3" json:"end_loads,omitempty"`

	TravelSteps []*ShipmentRoute_TravelStep `protobuf:"bytes,14,rep,name=travel_steps,json=travelSteps,proto3" json:"travel_steps,omitempty"`

	VehicleDetour *durationpb.Duration `protobuf:"bytes,15,opt,name=vehicle_detour,json=vehicleDetour,proto3" json:"vehicle_detour,omitempty"`

	DelayBeforeVehicleEnd *ShipmentRoute_Delay "" /* 129 byte string literal not displayed */

}

A vehicle's route can be decomposed, along the time axis, like this (we assume there are n visits):


    |            |            |          |       |  T[2], |        |      |
    | Transition |  Visit #0  |          |       |  V[2], |        |      |
    |     #0     |    aka     |   T[1]   |  V[1] |  ...   | V[n-1] | T[n] |
    |  aka T[0]  |    V[0]    |          |       | V[n-2],|        |      |
    |            |            |          |       | T[n-1] |        |      |
    ^            ^            ^          ^       ^        ^        ^      ^

vehicle    V[0].start   V[0].end     V[1].   V[1].    V[n].    V[n]. vehicle

    start     (arrival)   (departure)   start   end      start    end     end

Note that we make a difference between:

  • "punctual events", such as the vehicle start and end and each visit's start and end (aka arrival and departure). They happen at a given second.
  • "time intervals", such as the visits themselves, and the transition between visits. Though time intervals can sometimes have zero duration, i.e. start and end at the same second, they often have a positive duration.

Invariants:

  • If there are n visits, there are n+1 transitions.
  • A visit is always surrounded by a transition before it (same index) and a transition after it (index + 1).
  • The vehicle start is always followed by transition #0.
  • The vehicle end is always preceded by transition #n.

Zooming in, here is what happens during a Transition and a Visit:

---+-------------------------------------+-----------------------------+-->

    |           TRANSITION[i]             |           VISIT[i]          |
    |                                     |                             |
    |  * TRAVEL: the vehicle moves from   |      PERFORM the visit:     |
    |    VISIT[i-1].departure_location to |                             |
    |    VISIT[i].arrival_location, which |  * Spend some time:         |
    |    takes a given travel duration    |    the "visit duration".    |
    |    and distance                     |                             |
    |                                     |  * Load or unload           |
    |  * BREAKS: the driver may have      |    some quantities from the |
    |    breaks (e.g. lunch break).       |    vehicle: the "demand".   |
    |                                     |                             |
    |  * WAIT: the driver/vehicle does    |                             |
    |    nothing. This can happen for     |                             |
    |    many reasons, for example when   |                             |
    |    the vehicle reaches the next     |                             |
    |    event's destination before the   |                             |
    |    start of its time window         |                             |
    |                                     |                             |
    |  * DELAY: *right before* the next   |                             |
    |    arrival. E.g. the vehicle and/or |                             |
    |    driver spends time unloading.    |                             |
    |                                     |                             |

---+-------------------------------------+-----------------------------+-->

    ^                                     ^                             ^

V[i-1].end                           V[i].start                    V[i].end

Lastly, here is how the TRAVEL, BREAKS, DELAY and WAIT can be arranged during a transition.

  • They don't overlap.
  • The DELAY is unique and must be a contiguous period of time right before the next visit (or vehicle end). Thus, it suffice to know the delay duration to know its start and end time.
  • The BREAKS are contiguous, non-overlapping periods of time. The response specifies the start time and duration of each break.
  • TRAVEL and WAIT are "preemptable": they can be interrupted several times during this transition. Clients can assume that travel happens "as soon as possible" and that "wait" fills the remaining time.

A (complex) example:


    TRANSITION[i]

--++-----+-----------------------------------------------------------++-->

    ||     |       |           |       |           |         |         ||
    ||  T  |   B   |     T     |       |     B     |         |    D    ||
    ||  r  |   r   |     r     |   W   |     r     |    W    |    e    ||
    ||  a  |   e   |     a     |   a   |     e     |    a    |    l    ||
    ||  v  |   a   |     v     |   i   |     a     |    i    |    a    ||
    ||  e  |   k   |     e     |   t   |     k     |    t    |    y    ||
    ||  l  |       |     l     |       |           |         |         ||
    ||     |       |           |       |           |         |         ||

--++-----------------------------------------------------------------++-->

func (*ShipmentRoute) Descriptor

func (*ShipmentRoute) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute.ProtoReflect.Descriptor instead.

func (*ShipmentRoute) GetBreaks

func (x *ShipmentRoute) GetBreaks() []*ShipmentRoute_Break

func (*ShipmentRoute) GetDelayBeforeVehicleEnd

func (x *ShipmentRoute) GetDelayBeforeVehicleEnd() *ShipmentRoute_Delay

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute) GetEndLoads

func (x *ShipmentRoute) GetEndLoads() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute) GetHasTrafficInfeasibilities

func (x *ShipmentRoute) GetHasTrafficInfeasibilities() bool

func (*ShipmentRoute) GetMetrics

func (x *ShipmentRoute) GetMetrics() *AggregatedMetrics

func (*ShipmentRoute) GetRouteCosts

func (x *ShipmentRoute) GetRouteCosts() map[string]float64

func (*ShipmentRoute) GetRoutePolyline

func (x *ShipmentRoute) GetRoutePolyline() *ShipmentRoute_EncodedPolyline

func (*ShipmentRoute) GetRouteTotalCost

func (x *ShipmentRoute) GetRouteTotalCost() float64

func (*ShipmentRoute) GetTransitions

func (x *ShipmentRoute) GetTransitions() []*ShipmentRoute_Transition

func (*ShipmentRoute) GetTravelSteps

func (x *ShipmentRoute) GetTravelSteps() []*ShipmentRoute_TravelStep

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute) GetVehicleDetour

func (x *ShipmentRoute) GetVehicleDetour() *durationpb.Duration

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute) GetVehicleEndTime

func (x *ShipmentRoute) GetVehicleEndTime() *timestamppb.Timestamp

func (*ShipmentRoute) GetVehicleIndex

func (x *ShipmentRoute) GetVehicleIndex() int32

func (*ShipmentRoute) GetVehicleLabel

func (x *ShipmentRoute) GetVehicleLabel() string

func (*ShipmentRoute) GetVehicleStartTime

func (x *ShipmentRoute) GetVehicleStartTime() *timestamppb.Timestamp

func (*ShipmentRoute) GetVisits

func (x *ShipmentRoute) GetVisits() []*ShipmentRoute_Visit

func (*ShipmentRoute) ProtoMessage

func (*ShipmentRoute) ProtoMessage()

func (*ShipmentRoute) ProtoReflect

func (x *ShipmentRoute) ProtoReflect() protoreflect.Message

func (*ShipmentRoute) Reset

func (x *ShipmentRoute) Reset()

func (*ShipmentRoute) String

func (x *ShipmentRoute) String() string

ShipmentRoute_Break

type ShipmentRoute_Break struct {

	// Start time of a break.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Duration of a break.
	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
	// contains filtered or unexported fields
}

Data representing the execution of a break.

func (*ShipmentRoute_Break) Descriptor

func (*ShipmentRoute_Break) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_Break.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_Break) GetDuration

func (x *ShipmentRoute_Break) GetDuration() *durationpb.Duration

func (*ShipmentRoute_Break) GetStartTime

func (x *ShipmentRoute_Break) GetStartTime() *timestamppb.Timestamp

func (*ShipmentRoute_Break) ProtoMessage

func (*ShipmentRoute_Break) ProtoMessage()

func (*ShipmentRoute_Break) ProtoReflect

func (x *ShipmentRoute_Break) ProtoReflect() protoreflect.Message

func (*ShipmentRoute_Break) Reset

func (x *ShipmentRoute_Break) Reset()

func (*ShipmentRoute_Break) String

func (x *ShipmentRoute_Break) String() string

ShipmentRoute_Delay (deprecated)

type ShipmentRoute_Delay struct {

	// Start of the delay.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Duration of the delay.
	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
	// contains filtered or unexported fields
}

Deprecated: Use [ShipmentRoute.Transition.delay_duration][google.cloud.optimization.v1.ShipmentRoute.Transition.delay_duration] instead. Time interval spent on the route resulting from a [TransitionAttributes.delay][google.cloud.optimization.v1.TransitionAttributes.delay].

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_Delay) Descriptor (deprecated)

func (*ShipmentRoute_Delay) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_Delay.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_Delay) GetDuration (deprecated)

func (x *ShipmentRoute_Delay) GetDuration() *durationpb.Duration

func (*ShipmentRoute_Delay) GetStartTime (deprecated)

func (x *ShipmentRoute_Delay) GetStartTime() *timestamppb.Timestamp

func (*ShipmentRoute_Delay) ProtoMessage (deprecated)

func (*ShipmentRoute_Delay) ProtoMessage()

func (*ShipmentRoute_Delay) ProtoReflect (deprecated)

func (x *ShipmentRoute_Delay) ProtoReflect() protoreflect.Message

func (*ShipmentRoute_Delay) Reset (deprecated)

func (x *ShipmentRoute_Delay) Reset()

func (*ShipmentRoute_Delay) String (deprecated)

func (x *ShipmentRoute_Delay) String() string

ShipmentRoute_EncodedPolyline

type ShipmentRoute_EncodedPolyline struct {

	// String representing encoded points of the polyline.
	Points string `protobuf:"bytes,1,opt,name=points,proto3" json:"points,omitempty"`
	// contains filtered or unexported fields
}

func (*ShipmentRoute_EncodedPolyline) Descriptor

func (*ShipmentRoute_EncodedPolyline) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_EncodedPolyline.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_EncodedPolyline) GetPoints

func (x *ShipmentRoute_EncodedPolyline) GetPoints() string

func (*ShipmentRoute_EncodedPolyline) ProtoMessage

func (*ShipmentRoute_EncodedPolyline) ProtoMessage()

func (*ShipmentRoute_EncodedPolyline) ProtoReflect

func (*ShipmentRoute_EncodedPolyline) Reset

func (x *ShipmentRoute_EncodedPolyline) Reset()

func (*ShipmentRoute_EncodedPolyline) String

ShipmentRoute_Transition

type ShipmentRoute_Transition struct {
	TravelDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=travel_duration,json=travelDuration,proto3" json:"travel_duration,omitempty"`

	TravelDistanceMeters float64 `protobuf:"fixed64,2,opt,name=travel_distance_meters,json=travelDistanceMeters,proto3" json:"travel_distance_meters,omitempty"`

	TrafficInfoUnavailable bool "" /* 130 byte string literal not displayed */

	DelayDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=delay_duration,json=delayDuration,proto3" json:"delay_duration,omitempty"`

	BreakDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=break_duration,json=breakDuration,proto3" json:"break_duration,omitempty"`

	WaitDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=wait_duration,json=waitDuration,proto3" json:"wait_duration,omitempty"`

	TotalDuration *durationpb.Duration `protobuf:"bytes,7,opt,name=total_duration,json=totalDuration,proto3" json:"total_duration,omitempty"`

	StartTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`

	RoutePolyline *ShipmentRoute_EncodedPolyline `protobuf:"bytes,9,opt,name=route_polyline,json=routePolyline,proto3" json:"route_polyline,omitempty"`

	VehicleLoads map[string]*ShipmentRoute_VehicleLoad "" /* 186 byte string literal not displayed */

	Loads []*CapacityQuantity `protobuf:"bytes,10,rep,name=loads,proto3" json:"loads,omitempty"`

}

Transition between two events on the route. See the description of [ShipmentRoute][google.cloud.optimization.v1.ShipmentRoute].

If the vehicle does not have a start_location and/or end_location, the corresponding travel metrics are 0.

func (*ShipmentRoute_Transition) Descriptor

func (*ShipmentRoute_Transition) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_Transition.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_Transition) GetBreakDuration

func (x *ShipmentRoute_Transition) GetBreakDuration() *durationpb.Duration

func (*ShipmentRoute_Transition) GetDelayDuration

func (x *ShipmentRoute_Transition) GetDelayDuration() *durationpb.Duration

func (*ShipmentRoute_Transition) GetLoads

func (x *ShipmentRoute_Transition) GetLoads() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_Transition) GetRoutePolyline

func (*ShipmentRoute_Transition) GetStartTime

func (x *ShipmentRoute_Transition) GetStartTime() *timestamppb.Timestamp

func (*ShipmentRoute_Transition) GetTotalDuration

func (x *ShipmentRoute_Transition) GetTotalDuration() *durationpb.Duration

func (*ShipmentRoute_Transition) GetTrafficInfoUnavailable

func (x *ShipmentRoute_Transition) GetTrafficInfoUnavailable() bool

func (*ShipmentRoute_Transition) GetTravelDistanceMeters

func (x *ShipmentRoute_Transition) GetTravelDistanceMeters() float64

func (*ShipmentRoute_Transition) GetTravelDuration

func (x *ShipmentRoute_Transition) GetTravelDuration() *durationpb.Duration

func (*ShipmentRoute_Transition) GetVehicleLoads

func (x *ShipmentRoute_Transition) GetVehicleLoads() map[string]*ShipmentRoute_VehicleLoad

func (*ShipmentRoute_Transition) GetWaitDuration

func (x *ShipmentRoute_Transition) GetWaitDuration() *durationpb.Duration

func (*ShipmentRoute_Transition) ProtoMessage

func (*ShipmentRoute_Transition) ProtoMessage()

func (*ShipmentRoute_Transition) ProtoReflect

func (x *ShipmentRoute_Transition) ProtoReflect() protoreflect.Message

func (*ShipmentRoute_Transition) Reset

func (x *ShipmentRoute_Transition) Reset()

func (*ShipmentRoute_Transition) String

func (x *ShipmentRoute_Transition) String() string

ShipmentRoute_TravelStep (deprecated)

type ShipmentRoute_TravelStep struct {
	Duration *durationpb.Duration `protobuf:"bytes,1,opt,name=duration,proto3" json:"duration,omitempty"`

	DistanceMeters float64 `protobuf:"fixed64,2,opt,name=distance_meters,json=distanceMeters,proto3" json:"distance_meters,omitempty"`

	TrafficInfoUnavailable bool "" /* 130 byte string literal not displayed */

	RoutePolyline *ShipmentRoute_EncodedPolyline `protobuf:"bytes,4,opt,name=route_polyline,json=routePolyline,proto3" json:"route_polyline,omitempty"`

}

Deprecated: Use [ShipmentRoute.Transition][google.cloud.optimization.v1.ShipmentRoute.Transition] instead. Travel between each visit along the route: from the vehicle's start_location to the first visit's arrival_location, then from the first visit's departure_location to the second visit's arrival_location, and so on until the vehicle's end_location. This accounts only for the actual travel between visits, not counting the waiting time, the time spent performing a visit, nor the distance covered during a visit.

Invariant: travel_steps_size() == visits_size() + 1.

If the vehicle does not have a start_ and/or end_location, the corresponding travel metrics are 0 and/or empty.

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_TravelStep) Descriptor (deprecated)

func (*ShipmentRoute_TravelStep) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_TravelStep.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_TravelStep) GetDistanceMeters (deprecated)

func (x *ShipmentRoute_TravelStep) GetDistanceMeters() float64

func (*ShipmentRoute_TravelStep) GetDuration (deprecated)

func (x *ShipmentRoute_TravelStep) GetDuration() *durationpb.Duration

func (*ShipmentRoute_TravelStep) GetRoutePolyline (deprecated)

func (*ShipmentRoute_TravelStep) GetTrafficInfoUnavailable (deprecated)

func (x *ShipmentRoute_TravelStep) GetTrafficInfoUnavailable() bool

func (*ShipmentRoute_TravelStep) ProtoMessage (deprecated)

func (*ShipmentRoute_TravelStep) ProtoMessage()

func (*ShipmentRoute_TravelStep) ProtoReflect (deprecated)

func (x *ShipmentRoute_TravelStep) ProtoReflect() protoreflect.Message

func (*ShipmentRoute_TravelStep) Reset (deprecated)

func (x *ShipmentRoute_TravelStep) Reset()

func (*ShipmentRoute_TravelStep) String (deprecated)

func (x *ShipmentRoute_TravelStep) String() string

ShipmentRoute_VehicleLoad

type ShipmentRoute_VehicleLoad struct {

	// The amount of load on the vehicle, for the given type. The unit of load
	// is usually indicated by the type. See
	// [Transition.vehicle_loads][google.cloud.optimization.v1.ShipmentRoute.Transition.vehicle_loads].
	Amount int64 `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"`
	// contains filtered or unexported fields
}

Reports the actual load of the vehicle at some point along the route, for a given type (see [Transition.vehicle_loads][google.cloud.optimization.v1.ShipmentRoute.Transition.vehicle_loads]).

func (*ShipmentRoute_VehicleLoad) Descriptor

func (*ShipmentRoute_VehicleLoad) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_VehicleLoad.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_VehicleLoad) GetAmount

func (x *ShipmentRoute_VehicleLoad) GetAmount() int64

func (*ShipmentRoute_VehicleLoad) ProtoMessage

func (*ShipmentRoute_VehicleLoad) ProtoMessage()

func (*ShipmentRoute_VehicleLoad) ProtoReflect

func (*ShipmentRoute_VehicleLoad) Reset

func (x *ShipmentRoute_VehicleLoad) Reset()

func (*ShipmentRoute_VehicleLoad) String

func (x *ShipmentRoute_VehicleLoad) String() string

ShipmentRoute_Visit

type ShipmentRoute_Visit struct {
	ShipmentIndex int32 `protobuf:"varint,1,opt,name=shipment_index,json=shipmentIndex,proto3" json:"shipment_index,omitempty"`

	IsPickup bool `protobuf:"varint,2,opt,name=is_pickup,json=isPickup,proto3" json:"is_pickup,omitempty"`

	VisitRequestIndex int32 `protobuf:"varint,3,opt,name=visit_request_index,json=visitRequestIndex,proto3" json:"visit_request_index,omitempty"`

	StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`

	LoadDemands map[string]*Shipment_Load "" /* 183 byte string literal not displayed */

	Detour *durationpb.Duration `protobuf:"bytes,6,opt,name=detour,proto3" json:"detour,omitempty"`

	ShipmentLabel string `protobuf:"bytes,7,opt,name=shipment_label,json=shipmentLabel,proto3" json:"shipment_label,omitempty"`

	VisitLabel string `protobuf:"bytes,8,opt,name=visit_label,json=visitLabel,proto3" json:"visit_label,omitempty"`

	ArrivalLoads []*CapacityQuantity `protobuf:"bytes,9,rep,name=arrival_loads,json=arrivalLoads,proto3" json:"arrival_loads,omitempty"`

	DelayBeforeStart *ShipmentRoute_Delay `protobuf:"bytes,10,opt,name=delay_before_start,json=delayBeforeStart,proto3" json:"delay_before_start,omitempty"`

	Demands []*CapacityQuantity `protobuf:"bytes,5,rep,name=demands,proto3" json:"demands,omitempty"`

}

A visit performed during a route. This visit corresponds to a pickup or a delivery of a Shipment.

func (*ShipmentRoute_Visit) Descriptor

func (*ShipmentRoute_Visit) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentRoute_Visit.ProtoReflect.Descriptor instead.

func (*ShipmentRoute_Visit) GetArrivalLoads

func (x *ShipmentRoute_Visit) GetArrivalLoads() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_Visit) GetDelayBeforeStart

func (x *ShipmentRoute_Visit) GetDelayBeforeStart() *ShipmentRoute_Delay

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_Visit) GetDemands

func (x *ShipmentRoute_Visit) GetDemands() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*ShipmentRoute_Visit) GetDetour

func (x *ShipmentRoute_Visit) GetDetour() *durationpb.Duration

func (*ShipmentRoute_Visit) GetIsPickup

func (x *ShipmentRoute_Visit) GetIsPickup() bool

func (*ShipmentRoute_Visit) GetLoadDemands

func (x *ShipmentRoute_Visit) GetLoadDemands() map[string]*Shipment_Load

func (*ShipmentRoute_Visit) GetShipmentIndex

func (x *ShipmentRoute_Visit) GetShipmentIndex() int32

func (*ShipmentRoute_Visit) GetShipmentLabel

func (x *ShipmentRoute_Visit) GetShipmentLabel() string

func (*ShipmentRoute_Visit) GetStartTime

func (x *ShipmentRoute_Visit) GetStartTime() *timestamppb.Timestamp

func (*ShipmentRoute_Visit) GetVisitLabel

func (x *ShipmentRoute_Visit) GetVisitLabel() string

func (*ShipmentRoute_Visit) GetVisitRequestIndex

func (x *ShipmentRoute_Visit) GetVisitRequestIndex() int32

func (*ShipmentRoute_Visit) ProtoMessage

func (*ShipmentRoute_Visit) ProtoMessage()

func (*ShipmentRoute_Visit) ProtoReflect

func (x *ShipmentRoute_Visit) ProtoReflect() protoreflect.Message

func (*ShipmentRoute_Visit) Reset

func (x *ShipmentRoute_Visit) Reset()

func (*ShipmentRoute_Visit) String

func (x *ShipmentRoute_Visit) String() string

ShipmentTypeIncompatibility

type ShipmentTypeIncompatibility struct {
	Types []string `protobuf:"bytes,1,rep,name=types,proto3" json:"types,omitempty"`

	IncompatibilityMode ShipmentTypeIncompatibility_IncompatibilityMode "" /* 201 byte string literal not displayed */

}

Specifies incompatibilties between shipments depending on their shipment_type. The appearance of incompatible shipments on the same route is restricted based on the incompatibility mode.

func (*ShipmentTypeIncompatibility) Descriptor

func (*ShipmentTypeIncompatibility) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentTypeIncompatibility.ProtoReflect.Descriptor instead.

func (*ShipmentTypeIncompatibility) GetIncompatibilityMode

func (*ShipmentTypeIncompatibility) GetTypes

func (x *ShipmentTypeIncompatibility) GetTypes() []string

func (*ShipmentTypeIncompatibility) ProtoMessage

func (*ShipmentTypeIncompatibility) ProtoMessage()

func (*ShipmentTypeIncompatibility) ProtoReflect

func (*ShipmentTypeIncompatibility) Reset

func (x *ShipmentTypeIncompatibility) Reset()

func (*ShipmentTypeIncompatibility) String

func (x *ShipmentTypeIncompatibility) String() string

ShipmentTypeIncompatibility_IncompatibilityMode

type ShipmentTypeIncompatibility_IncompatibilityMode int32

Modes defining how the appearance of incompatible shipments are restricted on the same route.

ShipmentTypeIncompatibility_INCOMPATIBILITY_MODE_UNSPECIFIED, ShipmentTypeIncompatibility_NOT_PERFORMED_BY_SAME_VEHICLE, ShipmentTypeIncompatibility_NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY

const (
	// Unspecified incompatibility mode. This value should never be used.
	ShipmentTypeIncompatibility_INCOMPATIBILITY_MODE_UNSPECIFIED ShipmentTypeIncompatibility_IncompatibilityMode = 0
	// In this mode, two shipments with incompatible types can never share the
	// same vehicle.
	ShipmentTypeIncompatibility_NOT_PERFORMED_BY_SAME_VEHICLE ShipmentTypeIncompatibility_IncompatibilityMode = 1
	// For two shipments with incompatible types with the
	// `NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY` incompatibility mode:
	//
	//   - If both are pickups only (no deliveries) or deliveries only (no
	//     pickups), they cannot share the same vehicle at all.
	//   - If one of the shipments has a delivery and the other a pickup, the two
	//     shipments can share the same vehicle iff the former shipment is
	//     delivered before the latter is picked up.
	ShipmentTypeIncompatibility_NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY ShipmentTypeIncompatibility_IncompatibilityMode = 2
)

func (ShipmentTypeIncompatibility_IncompatibilityMode) Descriptor

func (ShipmentTypeIncompatibility_IncompatibilityMode) Enum

func (ShipmentTypeIncompatibility_IncompatibilityMode) EnumDescriptor

Deprecated: Use ShipmentTypeIncompatibility_IncompatibilityMode.Descriptor instead.

func (ShipmentTypeIncompatibility_IncompatibilityMode) Number

func (ShipmentTypeIncompatibility_IncompatibilityMode) String

func (ShipmentTypeIncompatibility_IncompatibilityMode) Type

ShipmentTypeRequirement

type ShipmentTypeRequirement struct {
	RequiredShipmentTypeAlternatives []string "" /* 161 byte string literal not displayed */

	DependentShipmentTypes []string "" /* 129 byte string literal not displayed */

	RequirementMode ShipmentTypeRequirement_RequirementMode "" /* 181 byte string literal not displayed */

}

Specifies requirements between shipments based on their shipment_type. The specifics of the requirement are defined by the requirement mode.

func (*ShipmentTypeRequirement) Descriptor

func (*ShipmentTypeRequirement) Descriptor() ([]byte, []int)

Deprecated: Use ShipmentTypeRequirement.ProtoReflect.Descriptor instead.

func (*ShipmentTypeRequirement) GetDependentShipmentTypes

func (x *ShipmentTypeRequirement) GetDependentShipmentTypes() []string

func (*ShipmentTypeRequirement) GetRequiredShipmentTypeAlternatives

func (x *ShipmentTypeRequirement) GetRequiredShipmentTypeAlternatives() []string

func (*ShipmentTypeRequirement) GetRequirementMode

func (*ShipmentTypeRequirement) ProtoMessage

func (*ShipmentTypeRequirement) ProtoMessage()

func (*ShipmentTypeRequirement) ProtoReflect

func (x *ShipmentTypeRequirement) ProtoReflect() protoreflect.Message

func (*ShipmentTypeRequirement) Reset

func (x *ShipmentTypeRequirement) Reset()

func (*ShipmentTypeRequirement) String

func (x *ShipmentTypeRequirement) String() string

ShipmentTypeRequirement_RequirementMode

type ShipmentTypeRequirement_RequirementMode int32

Modes defining the appearance of dependent shipments on a route.

ShipmentTypeRequirement_REQUIREMENT_MODE_UNSPECIFIED, ShipmentTypeRequirement_PERFORMED_BY_SAME_VEHICLE, ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_PICKUP_TIME, ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_DELIVERY_TIME

const (
	// Unspecified requirement mode. This value should never be used.
	ShipmentTypeRequirement_REQUIREMENT_MODE_UNSPECIFIED ShipmentTypeRequirement_RequirementMode = 0
	// In this mode, all "dependent" shipments must share the same vehicle as at
	// least one of their "required" shipments.
	ShipmentTypeRequirement_PERFORMED_BY_SAME_VEHICLE ShipmentTypeRequirement_RequirementMode = 1
	// With the `IN_SAME_VEHICLE_AT_PICKUP_TIME` mode, all "dependent"
	// shipments need to have at least one "required" shipment on their vehicle
	// at the time of their pickup.
	//
	// A "dependent" shipment pickup must therefore have either:
	//
	//   - A delivery-only "required" shipment delivered on the route after, or
	//   - A "required" shipment picked up on the route before it, and if the
	//     "required" shipment has a delivery, this delivery must be performed
	//     after the "dependent" shipment's pickup.
	ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_PICKUP_TIME ShipmentTypeRequirement_RequirementMode = 2
	// Same as before, except the "dependent" shipments need to have a
	// "required" shipment on their vehicle at the time of their *delivery*.
	ShipmentTypeRequirement_IN_SAME_VEHICLE_AT_DELIVERY_TIME ShipmentTypeRequirement_RequirementMode = 3
)

func (ShipmentTypeRequirement_RequirementMode) Descriptor

func (ShipmentTypeRequirement_RequirementMode) Enum

func (ShipmentTypeRequirement_RequirementMode) EnumDescriptor

func (ShipmentTypeRequirement_RequirementMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use ShipmentTypeRequirement_RequirementMode.Descriptor instead.

func (ShipmentTypeRequirement_RequirementMode) Number

func (ShipmentTypeRequirement_RequirementMode) String

func (ShipmentTypeRequirement_RequirementMode) Type

Shipment_Load

type Shipment_Load struct {

	// The amount by which the load of the vehicle performing the corresponding
	// visit will vary. Since it is an integer, users are advised to choose an
	// appropriate unit to avoid loss of precision. Must be ≥ 0.
	Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	// contains filtered or unexported fields
}

When performing a visit, a predefined amount may be added to the vehicle load if it's a pickup, or subtracted if it's a delivery. This message defines such amount. See [load_demands][google.cloud.optimization.v1.Shipment.load_demands].

func (*Shipment_Load) Descriptor

func (*Shipment_Load) Descriptor() ([]byte, []int)

Deprecated: Use Shipment_Load.ProtoReflect.Descriptor instead.

func (*Shipment_Load) GetAmount

func (x *Shipment_Load) GetAmount() int64

func (*Shipment_Load) ProtoMessage

func (*Shipment_Load) ProtoMessage()

func (*Shipment_Load) ProtoReflect

func (x *Shipment_Load) ProtoReflect() protoreflect.Message

func (*Shipment_Load) Reset

func (x *Shipment_Load) Reset()

func (*Shipment_Load) String

func (x *Shipment_Load) String() string

Shipment_VisitRequest

type Shipment_VisitRequest struct {
	ArrivalLocation *latlng.LatLng `protobuf:"bytes,1,opt,name=arrival_location,json=arrivalLocation,proto3" json:"arrival_location,omitempty"`

	ArrivalWaypoint *Waypoint `protobuf:"bytes,2,opt,name=arrival_waypoint,json=arrivalWaypoint,proto3" json:"arrival_waypoint,omitempty"`

	DepartureLocation *latlng.LatLng `protobuf:"bytes,3,opt,name=departure_location,json=departureLocation,proto3" json:"departure_location,omitempty"`

	DepartureWaypoint *Waypoint `protobuf:"bytes,4,opt,name=departure_waypoint,json=departureWaypoint,proto3" json:"departure_waypoint,omitempty"`

	Tags []string `protobuf:"bytes,5,rep,name=tags,proto3" json:"tags,omitempty"`

	TimeWindows []*TimeWindow `protobuf:"bytes,6,rep,name=time_windows,json=timeWindows,proto3" json:"time_windows,omitempty"`

	Duration *durationpb.Duration `protobuf:"bytes,7,opt,name=duration,proto3" json:"duration,omitempty"`

	Cost float64 `protobuf:"fixed64,8,opt,name=cost,proto3" json:"cost,omitempty"`

	LoadDemands map[string]*Shipment_Load "" /* 183 byte string literal not displayed */

	VisitTypes []string `protobuf:"bytes,10,rep,name=visit_types,json=visitTypes,proto3" json:"visit_types,omitempty"`

	Label string `protobuf:"bytes,11,opt,name=label,proto3" json:"label,omitempty"`

	Demands []*CapacityQuantity `protobuf:"bytes,9,rep,name=demands,proto3" json:"demands,omitempty"`

}

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).

func (*Shipment_VisitRequest) Descriptor

func (*Shipment_VisitRequest) Descriptor() ([]byte, []int)

Deprecated: Use Shipment_VisitRequest.ProtoReflect.Descriptor instead.

func (*Shipment_VisitRequest) GetArrivalLocation

func (x *Shipment_VisitRequest) GetArrivalLocation() *latlng.LatLng

func (*Shipment_VisitRequest) GetArrivalWaypoint

func (x *Shipment_VisitRequest) GetArrivalWaypoint() *Waypoint

func (*Shipment_VisitRequest) GetCost

func (x *Shipment_VisitRequest) GetCost() float64

func (*Shipment_VisitRequest) GetDemands

func (x *Shipment_VisitRequest) GetDemands() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Shipment_VisitRequest) GetDepartureLocation

func (x *Shipment_VisitRequest) GetDepartureLocation() *latlng.LatLng

func (*Shipment_VisitRequest) GetDepartureWaypoint

func (x *Shipment_VisitRequest) GetDepartureWaypoint() *Waypoint

func (*Shipment_VisitRequest) GetDuration

func (x *Shipment_VisitRequest) GetDuration() *durationpb.Duration

func (*Shipment_VisitRequest) GetLabel

func (x *Shipment_VisitRequest) GetLabel() string

func (*Shipment_VisitRequest) GetLoadDemands

func (x *Shipment_VisitRequest) GetLoadDemands() map[string]*Shipment_Load

func (*Shipment_VisitRequest) GetTags

func (x *Shipment_VisitRequest) GetTags() []string

func (*Shipment_VisitRequest) GetTimeWindows

func (x *Shipment_VisitRequest) GetTimeWindows() []*TimeWindow

func (*Shipment_VisitRequest) GetVisitTypes

func (x *Shipment_VisitRequest) GetVisitTypes() []string

func (*Shipment_VisitRequest) ProtoMessage

func (*Shipment_VisitRequest) ProtoMessage()

func (*Shipment_VisitRequest) ProtoReflect

func (x *Shipment_VisitRequest) ProtoReflect() protoreflect.Message

func (*Shipment_VisitRequest) Reset

func (x *Shipment_VisitRequest) Reset()

func (*Shipment_VisitRequest) String

func (x *Shipment_VisitRequest) String() string

SkippedShipment

type SkippedShipment struct {

	// The index corresponds to the index of the shipment in the source
	// `ShipmentModel`.
	Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	// Copy of the corresponding
	// [Shipment.label][google.cloud.optimization.v1.Shipment.label], if specified
	// in the `Shipment`.
	Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
	// A list of reasons that explain why the shipment was skipped. See comment
	// above `Reason`.
	Reasons []*SkippedShipment_Reason `protobuf:"bytes,3,rep,name=reasons,proto3" json:"reasons,omitempty"`
	// contains filtered or unexported fields
}

Specifies details of unperformed shipments in a solution. For trivial cases and/or if we are able to identify the cause for skipping, we report the reason here.

func (*SkippedShipment) Descriptor

func (*SkippedShipment) Descriptor() ([]byte, []int)

Deprecated: Use SkippedShipment.ProtoReflect.Descriptor instead.

func (*SkippedShipment) GetIndex

func (x *SkippedShipment) GetIndex() int32

func (*SkippedShipment) GetLabel

func (x *SkippedShipment) GetLabel() string

func (*SkippedShipment) GetReasons

func (x *SkippedShipment) GetReasons() []*SkippedShipment_Reason

func (*SkippedShipment) ProtoMessage

func (*SkippedShipment) ProtoMessage()

func (*SkippedShipment) ProtoReflect

func (x *SkippedShipment) ProtoReflect() protoreflect.Message

func (*SkippedShipment) Reset

func (x *SkippedShipment) Reset()

func (*SkippedShipment) String

func (x *SkippedShipment) String() string

SkippedShipment_Reason

type SkippedShipment_Reason struct {
	Code SkippedShipment_Reason_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.optimization.v1.SkippedShipment_Reason_Code" json:"code,omitempty"`

	ExampleVehicleIndex *int32 "" /* 127 byte string literal not displayed */

	ExampleExceededCapacityType string "" /* 146 byte string literal not displayed */

}

If we can explain why the shipment was skipped, reasons will be listed here. If the reason is not the same for all vehicles, reason will have more than 1 element. A skipped shipment cannot have duplicate reasons, i.e. where all fields are the same except for example_vehicle_index. Example:


    reasons {
      code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
      example_vehicle_index: 1
      example_exceeded_capacity_type: "Apples"
    }

    reasons {
      code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
      example_vehicle_index: 3
      example_exceeded_capacity_type: "Pears"
    }

    reasons {
      code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
      example_vehicle_index: 1
    }

The skipped shipment is incompatible with all vehicles. The reasons may be different for all vehicles but at least one vehicle's "Apples" capacity would be exceeded (including vehicle 1), at least one vehicle's "Pears" capacity would be exceeded (including vehicle 3) and at least one vehicle's distance limit would be exceeded (including vehicle 1).

func (*SkippedShipment_Reason) Descriptor

func (*SkippedShipment_Reason) Descriptor() ([]byte, []int)

Deprecated: Use SkippedShipment_Reason.ProtoReflect.Descriptor instead.

func (*SkippedShipment_Reason) GetCode

func (*SkippedShipment_Reason) GetExampleExceededCapacityType

func (x *SkippedShipment_Reason) GetExampleExceededCapacityType() string

func (*SkippedShipment_Reason) GetExampleVehicleIndex

func (x *SkippedShipment_Reason) GetExampleVehicleIndex() int32

func (*SkippedShipment_Reason) ProtoMessage

func (*SkippedShipment_Reason) ProtoMessage()

func (*SkippedShipment_Reason) ProtoReflect

func (x *SkippedShipment_Reason) ProtoReflect() protoreflect.Message

func (*SkippedShipment_Reason) Reset

func (x *SkippedShipment_Reason) Reset()

func (*SkippedShipment_Reason) String

func (x *SkippedShipment_Reason) String() string

SkippedShipment_Reason_Code

type SkippedShipment_Reason_Code int32

Code identifying the reason type. The order here is meaningless. In particular, it gives no indication of whether a given reason will appear before another in the solution, if both apply.

SkippedShipment_Reason_CODE_UNSPECIFIED, SkippedShipment_Reason_NO_VEHICLE, SkippedShipment_Reason_DEMAND_EXCEEDS_VEHICLE_CAPACITY, SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT, SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT, SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT, SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS, SkippedShipment_Reason_VEHICLE_NOT_ALLOWED

const (
	// This should never be used. If we are unable to understand why a
	// shipment was skipped, we simply return an empty set of reasons.
	SkippedShipment_Reason_CODE_UNSPECIFIED SkippedShipment_Reason_Code = 0
	// There is no vehicle in the model making all shipments infeasible.
	SkippedShipment_Reason_NO_VEHICLE SkippedShipment_Reason_Code = 1
	// The demand of the shipment exceeds a vehicle's capacity for some
	// capacity types, one of which is `example_exceeded_capacity_type`.
	SkippedShipment_Reason_DEMAND_EXCEEDS_VEHICLE_CAPACITY SkippedShipment_Reason_Code = 2
	// The minimum distance necessary to perform this shipment, i.e. from
	// the vehicle's `start_location` to the shipment's pickup and/or delivery
	// locations and to the vehicle's end location exceeds the vehicle's
	// `route_distance_limit`.
	//
	// Note that for this computation we use the geodesic distances.
	SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT SkippedShipment_Reason_Code = 3
	// The minimum time necessary to perform this shipment, including travel
	// time, wait time and service time exceeds the vehicle's
	// `route_duration_limit`.
	//
	// Note: travel time is computed in the best-case scenario, namely as
	// geodesic distance x 36 m/s (roughly 130 km/hour).
	SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT SkippedShipment_Reason_Code = 4
	// Same as above but we only compare minimum travel time and the
	// vehicle's `travel_duration_limit`.
	SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT SkippedShipment_Reason_Code = 5
	// The vehicle cannot perform this shipment in the best-case scenario
	// (see `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for time
	// computation) if it starts at its earliest start time: the total time
	// would make the vehicle end after its latest end time.
	SkippedShipment_Reason_CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS SkippedShipment_Reason_Code = 6
	// The `allowed_vehicle_indices` field of the shipment is not empty and
	// this vehicle does not belong to it.
	SkippedShipment_Reason_VEHICLE_NOT_ALLOWED SkippedShipment_Reason_Code = 7
)

func (SkippedShipment_Reason_Code) Descriptor

func (SkippedShipment_Reason_Code) Enum

func (SkippedShipment_Reason_Code) EnumDescriptor

func (SkippedShipment_Reason_Code) EnumDescriptor() ([]byte, []int)

Deprecated: Use SkippedShipment_Reason_Code.Descriptor instead.

func (SkippedShipment_Reason_Code) Number

func (SkippedShipment_Reason_Code) String

func (SkippedShipment_Reason_Code) Type

TimeWindow

type TimeWindow struct {
	StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`

	EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`

	SoftStartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=soft_start_time,json=softStartTime,proto3" json:"soft_start_time,omitempty"`

	SoftEndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=soft_end_time,json=softEndTime,proto3" json:"soft_end_time,omitempty"`

	CostPerHourBeforeSoftStartTime *float64 "" /* 169 byte string literal not displayed */

	CostPerHourAfterSoftEndTime *float64 "" /* 160 byte string literal not displayed */

}

Time windows constrain the time of an event, such as the arrival time at a visit, or the start and end time of a vehicle.

Hard time window bounds, start_time and end_time, enforce the earliest and latest time of the event, such that start_time <= event_time <= end_time. The soft time window lower bound, soft_start_time, expresses a preference for the event to happen at or after soft_start_time by incurring a cost proportional to how long before soft_start_time the event occurs. The soft time window upper bound, soft_end_time, expresses a preference for the event to happen at or before soft_end_time by incurring a cost proportional to how long after soft_end_time the event occurs. start_time, end_time, soft_start_time and soft_end_time should be within the global time limits (see [ShipmentModel.global_start_time][google.cloud.optimization.v1.ShipmentModel.global_start_time] and [ShipmentModel.global_end_time][google.cloud.optimization.v1.ShipmentModel.global_end_time]) and should respect:


    0 <= `start_time` <= `soft_start_time` <= `end_time` and
    0 <= `start_time` <= `soft_end_time` <= `end_time`.

func (*TimeWindow) Descriptor

func (*TimeWindow) Descriptor() ([]byte, []int)

Deprecated: Use TimeWindow.ProtoReflect.Descriptor instead.

func (*TimeWindow) GetCostPerHourAfterSoftEndTime

func (x *TimeWindow) GetCostPerHourAfterSoftEndTime() float64

func (*TimeWindow) GetCostPerHourBeforeSoftStartTime

func (x *TimeWindow) GetCostPerHourBeforeSoftStartTime() float64

func (*TimeWindow) GetEndTime

func (x *TimeWindow) GetEndTime() *timestamppb.Timestamp

func (*TimeWindow) GetSoftEndTime

func (x *TimeWindow) GetSoftEndTime() *timestamppb.Timestamp

func (*TimeWindow) GetSoftStartTime

func (x *TimeWindow) GetSoftStartTime() *timestamppb.Timestamp

func (*TimeWindow) GetStartTime

func (x *TimeWindow) GetStartTime() *timestamppb.Timestamp

func (*TimeWindow) ProtoMessage

func (*TimeWindow) ProtoMessage()

func (*TimeWindow) ProtoReflect

func (x *TimeWindow) ProtoReflect() protoreflect.Message

func (*TimeWindow) Reset

func (x *TimeWindow) Reset()

func (*TimeWindow) String

func (x *TimeWindow) String() string

TransitionAttributes

type TransitionAttributes struct {

	// Tags defining the set of (src->dst) transitions these attributes apply to.
	//
	// A source visit or vehicle start matches iff its
	// [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
	// or [Vehicle.start_tags][google.cloud.optimization.v1.Vehicle.start_tags]
	// either contains `src_tag` or does not contain `excluded_src_tag` (depending
	// on which of these two fields is non-empty).
	SrcTag string `protobuf:"bytes,1,opt,name=src_tag,json=srcTag,proto3" json:"src_tag,omitempty"`
	// See `src_tag`. Exactly one of `src_tag` and `excluded_src_tag` must be
	// non-empty.
	ExcludedSrcTag string `protobuf:"bytes,2,opt,name=excluded_src_tag,json=excludedSrcTag,proto3" json:"excluded_src_tag,omitempty"`
	// A destination visit or vehicle end matches iff its
	// [VisitRequest.tags][google.cloud.optimization.v1.Shipment.VisitRequest.tags]
	// or [Vehicle.end_tags][google.cloud.optimization.v1.Vehicle.end_tags] either
	// contains `dst_tag` or does not contain `excluded_dst_tag` (depending on
	// which of these two fields is non-empty).
	DstTag string `protobuf:"bytes,3,opt,name=dst_tag,json=dstTag,proto3" json:"dst_tag,omitempty"`
	// See `dst_tag`. Exactly one of `dst_tag` and `excluded_dst_tag` must be
	// non-empty.
	ExcludedDstTag string `protobuf:"bytes,4,opt,name=excluded_dst_tag,json=excludedDstTag,proto3" json:"excluded_dst_tag,omitempty"`
	// Specifies a cost for performing this transition. This is in the same unit
	// as all other costs in the model and must not be negative. It is applied on
	// top of all other existing costs.
	Cost float64 `protobuf:"fixed64,5,opt,name=cost,proto3" json:"cost,omitempty"`
	// Specifies a cost per kilometer applied to the distance traveled while
	// performing this transition. It adds up to any
	// [Vehicle.cost_per_kilometer][google.cloud.optimization.v1.Vehicle.cost_per_kilometer]
	// specified on vehicles.
	CostPerKilometer float64 `protobuf:"fixed64,6,opt,name=cost_per_kilometer,json=costPerKilometer,proto3" json:"cost_per_kilometer,omitempty"`
	// Specifies a limit on the distance traveled while performing this
	// transition.
	//
	// As of 2021/06, only soft limits are supported.
	DistanceLimit *DistanceLimit `protobuf:"bytes,7,opt,name=distance_limit,json=distanceLimit,proto3" json:"distance_limit,omitempty"`
	// Specifies a delay incurred when performing this transition.
	//
	// This delay always occurs *after* finishing the source visit and *before*
	// starting the destination visit.
	Delay *durationpb.Duration `protobuf:"bytes,8,opt,name=delay,proto3" json:"delay,omitempty"`
	// contains filtered or unexported fields
}

Specifies attributes of transitions between two consecutive visits on a route. Several TransitionAttributes may apply to the same transition: in that case, all extra costs add up and the strictest constraint or limit applies (following natural "AND" semantics).

func (*TransitionAttributes) Descriptor

func (*TransitionAttributes) Descriptor() ([]byte, []int)

Deprecated: Use TransitionAttributes.ProtoReflect.Descriptor instead.

func (*TransitionAttributes) GetCost

func (x *TransitionAttributes) GetCost() float64

func (*TransitionAttributes) GetCostPerKilometer

func (x *TransitionAttributes) GetCostPerKilometer() float64

func (*TransitionAttributes) GetDelay

func (x *TransitionAttributes) GetDelay() *durationpb.Duration

func (*TransitionAttributes) GetDistanceLimit

func (x *TransitionAttributes) GetDistanceLimit() *DistanceLimit

func (*TransitionAttributes) GetDstTag

func (x *TransitionAttributes) GetDstTag() string

func (*TransitionAttributes) GetExcludedDstTag

func (x *TransitionAttributes) GetExcludedDstTag() string

func (*TransitionAttributes) GetExcludedSrcTag

func (x *TransitionAttributes) GetExcludedSrcTag() string

func (*TransitionAttributes) GetSrcTag

func (x *TransitionAttributes) GetSrcTag() string

func (*TransitionAttributes) ProtoMessage

func (*TransitionAttributes) ProtoMessage()

func (*TransitionAttributes) ProtoReflect

func (x *TransitionAttributes) ProtoReflect() protoreflect.Message

func (*TransitionAttributes) Reset

func (x *TransitionAttributes) Reset()

func (*TransitionAttributes) String

func (x *TransitionAttributes) String() string

UnimplementedFleetRoutingServer

type UnimplementedFleetRoutingServer struct {
}

UnimplementedFleetRoutingServer can be embedded to have forward compatible implementations.

func (*UnimplementedFleetRoutingServer) BatchOptimizeTours

func (*UnimplementedFleetRoutingServer) OptimizeTours

Vehicle

type Vehicle struct {
	TravelMode Vehicle_TravelMode "" /* 145 byte string literal not displayed */

	RouteModifiers *RouteModifiers `protobuf:"bytes,2,opt,name=route_modifiers,json=routeModifiers,proto3" json:"route_modifiers,omitempty"`

	StartLocation *latlng.LatLng `protobuf:"bytes,3,opt,name=start_location,json=startLocation,proto3" json:"start_location,omitempty"`

	StartWaypoint *Waypoint `protobuf:"bytes,4,opt,name=start_waypoint,json=startWaypoint,proto3" json:"start_waypoint,omitempty"`

	EndLocation *latlng.LatLng `protobuf:"bytes,5,opt,name=end_location,json=endLocation,proto3" json:"end_location,omitempty"`

	EndWaypoint *Waypoint `protobuf:"bytes,6,opt,name=end_waypoint,json=endWaypoint,proto3" json:"end_waypoint,omitempty"`

	StartTags []string `protobuf:"bytes,7,rep,name=start_tags,json=startTags,proto3" json:"start_tags,omitempty"`

	EndTags []string `protobuf:"bytes,8,rep,name=end_tags,json=endTags,proto3" json:"end_tags,omitempty"`

	StartTimeWindows []*TimeWindow `protobuf:"bytes,9,rep,name=start_time_windows,json=startTimeWindows,proto3" json:"start_time_windows,omitempty"`

	EndTimeWindows []*TimeWindow `protobuf:"bytes,10,rep,name=end_time_windows,json=endTimeWindows,proto3" json:"end_time_windows,omitempty"`

	TravelDurationMultiple *float64 "" /* 138 byte string literal not displayed */

	UnloadingPolicy Vehicle_UnloadingPolicy "" /* 166 byte string literal not displayed */

	LoadLimits map[string]*Vehicle_LoadLimit "" /* 180 byte string literal not displayed */

	CostPerHour float64 `protobuf:"fixed64,16,opt,name=cost_per_hour,json=costPerHour,proto3" json:"cost_per_hour,omitempty"`

	CostPerTraveledHour float64 `protobuf:"fixed64,17,opt,name=cost_per_traveled_hour,json=costPerTraveledHour,proto3" json:"cost_per_traveled_hour,omitempty"`

	CostPerKilometer float64 `protobuf:"fixed64,18,opt,name=cost_per_kilometer,json=costPerKilometer,proto3" json:"cost_per_kilometer,omitempty"`

	FixedCost float64 `protobuf:"fixed64,19,opt,name=fixed_cost,json=fixedCost,proto3" json:"fixed_cost,omitempty"`

	UsedIfRouteIsEmpty bool `protobuf:"varint,20,opt,name=used_if_route_is_empty,json=usedIfRouteIsEmpty,proto3" json:"used_if_route_is_empty,omitempty"`

	RouteDurationLimit *Vehicle_DurationLimit `protobuf:"bytes,21,opt,name=route_duration_limit,json=routeDurationLimit,proto3" json:"route_duration_limit,omitempty"`

	TravelDurationLimit *Vehicle_DurationLimit `protobuf:"bytes,22,opt,name=travel_duration_limit,json=travelDurationLimit,proto3" json:"travel_duration_limit,omitempty"`

	RouteDistanceLimit *DistanceLimit `protobuf:"bytes,23,opt,name=route_distance_limit,json=routeDistanceLimit,proto3" json:"route_distance_limit,omitempty"`

	ExtraVisitDurationForVisitType map[string]*durationpb.Duration "" /* 248 byte string literal not displayed */

	BreakRule *BreakRule `protobuf:"bytes,25,opt,name=break_rule,json=breakRule,proto3" json:"break_rule,omitempty"`

	Label string `protobuf:"bytes,27,opt,name=label,proto3" json:"label,omitempty"`

	Ignore bool `protobuf:"varint,28,opt,name=ignore,proto3" json:"ignore,omitempty"`

	BreakRuleIndices []int32 `protobuf:"varint,29,rep,packed,name=break_rule_indices,json=breakRuleIndices,proto3" json:"break_rule_indices,omitempty"`

	Capacities []*CapacityQuantity `protobuf:"bytes,13,rep,name=capacities,proto3" json:"capacities,omitempty"`

	StartLoadIntervals []*CapacityQuantityInterval `protobuf:"bytes,14,rep,name=start_load_intervals,json=startLoadIntervals,proto3" json:"start_load_intervals,omitempty"`

	EndLoadIntervals []*CapacityQuantityInterval `protobuf:"bytes,15,rep,name=end_load_intervals,json=endLoadIntervals,proto3" json:"end_load_intervals,omitempty"`

}

Models a vehicle in a shipment problem. Solving a shipment problem will build a route starting from start_location and ending at end_location for this vehicle. A route is a sequence of visits (see ShipmentRoute).

func (*Vehicle) Descriptor

func (*Vehicle) Descriptor() ([]byte, []int)

Deprecated: Use Vehicle.ProtoReflect.Descriptor instead.

func (*Vehicle) GetBreakRule

func (x *Vehicle) GetBreakRule() *BreakRule

func (*Vehicle) GetBreakRuleIndices

func (x *Vehicle) GetBreakRuleIndices() []int32

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Vehicle) GetCapacities

func (x *Vehicle) GetCapacities() []*CapacityQuantity

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Vehicle) GetCostPerHour

func (x *Vehicle) GetCostPerHour() float64

func (*Vehicle) GetCostPerKilometer

func (x *Vehicle) GetCostPerKilometer() float64

func (*Vehicle) GetCostPerTraveledHour

func (x *Vehicle) GetCostPerTraveledHour() float64

func (*Vehicle) GetEndLoadIntervals

func (x *Vehicle) GetEndLoadIntervals() []*CapacityQuantityInterval

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Vehicle) GetEndLocation

func (x *Vehicle) GetEndLocation() *latlng.LatLng

func (*Vehicle) GetEndTags

func (x *Vehicle) GetEndTags() []string

func (*Vehicle) GetEndTimeWindows

func (x *Vehicle) GetEndTimeWindows() []*TimeWindow

func (*Vehicle) GetEndWaypoint

func (x *Vehicle) GetEndWaypoint() *Waypoint

func (*Vehicle) GetExtraVisitDurationForVisitType

func (x *Vehicle) GetExtraVisitDurationForVisitType() map[string]*durationpb.Duration

func (*Vehicle) GetFixedCost

func (x *Vehicle) GetFixedCost() float64

func (*Vehicle) GetIgnore

func (x *Vehicle) GetIgnore() bool

func (*Vehicle) GetLabel

func (x *Vehicle) GetLabel() string

func (*Vehicle) GetLoadLimits

func (x *Vehicle) GetLoadLimits() map[string]*Vehicle_LoadLimit

func (*Vehicle) GetRouteDistanceLimit

func (x *Vehicle) GetRouteDistanceLimit() *DistanceLimit

func (*Vehicle) GetRouteDurationLimit

func (x *Vehicle) GetRouteDurationLimit() *Vehicle_DurationLimit

func (*Vehicle) GetRouteModifiers

func (x *Vehicle) GetRouteModifiers() *RouteModifiers

func (*Vehicle) GetStartLoadIntervals

func (x *Vehicle) GetStartLoadIntervals() []*CapacityQuantityInterval

Deprecated: Marked as deprecated in google/cloud/optimization/v1/fleet_routing.proto.

func (*Vehicle) GetStartLocation

func (x *Vehicle) GetStartLocation() *latlng.LatLng

func (*Vehicle) GetStartTags

func (x *Vehicle) GetStartTags() []string

func (*Vehicle) GetStartTimeWindows

func (x *Vehicle) GetStartTimeWindows() []*TimeWindow

func (*Vehicle) GetStartWaypoint

func (x *Vehicle) GetStartWaypoint() *Waypoint

func (*Vehicle) GetTravelDurationLimit

func (x *Vehicle) GetTravelDurationLimit() *Vehicle_DurationLimit

func (*Vehicle) GetTravelDurationMultiple

func (x *Vehicle) GetTravelDurationMultiple() float64

func (*Vehicle) GetTravelMode

func (x *Vehicle) GetTravelMode() Vehicle_TravelMode

func (*Vehicle) GetUnloadingPolicy

func (x *Vehicle) GetUnloadingPolicy() Vehicle_UnloadingPolicy

func (*Vehicle) GetUsedIfRouteIsEmpty

func (x *Vehicle) GetUsedIfRouteIsEmpty() bool

func (*Vehicle) ProtoMessage

func (*Vehicle) ProtoMessage()

func (*Vehicle) ProtoReflect

func (x *Vehicle) ProtoReflect() protoreflect.Message

func (*Vehicle) Reset

func (x *Vehicle) Reset()

func (*Vehicle) String

func (x *Vehicle) String() string

Vehicle_DurationLimit

type Vehicle_DurationLimit struct {
	MaxDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_duration,json=maxDuration,proto3" json:"max_duration,omitempty"`

	SoftMaxDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=soft_max_duration,json=softMaxDuration,proto3" json:"soft_max_duration,omitempty"`

	CostPerHourAfterSoftMax *float64 "" /* 146 byte string literal not displayed */

	QuadraticSoftMaxDuration *durationpb.Duration "" /* 137 byte string literal not displayed */

	CostPerSquareHourAfterQuadraticSoftMax *float64 "" /* 195 byte string literal not displayed */

}

A limit defining a maximum duration of the route of a vehicle. It can be either hard or soft.

When a soft limit field is defined, both the soft max threshold and its associated cost must be defined together.

func (*Vehicle_DurationLimit) Descriptor

func (*Vehicle_DurationLimit) Descriptor() ([]byte, []int)

Deprecated: Use Vehicle_DurationLimit.ProtoReflect.Descriptor instead.

func (*Vehicle_DurationLimit) GetCostPerHourAfterSoftMax

func (x *Vehicle_DurationLimit) GetCostPerHourAfterSoftMax() float64

func (*Vehicle_DurationLimit) GetCostPerSquareHourAfterQuadraticSoftMax

func (x *Vehicle_DurationLimit) GetCostPerSquareHourAfterQuadraticSoftMax() float64

func (*Vehicle_DurationLimit) GetMaxDuration

func (x *Vehicle_DurationLimit) GetMaxDuration() *durationpb.Duration

func (*Vehicle_DurationLimit) GetQuadraticSoftMaxDuration

func (x *Vehicle_DurationLimit) GetQuadraticSoftMaxDuration() *durationpb.Duration

func (*Vehicle_DurationLimit) GetSoftMaxDuration

func (x *Vehicle_DurationLimit) GetSoftMaxDuration() *durationpb.Duration

func (*Vehicle_DurationLimit) ProtoMessage

func (*Vehicle_DurationLimit) ProtoMessage()

func (*Vehicle_DurationLimit) ProtoReflect

func (x *Vehicle_DurationLimit) ProtoReflect() protoreflect.Message

func (*Vehicle_DurationLimit) Reset

func (x *Vehicle_DurationLimit) Reset()

func (*Vehicle_DurationLimit) String

func (x *Vehicle_DurationLimit) String() string

Vehicle_LoadLimit

type Vehicle_LoadLimit struct {
	MaxLoad *int64 `protobuf:"varint,1,opt,name=max_load,json=maxLoad,proto3,oneof" json:"max_load,omitempty"`

	SoftMaxLoad int64 `protobuf:"varint,2,opt,name=soft_max_load,json=softMaxLoad,proto3" json:"soft_max_load,omitempty"`

	CostPerUnitAboveSoftMax float64 "" /* 140 byte string literal not displayed */

	StartLoadInterval *Vehicle_LoadLimit_Interval `protobuf:"bytes,4,opt,name=start_load_interval,json=startLoadInterval,proto3" json:"start_load_interval,omitempty"`

	EndLoadInterval *Vehicle_LoadLimit_Interval `protobuf:"bytes,5,opt,name=end_load_interval,json=endLoadInterval,proto3" json:"end_load_interval,omitempty"`

}

Defines a load limit applying to a vehicle, e.g. "this truck may only carry up to 3500 kg". See [load_limits][google.cloud.optimization.v1.Vehicle.load_limits].

func (*Vehicle_LoadLimit) Descriptor

func (*Vehicle_LoadLimit) Descriptor() ([]byte, []int)

Deprecated: Use Vehicle_LoadLimit.ProtoReflect.Descriptor instead.

func (*Vehicle_LoadLimit) GetCostPerUnitAboveSoftMax

func (x *Vehicle_LoadLimit) GetCostPerUnitAboveSoftMax() float64

func (*Vehicle_LoadLimit) GetEndLoadInterval

func (x *Vehicle_LoadLimit) GetEndLoadInterval() *Vehicle_LoadLimit_Interval

func (*Vehicle_LoadLimit) GetMaxLoad

func (x *Vehicle_LoadLimit) GetMaxLoad() int64

func (*Vehicle_LoadLimit) GetSoftMaxLoad

func (x *Vehicle_LoadLimit) GetSoftMaxLoad() int64

func (*Vehicle_LoadLimit) GetStartLoadInterval

func (x *Vehicle_LoadLimit) GetStartLoadInterval() *Vehicle_LoadLimit_Interval

func (*Vehicle_LoadLimit) ProtoMessage

func (*Vehicle_LoadLimit) ProtoMessage()

func (*Vehicle_LoadLimit) ProtoReflect

func (x *Vehicle_LoadLimit) ProtoReflect() protoreflect.Message

func (*Vehicle_LoadLimit) Reset

func (x *Vehicle_LoadLimit) Reset()

func (*Vehicle_LoadLimit) String

func (x *Vehicle_LoadLimit) String() string

Vehicle_LoadLimit_Interval

type Vehicle_LoadLimit_Interval struct {

	// A minimum acceptable load. Must be ≥ 0.
	// If they're both specified,
	// [min][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval.min] must
	// be ≤
	// [max][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval.max].
	Min int64 `protobuf:"varint,1,opt,name=min,proto3" json:"min,omitempty"`
	// A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum
	// load is unrestricted by this message.
	// If they're both specified,
	// [min][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval.min] must
	// be ≤
	// [max][google.cloud.optimization.v1.Vehicle.LoadLimit.Interval.max].
	Max *int64 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"`
	// contains filtered or unexported fields
}

Interval of acceptable load amounts.

func (*Vehicle_LoadLimit_Interval) Descriptor

func (*Vehicle_LoadLimit_Interval) Descriptor() ([]byte, []int)

Deprecated: Use Vehicle_LoadLimit_Interval.ProtoReflect.Descriptor instead.

func (*Vehicle_LoadLimit_Interval) GetMax

func (x *Vehicle_LoadLimit_Interval) GetMax() int64

func (*Vehicle_LoadLimit_Interval) GetMin

func (x *Vehicle_LoadLimit_Interval) GetMin() int64

func (*Vehicle_LoadLimit_Interval) ProtoMessage

func (*Vehicle_LoadLimit_Interval) ProtoMessage()

func (*Vehicle_LoadLimit_Interval) ProtoReflect

func (*Vehicle_LoadLimit_Interval) Reset

func (x *Vehicle_LoadLimit_Interval) Reset()

func (*Vehicle_LoadLimit_Interval) String

func (x *Vehicle_LoadLimit_Interval) String() string

Vehicle_TravelMode

type Vehicle_TravelMode int32

Travel modes which can be used by vehicles.

These should be a subset of the Google Maps Platform Routes Preferred API travel modes, see: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.

Vehicle_TRAVEL_MODE_UNSPECIFIED, Vehicle_DRIVING, Vehicle_WALKING

const (
	// Unspecified travel mode, equivalent to `DRIVING`.
	Vehicle_TRAVEL_MODE_UNSPECIFIED Vehicle_TravelMode = 0
	// Travel mode corresponding to driving directions (car, ...).
	Vehicle_DRIVING Vehicle_TravelMode = 1
	// Travel mode corresponding to walking directions.
	Vehicle_WALKING Vehicle_TravelMode = 2
)

func (Vehicle_TravelMode) Descriptor

func (Vehicle_TravelMode) Enum

func (Vehicle_TravelMode) EnumDescriptor

func (Vehicle_TravelMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use Vehicle_TravelMode.Descriptor instead.

func (Vehicle_TravelMode) Number

func (Vehicle_TravelMode) String

func (x Vehicle_TravelMode) String() string

func (Vehicle_TravelMode) Type

Vehicle_UnloadingPolicy

type Vehicle_UnloadingPolicy int32

Policy on how a vehicle can be unloaded. Applies only to shipments having both a pickup and a delivery.

Other shipments are free to occur anywhere on the route independent of unloading_policy.

Vehicle_UNLOADING_POLICY_UNSPECIFIED, Vehicle_LAST_IN_FIRST_OUT, Vehicle_FIRST_IN_FIRST_OUT

const (
	// Unspecified unloading policy; deliveries must just occur after their
	// corresponding pickups.
	Vehicle_UNLOADING_POLICY_UNSPECIFIED Vehicle_UnloadingPolicy = 0
	// Deliveries must occur in reverse order of pickups
	Vehicle_LAST_IN_FIRST_OUT Vehicle_UnloadingPolicy = 1
	// Deliveries must occur in the same order as pickups
	Vehicle_FIRST_IN_FIRST_OUT Vehicle_UnloadingPolicy = 2
)

func (Vehicle_UnloadingPolicy) Descriptor

func (Vehicle_UnloadingPolicy) Enum

func (Vehicle_UnloadingPolicy) EnumDescriptor

func (Vehicle_UnloadingPolicy) EnumDescriptor() ([]byte, []int)

Deprecated: Use Vehicle_UnloadingPolicy.Descriptor instead.

func (Vehicle_UnloadingPolicy) Number

func (Vehicle_UnloadingPolicy) String

func (x Vehicle_UnloadingPolicy) String() string

func (Vehicle_UnloadingPolicy) Type

Waypoint

type Waypoint struct {

	// Different ways to represent a location.
	//
	// Types that are assignable to LocationType:
	//
	//	*Waypoint_Location
	//	*Waypoint_PlaceId
	LocationType isWaypoint_LocationType `protobuf_oneof:"location_type"`
	// Indicates that the location of this waypoint is meant to have a preference
	// for the vehicle to stop at a particular side of road. When you set this
	// value, the route will pass through the location so that the vehicle can
	// stop at the side of road that the location is biased towards from the
	// center of the road. This option works only for the 'DRIVING' travel mode,
	// and when the 'location_type' is set to 'location'.
	SideOfRoad bool `protobuf:"varint,3,opt,name=side_of_road,json=sideOfRoad,proto3" json:"side_of_road,omitempty"`
	// contains filtered or unexported fields
}

Encapsulates a waypoint. Waypoints mark arrival and departure locations of VisitRequests, and start and end locations of Vehicles.

func (*Waypoint) Descriptor

func (*Waypoint) Descriptor() ([]byte, []int)

Deprecated: Use Waypoint.ProtoReflect.Descriptor instead.

func (*Waypoint) GetLocation

func (x *Waypoint) GetLocation() *Location

func (*Waypoint) GetLocationType

func (m *Waypoint) GetLocationType() isWaypoint_LocationType

func (*Waypoint) GetPlaceId

func (x *Waypoint) GetPlaceId() string

func (*Waypoint) GetSideOfRoad

func (x *Waypoint) GetSideOfRoad() bool

func (*Waypoint) ProtoMessage

func (*Waypoint) ProtoMessage()

func (*Waypoint) ProtoReflect

func (x *Waypoint) ProtoReflect() protoreflect.Message

func (*Waypoint) Reset

func (x *Waypoint) Reset()

func (*Waypoint) String

func (x *Waypoint) String() string

Waypoint_Location

type Waypoint_Location struct {
	// A point specified using geographic coordinates, including an optional
	// heading.
	Location *Location `protobuf:"bytes,1,opt,name=location,proto3,oneof"`
}

Waypoint_PlaceId

type Waypoint_PlaceId struct {
	// The POI Place ID associated with the waypoint.
	PlaceId string `protobuf:"bytes,2,opt,name=place_id,json=placeId,proto3,oneof"`
}