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

package routes

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	status "google.golang.org/genproto/googleapis/rpc/status"
)

// 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

// Encapsulates route information computed for an origin/destination pair in the
// ComputeRouteMatrix API. This proto can be streamed to the client.
type RouteMatrixElement struct {
	// Zero-based index of the origin in the request.
	OriginIndex int32 `protobuf:"varint,1,opt,name=origin_index,json=originIndex,proto3" json:"origin_index,omitempty"`
	// Zero-based index of the destination in the request.
	DestinationIndex int32 `protobuf:"varint,2,opt,name=destination_index,json=destinationIndex,proto3" json:"destination_index,omitempty"`
	// Error status code for this element.
	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	// The travel distance of the route, in meters.
	DistanceMeters int32 `protobuf:"varint,4,opt,name=distance_meters,json=distanceMeters,proto3" json:"distance_meters,omitempty"`
	// The length of time needed to navigate the route. If you set the
	// `route_preference` to `TRAFFIC_UNAWARE`, then this value is the same as
	// `static_duration`. If you set the `route_preference` to either
	// `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated
	// taking traffic conditions into account.
	Duration *duration.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"`
	// The duration of traveling through the route without taking traffic
	// conditions into consideration.
	StaticDuration *duration.Duration `protobuf:"bytes,6,opt,name=static_duration,json=staticDuration,proto3" json:"static_duration,omitempty"`
	// Additional information about the route. For example: restriction
	// information and toll information
	TravelAdvisory *RouteTravelAdvisory `protobuf:"bytes,7,opt,name=travel_advisory,json=travelAdvisory,proto3" json:"travel_advisory,omitempty"`
	// In some cases when the server is not able to compute the route with the
	// given preferences for this particular origin/destination pair, it may
	// fall back to using a different mode of computation. When fallback mode is
	// used, this field contains detailed information about the fallback response.
	// Otherwise this field is unset.
	FallbackInfo         *FallbackInfo `protobuf:"bytes,8,opt,name=fallback_info,json=fallbackInfo,proto3" json:"fallback_info,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_RouteMatrixElement proto.InternalMessageInfo

func (m *RouteMatrixElement) GetOriginIndex() int32 {
	if m != nil {
		return m.OriginIndex
	}
	return 0
}

func (m *RouteMatrixElement) GetDestinationIndex() int32 {
	if m != nil {
		return m.DestinationIndex
	}
	return 0
}

func (m *RouteMatrixElement) GetStatus() *status.Status {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *RouteMatrixElement) GetDistanceMeters() int32 {
	if m != nil {
		return m.DistanceMeters
	}
	return 0
}

func (m *RouteMatrixElement) GetDuration() *duration.Duration {
	if m != nil {
		return m.Duration
	}
	return nil
}

func (m *RouteMatrixElement) GetStaticDuration() *duration.Duration {
	if m != nil {
		return m.StaticDuration
	}
	return nil
}

func (m *RouteMatrixElement) GetTravelAdvisory() *RouteTravelAdvisory {
	if m != nil {
		return m.TravelAdvisory
	}
	return nil
}

func (m *RouteMatrixElement) GetFallbackInfo() *FallbackInfo {
	if m != nil {
		return m.FallbackInfo
	}
	return nil
}

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

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

var fileDescriptor_ad1783e4ac723373 = []byte{
	// 450 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x4f, 0x6f, 0xd3, 0x30,
	0x14, 0x57, 0xba, 0xad, 0x4c, 0xde, 0x68, 0xc1, 0xd2, 0x44, 0xb6, 0xc3, 0xb4, 0xc1, 0x81, 0x31,
	0x24, 0x87, 0x80, 0x38, 0xf5, 0x44, 0xf9, 0x53, 0x7a, 0x88, 0x54, 0xb9, 0xa8, 0x07, 0x54, 0x29,
	0x72, 0x13, 0x27, 0xb2, 0x48, 0xec, 0xc8, 0x76, 0xa2, 0xf2, 0x75, 0x38, 0x72, 0xe6, 0x53, 0x70,
	0xe5, 0xcb, 0x70, 0x44, 0xb1, 0x9d, 0xaa, 0x85, 0x02, 0xb7, 0xbc, 0xdf, 0xbf, 0xf7, 0xfc, 0x5e,
	0xc0, 0xb3, 0x5c, 0x88, 0xbc, 0xa0, 0x41, 0x49, 0x2a, 0x15, 0x48, 0x51, 0x6b, 0xaa, 0x82, 0x26,
	0xb4, 0x5f, 0x71, 0x49, 0xb4, 0x64, 0xeb, 0x98, 0x16, 0xb4, 0xa4, 0x5c, 0xa3, 0x4a, 0x0a, 0x2d,
	0xe0, 0x99, 0x75, 0xa0, 0xd6, 0x81, 0xac, 0x03, 0x35, 0xe1, 0xc5, 0x93, 0xfd, 0x41, 0x19, 0x29,
	0x8a, 0x15, 0x49, 0x3e, 0xc5, 0x8c, 0x67, 0xc2, 0x26, 0x5c, 0x5c, 0xff, 0xa3, 0xa7, 0x93, 0x5c,
	0x3a, 0x89, 0xa9, 0x56, 0x75, 0x16, 0xa4, 0xb5, 0x24, 0x9a, 0x09, 0xee, 0xf8, 0x07, 0x8e, 0x97,
	0x55, 0x12, 0x28, 0x4d, 0x74, 0xad, 0x2c, 0xf1, 0xf0, 0xc7, 0x01, 0x80, 0xb8, 0x0d, 0x8a, 0xcc,
	0xec, 0x6f, 0xed, 0xe8, 0xf0, 0x1a, 0x9c, 0x0a, 0xc9, 0x72, 0xc6, 0x63, 0xc6, 0x53, 0xba, 0xf6,
	0xbd, 0x2b, 0xef, 0xe6, 0x08, 0x9f, 0x58, 0x6c, 0xda, 0x42, 0xf0, 0x29, 0xb8, 0x9f, 0x52, 0xa5,
	0x19, 0x37, 0x7d, 0x9c, 0xae, 0x67, 0x74, 0xf7, 0xb6, 0x08, 0x2b, 0xbe, 0x05, 0x7d, 0xdb, 0xd6,
	0x3f, 0xb8, 0xf2, 0x6e, 0x4e, 0x9e, 0x43, 0xe4, 0xb6, 0x22, 0xab, 0x04, 0xcd, 0x0d, 0x83, 0x9d,
	0x02, 0x3e, 0x06, 0xc3, 0x94, 0x29, 0x4d, 0x78, 0x42, 0xe3, 0x92, 0x6a, 0x2a, 0x95, 0x7f, 0x68,
	0x62, 0x07, 0x1d, 0x1c, 0x19, 0x14, 0xbe, 0x04, 0xc7, 0xdd, 0x33, 0xfd, 0x23, 0x13, 0x7b, 0xde,
	0xc5, 0x76, 0x7b, 0x40, 0x6f, 0x9c, 0x00, 0x6f, 0xa4, 0x70, 0x0c, 0x86, 0x6d, 0x27, 0x96, 0xc4,
	0x1b, 0x77, 0xff, 0x7f, 0xee, 0x81, 0x75, 0x74, 0x35, 0x9c, 0x83, 0xa1, 0x96, 0xa4, 0xa1, 0x45,
	0x4c, 0xd2, 0x86, 0x29, 0x21, 0x3f, 0xfb, 0x77, 0x4c, 0xc6, 0x2d, 0xda, 0x7b, 0x6e, 0x64, 0x76,
	0xfc, 0xc1, 0x58, 0x5e, 0x39, 0x07, 0x1e, 0xe8, 0x9d, 0x1a, 0xbe, 0x07, 0x77, 0x77, 0xce, 0xef,
	0x1f, 0x9b, 0xc8, 0x47, 0x7f, 0x89, 0x7c, 0xe7, 0xb4, 0x53, 0x9e, 0x09, 0x7c, 0x9a, 0x6d, 0x55,
	0xe3, 0x6f, 0x1e, 0x38, 0x4f, 0x44, 0xb9, 0xdf, 0x38, 0xbe, 0x7c, 0x2d, 0xca, 0xaa, 0xd6, 0xf4,
	0xcf, 0xbb, 0xcf, 0xda, 0x87, 0xcf, 0xbc, 0x8f, 0x23, 0x67, 0xcc, 0x45, 0x41, 0x78, 0x8e, 0x84,
	0xcc, 0x83, 0x9c, 0x72, 0xb3, 0x96, 0xc0, 0x52, 0xa4, 0x62, 0xea, 0xb7, 0x1f, 0x72, 0x64, 0xbf,
	0x7e, 0x7a, 0xde, 0x97, 0xde, 0xe1, 0x24, 0xc2, 0xf3, 0xaf, 0xbd, 0xb3, 0x89, 0xcd, 0x89, 0xda,
	0x01, 0xb0, 0x1d, 0x60, 0x11, 0x7e, 0xef, 0xf0, 0x65, 0x8b, 0x2f, 0x2d, 0xbe, 0x5c, 0x84, 0xab,
	0xbe, 0xe9, 0xf0, 0xe2, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xef, 0x43, 0xf4, 0x65, 0x03,
	0x00, 0x00,
}
