// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/maps/routes/v1/compute_route_matrix_request.proto

package routes

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// ComputeRouteMatrix request message
type ComputeRouteMatrixRequest struct {
	// Required. Array of origins, which determines the rows of the response matrix.
	Origins []*RouteMatrixOrigin `protobuf:"bytes,1,rep,name=origins,proto3" json:"origins,omitempty"`
	// Required. Array of destinations, which determines the columns of the response matrix.
	Destinations []*RouteMatrixDestination `protobuf:"bytes,2,rep,name=destinations,proto3" json:"destinations,omitempty"`
	// Optional. Specifies the mode of transportation.
	TravelMode RouteTravelMode `protobuf:"varint,3,opt,name=travel_mode,json=travelMode,proto3,enum=google.maps.routes.v1.RouteTravelMode" json:"travel_mode,omitempty"`
	// Optional. Specifies how to compute the route. The server attempts to use the selected
	// routing preference to compute the route. If the routing preference results
	// in an error or an extra long latency, an error is returned. In the future,
	// we might implement a fallback mechanism to use a different option when the
	// preferred option does not give a valid result. You can specify this option
	// only when the `travel_mode` is `DRIVE` or `TWO_WHEELER`, otherwise the
	// request fails.
	RoutingPreference RoutingPreference `protobuf:"varint,4,opt,name=routing_preference,json=routingPreference,proto3,enum=google.maps.routes.v1.RoutingPreference" json:"routing_preference,omitempty"`
	// Optional. The departure time. If you don't set this value, this defaults to the time
	// that you made the request. If you set this value to a time that has already
	// occurred, the request fails.
	DepartureTime        *timestamp.Timestamp `protobuf:"bytes,5,opt,name=departure_time,json=departureTime,proto3" json:"departure_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ComputeRouteMatrixRequest) Reset()         { *m = ComputeRouteMatrixRequest{} }
func (m *ComputeRouteMatrixRequest) String() string { return proto.CompactTextString(m) }
func (*ComputeRouteMatrixRequest) ProtoMessage()    {}
func (*ComputeRouteMatrixRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_db693e779c78d66d, []int{0}
}

func (m *ComputeRouteMatrixRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ComputeRouteMatrixRequest.Unmarshal(m, b)
}
func (m *ComputeRouteMatrixRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ComputeRouteMatrixRequest.Marshal(b, m, deterministic)
}
func (m *ComputeRouteMatrixRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ComputeRouteMatrixRequest.Merge(m, src)
}
func (m *ComputeRouteMatrixRequest) XXX_Size() int {
	return xxx_messageInfo_ComputeRouteMatrixRequest.Size(m)
}
func (m *ComputeRouteMatrixRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ComputeRouteMatrixRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ComputeRouteMatrixRequest proto.InternalMessageInfo

func (m *ComputeRouteMatrixRequest) GetOrigins() []*RouteMatrixOrigin {
	if m != nil {
		return m.Origins
	}
	return nil
}

func (m *ComputeRouteMatrixRequest) GetDestinations() []*RouteMatrixDestination {
	if m != nil {
		return m.Destinations
	}
	return nil
}

func (m *ComputeRouteMatrixRequest) GetTravelMode() RouteTravelMode {
	if m != nil {
		return m.TravelMode
	}
	return RouteTravelMode_TRAVEL_MODE_UNSPECIFIED
}

func (m *ComputeRouteMatrixRequest) GetRoutingPreference() RoutingPreference {
	if m != nil {
		return m.RoutingPreference
	}
	return RoutingPreference_ROUTING_PREFERENCE_UNSPECIFIED
}

func (m *ComputeRouteMatrixRequest) GetDepartureTime() *timestamp.Timestamp {
	if m != nil {
		return m.DepartureTime
	}
	return nil
}

// A single origin for ComputeRouteMatrixRequest
type RouteMatrixOrigin struct {
	// Required. Origin waypoint
	Waypoint *Waypoint `protobuf:"bytes,1,opt,name=waypoint,proto3" json:"waypoint,omitempty"`
	// Optional. Modifiers for every route that takes this as the origin
	RouteModifiers       *RouteModifiers `protobuf:"bytes,2,opt,name=route_modifiers,json=routeModifiers,proto3" json:"route_modifiers,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *RouteMatrixOrigin) Reset()         { *m = RouteMatrixOrigin{} }
func (m *RouteMatrixOrigin) String() string { return proto.CompactTextString(m) }
func (*RouteMatrixOrigin) ProtoMessage()    {}
func (*RouteMatrixOrigin) Descriptor() ([]byte, []int) {
	return fileDescriptor_db693e779c78d66d, []int{1}
}

func (m *RouteMatrixOrigin) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteMatrixOrigin.Unmarshal(m, b)
}
func (m *RouteMatrixOrigin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteMatrixOrigin.Marshal(b, m, deterministic)
}
func (m *RouteMatrixOrigin) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteMatrixOrigin.Merge(m, src)
}
func (m *RouteMatrixOrigin) XXX_Size() int {
	return xxx_messageInfo_RouteMatrixOrigin.Size(m)
}
func (m *RouteMatrixOrigin) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteMatrixOrigin.DiscardUnknown(m)
}

var xxx_messageInfo_RouteMatrixOrigin proto.InternalMessageInfo

func (m *RouteMatrixOrigin) GetWaypoint() *Waypoint {
	if m != nil {
		return m.Waypoint
	}
	return nil
}

func (m *RouteMatrixOrigin) GetRouteModifiers() *RouteModifiers {
	if m != nil {
		return m.RouteModifiers
	}
	return nil
}

// A single destination for ComputeRouteMatrixRequest
type RouteMatrixDestination struct {
	// Required. Destination waypoint
	Waypoint             *Waypoint `protobuf:"bytes,1,opt,name=waypoint,proto3" json:"waypoint,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *RouteMatrixDestination) Reset()         { *m = RouteMatrixDestination{} }
func (m *RouteMatrixDestination) String() string { return proto.CompactTextString(m) }
func (*RouteMatrixDestination) ProtoMessage()    {}
func (*RouteMatrixDestination) Descriptor() ([]byte, []int) {
	return fileDescriptor_db693e779c78d66d, []int{2}
}

func (m *RouteMatrixDestination) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteMatrixDestination.Unmarshal(m, b)
}
func (m *RouteMatrixDestination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteMatrixDestination.Marshal(b, m, deterministic)
}
func (m *RouteMatrixDestination) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteMatrixDestination.Merge(m, src)
}
func (m *RouteMatrixDestination) XXX_Size() int {
	return xxx_messageInfo_RouteMatrixDestination.Size(m)
}
func (m *RouteMatrixDestination) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteMatrixDestination.DiscardUnknown(m)
}

var xxx_messageInfo_RouteMatrixDestination proto.InternalMessageInfo

func (m *RouteMatrixDestination) GetWaypoint() *Waypoint {
	if m != nil {
		return m.Waypoint
	}
	return nil
}

func init() {
	proto.RegisterType((*ComputeRouteMatrixRequest)(nil), "google.maps.routes.v1.ComputeRouteMatrixRequest")
	proto.RegisterType((*RouteMatrixOrigin)(nil), "google.maps.routes.v1.RouteMatrixOrigin")
	proto.RegisterType((*RouteMatrixDestination)(nil), "google.maps.routes.v1.RouteMatrixDestination")
}

func init() {
	proto.RegisterFile("google/maps/routes/v1/compute_route_matrix_request.proto", fileDescriptor_db693e779c78d66d)
}

var fileDescriptor_db693e779c78d66d = []byte{
	// 497 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0x41, 0x8f, 0x12, 0x3f,
	0x18, 0xc6, 0x53, 0xd8, 0xff, 0x5f, 0x53, 0x14, 0xb3, 0x93, 0xac, 0x99, 0xe5, 0xe0, 0x12, 0xa2,
	0x86, 0x8b, 0x33, 0x01, 0x2f, 0x26, 0x7b, 0x51, 0x34, 0x72, 0x91, 0x48, 0x66, 0x37, 0x98, 0x6c,
	0x48, 0x26, 0x85, 0x79, 0xa9, 0x4d, 0x98, 0xb6, 0xb6, 0x1d, 0xd4, 0xaf, 0xe3, 0x71, 0x4f, 0x1e,
	0xfc, 0x14, 0x7e, 0x0a, 0x3f, 0x86, 0x47, 0xd3, 0x96, 0xa2, 0xac, 0x2c, 0x9a, 0x78, 0x83, 0x67,
	0x9e, 0xe7, 0xf7, 0xbe, 0xed, 0x33, 0x83, 0x9f, 0x50, 0x21, 0xe8, 0x12, 0xd2, 0x92, 0x48, 0x9d,
	0x2a, 0x51, 0x19, 0xd0, 0xe9, 0xaa, 0x97, 0xce, 0x45, 0x29, 0x2b, 0x03, 0xb9, 0x53, 0xf2, 0x92,
	0x18, 0xc5, 0x3e, 0xe4, 0x0a, 0xde, 0x55, 0xa0, 0x4d, 0x22, 0x95, 0x30, 0x22, 0x3a, 0xf2, 0xc9,
	0xc4, 0x26, 0x13, 0x9f, 0x4c, 0x56, 0xbd, 0xd6, 0xc9, 0x1a, 0x48, 0x24, 0x4b, 0x17, 0x0c, 0x96,
	0x45, 0x3e, 0x83, 0xb7, 0x64, 0xc5, 0x84, 0xf2, 0xb9, 0x56, 0xff, 0x2f, 0x26, 0xea, 0xed, 0x59,
	0xad, 0xfb, 0xbb, 0x33, 0xef, 0xc9, 0x47, 0x29, 0x18, 0x0f, 0xae, 0x30, 0xda, 0xfd, 0x9b, 0x55,
	0x8b, 0xd4, 0xb0, 0x12, 0xb4, 0x21, 0xa5, 0xf4, 0x86, 0xce, 0xe7, 0x3a, 0x3e, 0x7e, 0xee, 0xe7,
	0x64, 0x16, 0x32, 0x72, 0xe7, 0xca, 0xfc, 0xa8, 0x68, 0x88, 0x6f, 0x08, 0xc5, 0x28, 0xe3, 0x3a,
	0x46, 0xed, 0x7a, 0xb7, 0xd1, 0xef, 0x26, 0x3b, 0x8f, 0x98, 0xfc, 0x92, 0x7d, 0xed, 0x02, 0x83,
	0xfa, 0xb7, 0x67, 0xb5, 0x2c, 0xa4, 0xa3, 0x09, 0xbe, 0x55, 0x80, 0x36, 0x8c, 0x13, 0xc3, 0x04,
	0xd7, 0x71, 0xcd, 0xd1, 0x1e, 0xfd, 0x99, 0xf6, 0xe2, 0x67, 0xca, 0x23, 0xb7, 0x38, 0xd1, 0x2b,
	0xdc, 0x30, 0x8a, 0xac, 0x60, 0x99, 0x97, 0xa2, 0x80, 0xb8, 0xde, 0x46, 0xdd, 0x66, 0xff, 0xe1,
	0x3e, 0xec, 0xb9, 0xb3, 0x8f, 0x44, 0x01, 0x96, 0x87, 0x32, 0x6c, 0x36, 0x42, 0x34, 0xc5, 0x91,
	0x75, 0x33, 0x4e, 0x73, 0xa9, 0x60, 0x01, 0x0a, 0xf8, 0x1c, 0xe2, 0x03, 0x07, 0xdd, 0x77, 0x72,
	0xc6, 0xe9, 0x78, 0xe3, 0xf7, 0xd8, 0x43, 0x75, 0x55, 0x8f, 0x5e, 0xe2, 0x66, 0x01, 0x92, 0x28,
	0x53, 0x29, 0xc8, 0x6d, 0x0f, 0xf1, 0x7f, 0x6d, 0xd4, 0x6d, 0xf4, 0x5b, 0x81, 0x1c, 0x4a, 0x4a,
	0xce, 0x43, 0x49, 0x9e, 0x75, 0x7b, 0x13, 0xb3, 0x0f, 0x3a, 0x97, 0x08, 0x1f, 0xfe, 0x76, 0xdf,
	0xd1, 0x53, 0x7c, 0x33, 0x74, 0x1f, 0x23, 0xc7, 0x3d, 0xb9, 0x66, 0xe3, 0x37, 0x6b, 0x9b, 0xbf,
	0xcf, 0x4d, 0x2a, 0x3a, 0xc3, 0x77, 0xd6, 0xef, 0xb6, 0x28, 0xd8, 0x82, 0x81, 0xb2, 0x35, 0x59,
	0xd0, 0x83, 0xbd, 0x35, 0x05, 0xb3, 0xdf, 0xb5, 0xa9, 0xb6, 0xc4, 0xce, 0x05, 0xbe, 0xbb, 0xbb,
	0xcd, 0x7f, 0x5f, 0x78, 0xf0, 0x05, 0xe1, 0xe3, 0xb9, 0x28, 0x77, 0xa7, 0x06, 0xf7, 0xae, 0x7d,
	0xad, 0xc7, 0xf6, 0x9e, 0xc7, 0xe8, 0xe2, 0x74, 0x1d, 0xa4, 0x62, 0x49, 0x38, 0x4d, 0x84, 0xa2,
	0x29, 0x05, 0xee, 0x5a, 0x48, 0xfd, 0x23, 0x22, 0x99, 0xbe, 0xf2, 0x85, 0x9d, 0xfa, 0x5f, 0xdf,
	0x11, 0xfa, 0x54, 0x3b, 0x18, 0x8e, 0xb2, 0xb3, 0xcb, 0xda, 0xd1, 0xd0, 0x73, 0x46, 0x76, 0x81,
	0xcc, 0x2f, 0x30, 0xe9, 0x7d, 0x0d, 0xfa, 0xd4, 0xea, 0x53, 0xaf, 0x4f, 0x27, 0xbd, 0xd9, 0xff,
	0x6e, 0xc2, 0xe3, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x51, 0xf4, 0x41, 0xfe, 0x68, 0x04, 0x00,
	0x00,
}
