...

Source file src/google.golang.org/genproto/googleapis/maps/routes/v1/route.pb.go

Documentation: google.golang.org/genproto/googleapis/maps/routes/v1

     1  // Copyright 2022 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.26.0
    18  // 	protoc        v3.12.2
    19  // source: google/maps/routes/v1/route.proto
    20  
    21  package routes
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	viewport "google.golang.org/genproto/googleapis/geo/type/viewport"
    28  	money "google.golang.org/genproto/googleapis/type/money"
    29  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    30  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    31  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    32  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  // A set of values that specify the navigation action to take for the current
    42  // step (e.g., turn left, merge, straight, etc.).
    43  type Maneuver int32
    44  
    45  const (
    46  	// Not used.
    47  	Maneuver_MANEUVER_UNSPECIFIED Maneuver = 0
    48  	// Turn slightly to the left.
    49  	Maneuver_TURN_SLIGHT_LEFT Maneuver = 1
    50  	// Turn sharply to the left.
    51  	Maneuver_TURN_SHARP_LEFT Maneuver = 2
    52  	// Make a left u-turn.
    53  	Maneuver_UTURN_LEFT Maneuver = 3
    54  	// Turn left.
    55  	Maneuver_TURN_LEFT Maneuver = 4
    56  	// Turn slightly to the right.
    57  	Maneuver_TURN_SLIGHT_RIGHT Maneuver = 5
    58  	// Turn sharply to the right.
    59  	Maneuver_TURN_SHARP_RIGHT Maneuver = 6
    60  	// Make a right u-turn.
    61  	Maneuver_UTURN_RIGHT Maneuver = 7
    62  	// Turn right.
    63  	Maneuver_TURN_RIGHT Maneuver = 8
    64  	// Go straight.
    65  	Maneuver_STRAIGHT Maneuver = 9
    66  	// Take the left ramp.
    67  	Maneuver_RAMP_LEFT Maneuver = 10
    68  	// Take the right ramp.
    69  	Maneuver_RAMP_RIGHT Maneuver = 11
    70  	// Merge into traffic.
    71  	Maneuver_MERGE Maneuver = 12
    72  	// Take the left fork.
    73  	Maneuver_FORK_LEFT Maneuver = 13
    74  	// Take the right fork.
    75  	Maneuver_FORK_RIGHT Maneuver = 14
    76  	// Take the ferry.
    77  	Maneuver_FERRY Maneuver = 15
    78  	// Take the train leading onto the ferry.
    79  	Maneuver_FERRY_TRAIN Maneuver = 16
    80  	// Turn left at the roundabout.
    81  	Maneuver_ROUNDABOUT_LEFT Maneuver = 17
    82  	// Turn right at the roundabout.
    83  	Maneuver_ROUNDABOUT_RIGHT Maneuver = 18
    84  )
    85  
    86  // Enum value maps for Maneuver.
    87  var (
    88  	Maneuver_name = map[int32]string{
    89  		0:  "MANEUVER_UNSPECIFIED",
    90  		1:  "TURN_SLIGHT_LEFT",
    91  		2:  "TURN_SHARP_LEFT",
    92  		3:  "UTURN_LEFT",
    93  		4:  "TURN_LEFT",
    94  		5:  "TURN_SLIGHT_RIGHT",
    95  		6:  "TURN_SHARP_RIGHT",
    96  		7:  "UTURN_RIGHT",
    97  		8:  "TURN_RIGHT",
    98  		9:  "STRAIGHT",
    99  		10: "RAMP_LEFT",
   100  		11: "RAMP_RIGHT",
   101  		12: "MERGE",
   102  		13: "FORK_LEFT",
   103  		14: "FORK_RIGHT",
   104  		15: "FERRY",
   105  		16: "FERRY_TRAIN",
   106  		17: "ROUNDABOUT_LEFT",
   107  		18: "ROUNDABOUT_RIGHT",
   108  	}
   109  	Maneuver_value = map[string]int32{
   110  		"MANEUVER_UNSPECIFIED": 0,
   111  		"TURN_SLIGHT_LEFT":     1,
   112  		"TURN_SHARP_LEFT":      2,
   113  		"UTURN_LEFT":           3,
   114  		"TURN_LEFT":            4,
   115  		"TURN_SLIGHT_RIGHT":    5,
   116  		"TURN_SHARP_RIGHT":     6,
   117  		"UTURN_RIGHT":          7,
   118  		"TURN_RIGHT":           8,
   119  		"STRAIGHT":             9,
   120  		"RAMP_LEFT":            10,
   121  		"RAMP_RIGHT":           11,
   122  		"MERGE":                12,
   123  		"FORK_LEFT":            13,
   124  		"FORK_RIGHT":           14,
   125  		"FERRY":                15,
   126  		"FERRY_TRAIN":          16,
   127  		"ROUNDABOUT_LEFT":      17,
   128  		"ROUNDABOUT_RIGHT":     18,
   129  	}
   130  )
   131  
   132  func (x Maneuver) Enum() *Maneuver {
   133  	p := new(Maneuver)
   134  	*p = x
   135  	return p
   136  }
   137  
   138  func (x Maneuver) String() string {
   139  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   140  }
   141  
   142  func (Maneuver) Descriptor() protoreflect.EnumDescriptor {
   143  	return file_google_maps_routes_v1_route_proto_enumTypes[0].Descriptor()
   144  }
   145  
   146  func (Maneuver) Type() protoreflect.EnumType {
   147  	return &file_google_maps_routes_v1_route_proto_enumTypes[0]
   148  }
   149  
   150  func (x Maneuver) Number() protoreflect.EnumNumber {
   151  	return protoreflect.EnumNumber(x)
   152  }
   153  
   154  // Deprecated: Use Maneuver.Descriptor instead.
   155  func (Maneuver) EnumDescriptor() ([]byte, []int) {
   156  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{0}
   157  }
   158  
   159  // The classification of polyline speed based on traffic data.
   160  type SpeedReadingInterval_Speed int32
   161  
   162  const (
   163  	// Default value. This value is unused.
   164  	SpeedReadingInterval_SPEED_UNSPECIFIED SpeedReadingInterval_Speed = 0
   165  	// Normal speed, no slowdown is detected.
   166  	SpeedReadingInterval_NORMAL SpeedReadingInterval_Speed = 1
   167  	// Slowdown detected, but no traffic jam formed.
   168  	SpeedReadingInterval_SLOW SpeedReadingInterval_Speed = 2
   169  	// Traffic jam detected.
   170  	SpeedReadingInterval_TRAFFIC_JAM SpeedReadingInterval_Speed = 3
   171  )
   172  
   173  // Enum value maps for SpeedReadingInterval_Speed.
   174  var (
   175  	SpeedReadingInterval_Speed_name = map[int32]string{
   176  		0: "SPEED_UNSPECIFIED",
   177  		1: "NORMAL",
   178  		2: "SLOW",
   179  		3: "TRAFFIC_JAM",
   180  	}
   181  	SpeedReadingInterval_Speed_value = map[string]int32{
   182  		"SPEED_UNSPECIFIED": 0,
   183  		"NORMAL":            1,
   184  		"SLOW":              2,
   185  		"TRAFFIC_JAM":       3,
   186  	}
   187  )
   188  
   189  func (x SpeedReadingInterval_Speed) Enum() *SpeedReadingInterval_Speed {
   190  	p := new(SpeedReadingInterval_Speed)
   191  	*p = x
   192  	return p
   193  }
   194  
   195  func (x SpeedReadingInterval_Speed) String() string {
   196  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   197  }
   198  
   199  func (SpeedReadingInterval_Speed) Descriptor() protoreflect.EnumDescriptor {
   200  	return file_google_maps_routes_v1_route_proto_enumTypes[1].Descriptor()
   201  }
   202  
   203  func (SpeedReadingInterval_Speed) Type() protoreflect.EnumType {
   204  	return &file_google_maps_routes_v1_route_proto_enumTypes[1]
   205  }
   206  
   207  func (x SpeedReadingInterval_Speed) Number() protoreflect.EnumNumber {
   208  	return protoreflect.EnumNumber(x)
   209  }
   210  
   211  // Deprecated: Use SpeedReadingInterval_Speed.Descriptor instead.
   212  func (SpeedReadingInterval_Speed) EnumDescriptor() ([]byte, []int) {
   213  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{10, 0}
   214  }
   215  
   216  // Encapsulates a route, which consists of a series of connected road segments
   217  // that join beginning, ending, and intermediate waypoints.
   218  type Route struct {
   219  	state         protoimpl.MessageState
   220  	sizeCache     protoimpl.SizeCache
   221  	unknownFields protoimpl.UnknownFields
   222  
   223  	// A collection of legs (path segments between waypoints) that make-up the
   224  	// route. Each leg corresponds to the trip between two non-`via` Waypoints.
   225  	// For example, a route with no intermediate waypoints has only one leg. A
   226  	// route that includes one non-`via` intermediate waypoint has two legs. A
   227  	// route that includes one `via` intermediate waypoint has one leg. The order
   228  	// of the legs matches the order of Waypoints from `origin` to `intermediates`
   229  	// to `destination`.
   230  	Legs []*RouteLeg `protobuf:"bytes,1,rep,name=legs,proto3" json:"legs,omitempty"`
   231  	// The travel distance of the route, in meters.
   232  	DistanceMeters int32 `protobuf:"varint,2,opt,name=distance_meters,json=distanceMeters,proto3" json:"distance_meters,omitempty"`
   233  	// The length of time needed to navigate the route. If you set the
   234  	// `routing_preference` to `TRAFFIC_UNAWARE`, then this value is the same as
   235  	// `static_duration`. If you set the `routing_preference` to either
   236  	// `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated
   237  	// taking traffic conditions into account.
   238  	Duration *durationpb.Duration `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
   239  	// The duration of traveling through the route without taking traffic
   240  	// conditions into consideration.
   241  	StaticDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=static_duration,json=staticDuration,proto3" json:"static_duration,omitempty"`
   242  	// The overall route polyline. This polyline will be the combined polyline of
   243  	// all `legs`.
   244  	Polyline *Polyline `protobuf:"bytes,5,opt,name=polyline,proto3" json:"polyline,omitempty"`
   245  	// A description of the route.
   246  	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
   247  	// An array of warnings to show when displaying the route.
   248  	Warnings []string `protobuf:"bytes,7,rep,name=warnings,proto3" json:"warnings,omitempty"`
   249  	// The viewport bounding box of the polyline.
   250  	Viewport *viewport.Viewport `protobuf:"bytes,8,opt,name=viewport,proto3" json:"viewport,omitempty"`
   251  	// Additional information about the route.
   252  	TravelAdvisory *RouteTravelAdvisory `protobuf:"bytes,9,opt,name=travel_advisory,json=travelAdvisory,proto3" json:"travel_advisory,omitempty"`
   253  	// If ComputeRoutesRequest.optimize_waypoint_order is set to true, this field
   254  	// contains the optimized ordering of intermediates waypoints.
   255  	// otherwise, this field is empty.
   256  	// For example, suppose the input is Origin: LA; Intermediates: Dallas,
   257  	// Bangor, Phoenix;  Destination: New York; and the optimized intermediate
   258  	// waypoint order is:  Phoenix, Dallas, Bangor. Then this field contains the
   259  	// values [2, 0, 1]. The index starts with 0 for the first intermediate
   260  	// waypoint.
   261  	OptimizedIntermediateWaypointIndex []int32 `protobuf:"varint,10,rep,packed,name=optimized_intermediate_waypoint_index,json=optimizedIntermediateWaypointIndex,proto3" json:"optimized_intermediate_waypoint_index,omitempty"`
   262  }
   263  
   264  func (x *Route) Reset() {
   265  	*x = Route{}
   266  	if protoimpl.UnsafeEnabled {
   267  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[0]
   268  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   269  		ms.StoreMessageInfo(mi)
   270  	}
   271  }
   272  
   273  func (x *Route) String() string {
   274  	return protoimpl.X.MessageStringOf(x)
   275  }
   276  
   277  func (*Route) ProtoMessage() {}
   278  
   279  func (x *Route) ProtoReflect() protoreflect.Message {
   280  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[0]
   281  	if protoimpl.UnsafeEnabled && x != nil {
   282  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   283  		if ms.LoadMessageInfo() == nil {
   284  			ms.StoreMessageInfo(mi)
   285  		}
   286  		return ms
   287  	}
   288  	return mi.MessageOf(x)
   289  }
   290  
   291  // Deprecated: Use Route.ProtoReflect.Descriptor instead.
   292  func (*Route) Descriptor() ([]byte, []int) {
   293  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{0}
   294  }
   295  
   296  func (x *Route) GetLegs() []*RouteLeg {
   297  	if x != nil {
   298  		return x.Legs
   299  	}
   300  	return nil
   301  }
   302  
   303  func (x *Route) GetDistanceMeters() int32 {
   304  	if x != nil {
   305  		return x.DistanceMeters
   306  	}
   307  	return 0
   308  }
   309  
   310  func (x *Route) GetDuration() *durationpb.Duration {
   311  	if x != nil {
   312  		return x.Duration
   313  	}
   314  	return nil
   315  }
   316  
   317  func (x *Route) GetStaticDuration() *durationpb.Duration {
   318  	if x != nil {
   319  		return x.StaticDuration
   320  	}
   321  	return nil
   322  }
   323  
   324  func (x *Route) GetPolyline() *Polyline {
   325  	if x != nil {
   326  		return x.Polyline
   327  	}
   328  	return nil
   329  }
   330  
   331  func (x *Route) GetDescription() string {
   332  	if x != nil {
   333  		return x.Description
   334  	}
   335  	return ""
   336  }
   337  
   338  func (x *Route) GetWarnings() []string {
   339  	if x != nil {
   340  		return x.Warnings
   341  	}
   342  	return nil
   343  }
   344  
   345  func (x *Route) GetViewport() *viewport.Viewport {
   346  	if x != nil {
   347  		return x.Viewport
   348  	}
   349  	return nil
   350  }
   351  
   352  func (x *Route) GetTravelAdvisory() *RouteTravelAdvisory {
   353  	if x != nil {
   354  		return x.TravelAdvisory
   355  	}
   356  	return nil
   357  }
   358  
   359  func (x *Route) GetOptimizedIntermediateWaypointIndex() []int32 {
   360  	if x != nil {
   361  		return x.OptimizedIntermediateWaypointIndex
   362  	}
   363  	return nil
   364  }
   365  
   366  // Encapsulates the additional information that the user should be informed
   367  // about, such as possible traffic zone restriction etc.
   368  type RouteTravelAdvisory struct {
   369  	state         protoimpl.MessageState
   370  	sizeCache     protoimpl.SizeCache
   371  	unknownFields protoimpl.UnknownFields
   372  
   373  	// The traffic restriction that applies to the route. A vehicle that is
   374  	// subject to the restriction is not allowed to travel on the route. As of
   375  	// October 2019, only Jakarta, Indonesia takes into consideration.
   376  	TrafficRestriction *TrafficRestriction `protobuf:"bytes,1,opt,name=traffic_restriction,json=trafficRestriction,proto3" json:"traffic_restriction,omitempty"`
   377  	// Encapsulates information about tolls on the Route.
   378  	// This field is only populated if we expect there are tolls on the Route.
   379  	// If this field is set but the estimated_price subfield is not populated,
   380  	// we expect that road contains tolls but we do not know an estimated price.
   381  	// If this field is not set, then we expect there is no toll on the Route.
   382  	TollInfo *TollInfo `protobuf:"bytes,2,opt,name=toll_info,json=tollInfo,proto3" json:"toll_info,omitempty"`
   383  	// Speed reading intervals detailing traffic density. Applicable in case of
   384  	// `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences.
   385  	// The intervals cover the entire polyline of the route without overlap.
   386  	// The start point of a specified interval is the same as the end point of the
   387  	// preceding interval.
   388  	//
   389  	// Example:
   390  	//
   391  	//	polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
   392  	//	speed_reading_intervals: [A,C), [C,D), [D,G).
   393  	SpeedReadingIntervals []*SpeedReadingInterval `protobuf:"bytes,3,rep,name=speed_reading_intervals,json=speedReadingIntervals,proto3" json:"speed_reading_intervals,omitempty"`
   394  	// Information related to the custom layer data that the customer specified
   395  	// (e.g. time spent in a customer specified area).
   396  	CustomLayerInfo *CustomLayerInfo `protobuf:"bytes,4,opt,name=custom_layer_info,json=customLayerInfo,proto3" json:"custom_layer_info,omitempty"`
   397  }
   398  
   399  func (x *RouteTravelAdvisory) Reset() {
   400  	*x = RouteTravelAdvisory{}
   401  	if protoimpl.UnsafeEnabled {
   402  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[1]
   403  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   404  		ms.StoreMessageInfo(mi)
   405  	}
   406  }
   407  
   408  func (x *RouteTravelAdvisory) String() string {
   409  	return protoimpl.X.MessageStringOf(x)
   410  }
   411  
   412  func (*RouteTravelAdvisory) ProtoMessage() {}
   413  
   414  func (x *RouteTravelAdvisory) ProtoReflect() protoreflect.Message {
   415  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[1]
   416  	if protoimpl.UnsafeEnabled && x != nil {
   417  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   418  		if ms.LoadMessageInfo() == nil {
   419  			ms.StoreMessageInfo(mi)
   420  		}
   421  		return ms
   422  	}
   423  	return mi.MessageOf(x)
   424  }
   425  
   426  // Deprecated: Use RouteTravelAdvisory.ProtoReflect.Descriptor instead.
   427  func (*RouteTravelAdvisory) Descriptor() ([]byte, []int) {
   428  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{1}
   429  }
   430  
   431  func (x *RouteTravelAdvisory) GetTrafficRestriction() *TrafficRestriction {
   432  	if x != nil {
   433  		return x.TrafficRestriction
   434  	}
   435  	return nil
   436  }
   437  
   438  func (x *RouteTravelAdvisory) GetTollInfo() *TollInfo {
   439  	if x != nil {
   440  		return x.TollInfo
   441  	}
   442  	return nil
   443  }
   444  
   445  func (x *RouteTravelAdvisory) GetSpeedReadingIntervals() []*SpeedReadingInterval {
   446  	if x != nil {
   447  		return x.SpeedReadingIntervals
   448  	}
   449  	return nil
   450  }
   451  
   452  func (x *RouteTravelAdvisory) GetCustomLayerInfo() *CustomLayerInfo {
   453  	if x != nil {
   454  		return x.CustomLayerInfo
   455  	}
   456  	return nil
   457  }
   458  
   459  // Encapsulates the additional information that the user should be informed
   460  // about, such as possible traffic zone restriction etc. on a route leg.
   461  type RouteLegTravelAdvisory struct {
   462  	state         protoimpl.MessageState
   463  	sizeCache     protoimpl.SizeCache
   464  	unknownFields protoimpl.UnknownFields
   465  
   466  	// Encapsulates information about tolls on the specific RouteLeg.
   467  	// This field is only populated if we expect there are tolls on the RouteLeg.
   468  	// If this field is set but the estimated_price subfield is not populated,
   469  	// we expect that road contains tolls but we do not know an estimated price.
   470  	// If this field does not exist, then there is no toll on the RouteLeg.
   471  	TollInfo *TollInfo `protobuf:"bytes,1,opt,name=toll_info,json=tollInfo,proto3" json:"toll_info,omitempty"`
   472  	// Speed reading intervals detailing traffic density. Applicable in case of
   473  	// `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences.
   474  	// The intervals cover the entire polyline of the RouteLg without overlap.
   475  	// The start point of a specified interval is the same as the end point of the
   476  	// preceding interval.
   477  	//
   478  	// Example:
   479  	//
   480  	//	polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
   481  	//	speed_reading_intervals: [A,C), [C,D), [D,G).
   482  	SpeedReadingIntervals []*SpeedReadingInterval `protobuf:"bytes,2,rep,name=speed_reading_intervals,json=speedReadingIntervals,proto3" json:"speed_reading_intervals,omitempty"`
   483  	// Information related to the custom layer data that the customer specified
   484  	// (e.g. time spent in a customer specified area).
   485  	CustomLayerInfo *CustomLayerInfo `protobuf:"bytes,3,opt,name=custom_layer_info,json=customLayerInfo,proto3" json:"custom_layer_info,omitempty"`
   486  }
   487  
   488  func (x *RouteLegTravelAdvisory) Reset() {
   489  	*x = RouteLegTravelAdvisory{}
   490  	if protoimpl.UnsafeEnabled {
   491  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[2]
   492  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   493  		ms.StoreMessageInfo(mi)
   494  	}
   495  }
   496  
   497  func (x *RouteLegTravelAdvisory) String() string {
   498  	return protoimpl.X.MessageStringOf(x)
   499  }
   500  
   501  func (*RouteLegTravelAdvisory) ProtoMessage() {}
   502  
   503  func (x *RouteLegTravelAdvisory) ProtoReflect() protoreflect.Message {
   504  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[2]
   505  	if protoimpl.UnsafeEnabled && x != nil {
   506  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   507  		if ms.LoadMessageInfo() == nil {
   508  			ms.StoreMessageInfo(mi)
   509  		}
   510  		return ms
   511  	}
   512  	return mi.MessageOf(x)
   513  }
   514  
   515  // Deprecated: Use RouteLegTravelAdvisory.ProtoReflect.Descriptor instead.
   516  func (*RouteLegTravelAdvisory) Descriptor() ([]byte, []int) {
   517  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{2}
   518  }
   519  
   520  func (x *RouteLegTravelAdvisory) GetTollInfo() *TollInfo {
   521  	if x != nil {
   522  		return x.TollInfo
   523  	}
   524  	return nil
   525  }
   526  
   527  func (x *RouteLegTravelAdvisory) GetSpeedReadingIntervals() []*SpeedReadingInterval {
   528  	if x != nil {
   529  		return x.SpeedReadingIntervals
   530  	}
   531  	return nil
   532  }
   533  
   534  func (x *RouteLegTravelAdvisory) GetCustomLayerInfo() *CustomLayerInfo {
   535  	if x != nil {
   536  		return x.CustomLayerInfo
   537  	}
   538  	return nil
   539  }
   540  
   541  // Encapsulates the additional information that the user should be informed
   542  // about, such as possible traffic zone restriction on a leg step.
   543  type RouteLegStepTravelAdvisory struct {
   544  	state         protoimpl.MessageState
   545  	sizeCache     protoimpl.SizeCache
   546  	unknownFields protoimpl.UnknownFields
   547  
   548  	// Speed reading intervals detailing traffic density. Applicable in case of
   549  	// `TRAFFIC_AWARE` and `TRAFFIC_AWARE_OPTIMAL` routing preferences.
   550  	// The intervals cover the entire polyline of the RouteLegStep without
   551  	// overlap. The start point of a specified interval is the same as the end
   552  	// point of the preceding interval.
   553  	//
   554  	// Example:
   555  	//
   556  	//	polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
   557  	//	speed_reading_intervals: [A,C), [C,D), [D,G).
   558  	SpeedReadingIntervals []*SpeedReadingInterval `protobuf:"bytes,1,rep,name=speed_reading_intervals,json=speedReadingIntervals,proto3" json:"speed_reading_intervals,omitempty"`
   559  }
   560  
   561  func (x *RouteLegStepTravelAdvisory) Reset() {
   562  	*x = RouteLegStepTravelAdvisory{}
   563  	if protoimpl.UnsafeEnabled {
   564  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[3]
   565  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   566  		ms.StoreMessageInfo(mi)
   567  	}
   568  }
   569  
   570  func (x *RouteLegStepTravelAdvisory) String() string {
   571  	return protoimpl.X.MessageStringOf(x)
   572  }
   573  
   574  func (*RouteLegStepTravelAdvisory) ProtoMessage() {}
   575  
   576  func (x *RouteLegStepTravelAdvisory) ProtoReflect() protoreflect.Message {
   577  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[3]
   578  	if protoimpl.UnsafeEnabled && x != nil {
   579  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   580  		if ms.LoadMessageInfo() == nil {
   581  			ms.StoreMessageInfo(mi)
   582  		}
   583  		return ms
   584  	}
   585  	return mi.MessageOf(x)
   586  }
   587  
   588  // Deprecated: Use RouteLegStepTravelAdvisory.ProtoReflect.Descriptor instead.
   589  func (*RouteLegStepTravelAdvisory) Descriptor() ([]byte, []int) {
   590  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{3}
   591  }
   592  
   593  func (x *RouteLegStepTravelAdvisory) GetSpeedReadingIntervals() []*SpeedReadingInterval {
   594  	if x != nil {
   595  		return x.SpeedReadingIntervals
   596  	}
   597  	return nil
   598  }
   599  
   600  // Encapsulates the traffic restriction applied to the route. As of October
   601  // 2019, only Jakarta, Indonesia takes into consideration.
   602  type TrafficRestriction struct {
   603  	state         protoimpl.MessageState
   604  	sizeCache     protoimpl.SizeCache
   605  	unknownFields protoimpl.UnknownFields
   606  
   607  	// The restriction based on the vehicle's license plate last character. If
   608  	// this field does not exist, then no restriction on route.
   609  	LicensePlateLastCharacterRestriction *LicensePlateLastCharacterRestriction `protobuf:"bytes,1,opt,name=license_plate_last_character_restriction,json=licensePlateLastCharacterRestriction,proto3" json:"license_plate_last_character_restriction,omitempty"`
   610  }
   611  
   612  func (x *TrafficRestriction) Reset() {
   613  	*x = TrafficRestriction{}
   614  	if protoimpl.UnsafeEnabled {
   615  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[4]
   616  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   617  		ms.StoreMessageInfo(mi)
   618  	}
   619  }
   620  
   621  func (x *TrafficRestriction) String() string {
   622  	return protoimpl.X.MessageStringOf(x)
   623  }
   624  
   625  func (*TrafficRestriction) ProtoMessage() {}
   626  
   627  func (x *TrafficRestriction) ProtoReflect() protoreflect.Message {
   628  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[4]
   629  	if protoimpl.UnsafeEnabled && x != nil {
   630  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   631  		if ms.LoadMessageInfo() == nil {
   632  			ms.StoreMessageInfo(mi)
   633  		}
   634  		return ms
   635  	}
   636  	return mi.MessageOf(x)
   637  }
   638  
   639  // Deprecated: Use TrafficRestriction.ProtoReflect.Descriptor instead.
   640  func (*TrafficRestriction) Descriptor() ([]byte, []int) {
   641  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{4}
   642  }
   643  
   644  func (x *TrafficRestriction) GetLicensePlateLastCharacterRestriction() *LicensePlateLastCharacterRestriction {
   645  	if x != nil {
   646  		return x.LicensePlateLastCharacterRestriction
   647  	}
   648  	return nil
   649  }
   650  
   651  // Encapsulates the license plate last character restriction.
   652  type LicensePlateLastCharacterRestriction struct {
   653  	state         protoimpl.MessageState
   654  	sizeCache     protoimpl.SizeCache
   655  	unknownFields protoimpl.UnknownFields
   656  
   657  	// The allowed last character of a license plate of a vehicle. Only vehicles
   658  	// whose license plate's last characters match these are allowed to travel on
   659  	// the route. If empty, no vehicle is allowed.
   660  	AllowedLastCharacters []string `protobuf:"bytes,1,rep,name=allowed_last_characters,json=allowedLastCharacters,proto3" json:"allowed_last_characters,omitempty"`
   661  }
   662  
   663  func (x *LicensePlateLastCharacterRestriction) Reset() {
   664  	*x = LicensePlateLastCharacterRestriction{}
   665  	if protoimpl.UnsafeEnabled {
   666  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[5]
   667  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   668  		ms.StoreMessageInfo(mi)
   669  	}
   670  }
   671  
   672  func (x *LicensePlateLastCharacterRestriction) String() string {
   673  	return protoimpl.X.MessageStringOf(x)
   674  }
   675  
   676  func (*LicensePlateLastCharacterRestriction) ProtoMessage() {}
   677  
   678  func (x *LicensePlateLastCharacterRestriction) ProtoReflect() protoreflect.Message {
   679  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[5]
   680  	if protoimpl.UnsafeEnabled && x != nil {
   681  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   682  		if ms.LoadMessageInfo() == nil {
   683  			ms.StoreMessageInfo(mi)
   684  		}
   685  		return ms
   686  	}
   687  	return mi.MessageOf(x)
   688  }
   689  
   690  // Deprecated: Use LicensePlateLastCharacterRestriction.ProtoReflect.Descriptor instead.
   691  func (*LicensePlateLastCharacterRestriction) Descriptor() ([]byte, []int) {
   692  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{5}
   693  }
   694  
   695  func (x *LicensePlateLastCharacterRestriction) GetAllowedLastCharacters() []string {
   696  	if x != nil {
   697  		return x.AllowedLastCharacters
   698  	}
   699  	return nil
   700  }
   701  
   702  // Encapsulates a segment between non-`via` waypoints.
   703  type RouteLeg struct {
   704  	state         protoimpl.MessageState
   705  	sizeCache     protoimpl.SizeCache
   706  	unknownFields protoimpl.UnknownFields
   707  
   708  	// The travel distance of the route leg, in meters.
   709  	DistanceMeters int32 `protobuf:"varint,1,opt,name=distance_meters,json=distanceMeters,proto3" json:"distance_meters,omitempty"`
   710  	// The length of time needed to navigate the leg. If the `route_preference`
   711  	// is set to `TRAFFIC_UNAWARE`, then this value is the same as
   712  	// `static_duration`. If the `route_preference` is either `TRAFFIC_AWARE` or
   713  	// `TRAFFIC_AWARE_OPTIMAL`, then this value is calculated taking traffic
   714  	// conditions into account.
   715  	Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
   716  	// The duration of traveling through the leg, calculated without taking
   717  	// traffic conditions into consideration.
   718  	StaticDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=static_duration,json=staticDuration,proto3" json:"static_duration,omitempty"`
   719  	// The overall polyline for this leg. This includes that each `step`'s
   720  	// polyline.
   721  	Polyline *Polyline `protobuf:"bytes,4,opt,name=polyline,proto3" json:"polyline,omitempty"`
   722  	// The start location of this leg. This might be different from the provided
   723  	// `origin`. For example, when the provided `origin` is not near a road, this
   724  	// is a point on the road.
   725  	StartLocation *Location `protobuf:"bytes,5,opt,name=start_location,json=startLocation,proto3" json:"start_location,omitempty"`
   726  	// The end location of this leg. This might be different from the provided
   727  	// `destination`. For example, when the provided `destination` is not near a
   728  	// road, this is a point on the road.
   729  	EndLocation *Location `protobuf:"bytes,6,opt,name=end_location,json=endLocation,proto3" json:"end_location,omitempty"`
   730  	// An array of steps denoting segments within this leg. Each step represents
   731  	// one navigation instruction.
   732  	Steps []*RouteLegStep `protobuf:"bytes,7,rep,name=steps,proto3" json:"steps,omitempty"`
   733  	// Encapsulates the additional information that the user should be informed
   734  	// about, such as possible traffic zone restriction etc. on a route leg.
   735  	TravelAdvisory *RouteLegTravelAdvisory `protobuf:"bytes,8,opt,name=travel_advisory,json=travelAdvisory,proto3" json:"travel_advisory,omitempty"`
   736  }
   737  
   738  func (x *RouteLeg) Reset() {
   739  	*x = RouteLeg{}
   740  	if protoimpl.UnsafeEnabled {
   741  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[6]
   742  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   743  		ms.StoreMessageInfo(mi)
   744  	}
   745  }
   746  
   747  func (x *RouteLeg) String() string {
   748  	return protoimpl.X.MessageStringOf(x)
   749  }
   750  
   751  func (*RouteLeg) ProtoMessage() {}
   752  
   753  func (x *RouteLeg) ProtoReflect() protoreflect.Message {
   754  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[6]
   755  	if protoimpl.UnsafeEnabled && x != nil {
   756  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   757  		if ms.LoadMessageInfo() == nil {
   758  			ms.StoreMessageInfo(mi)
   759  		}
   760  		return ms
   761  	}
   762  	return mi.MessageOf(x)
   763  }
   764  
   765  // Deprecated: Use RouteLeg.ProtoReflect.Descriptor instead.
   766  func (*RouteLeg) Descriptor() ([]byte, []int) {
   767  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{6}
   768  }
   769  
   770  func (x *RouteLeg) GetDistanceMeters() int32 {
   771  	if x != nil {
   772  		return x.DistanceMeters
   773  	}
   774  	return 0
   775  }
   776  
   777  func (x *RouteLeg) GetDuration() *durationpb.Duration {
   778  	if x != nil {
   779  		return x.Duration
   780  	}
   781  	return nil
   782  }
   783  
   784  func (x *RouteLeg) GetStaticDuration() *durationpb.Duration {
   785  	if x != nil {
   786  		return x.StaticDuration
   787  	}
   788  	return nil
   789  }
   790  
   791  func (x *RouteLeg) GetPolyline() *Polyline {
   792  	if x != nil {
   793  		return x.Polyline
   794  	}
   795  	return nil
   796  }
   797  
   798  func (x *RouteLeg) GetStartLocation() *Location {
   799  	if x != nil {
   800  		return x.StartLocation
   801  	}
   802  	return nil
   803  }
   804  
   805  func (x *RouteLeg) GetEndLocation() *Location {
   806  	if x != nil {
   807  		return x.EndLocation
   808  	}
   809  	return nil
   810  }
   811  
   812  func (x *RouteLeg) GetSteps() []*RouteLegStep {
   813  	if x != nil {
   814  		return x.Steps
   815  	}
   816  	return nil
   817  }
   818  
   819  func (x *RouteLeg) GetTravelAdvisory() *RouteLegTravelAdvisory {
   820  	if x != nil {
   821  		return x.TravelAdvisory
   822  	}
   823  	return nil
   824  }
   825  
   826  // Encapsulates toll information on a `Route` or on a `RouteLeg`.
   827  type TollInfo struct {
   828  	state         protoimpl.MessageState
   829  	sizeCache     protoimpl.SizeCache
   830  	unknownFields protoimpl.UnknownFields
   831  
   832  	// The monetary amount of tolls for the corresponding Route or RouteLeg.
   833  	// This list contains a money amount for each currency that is expected
   834  	// to be charged by the toll stations. Typically this list will contain only
   835  	// one item for routes with tolls in one currency. For international trips,
   836  	// this list may contain multiple items to reflect tolls in different
   837  	// currencies.
   838  	EstimatedPrice []*money.Money `protobuf:"bytes,1,rep,name=estimated_price,json=estimatedPrice,proto3" json:"estimated_price,omitempty"`
   839  }
   840  
   841  func (x *TollInfo) Reset() {
   842  	*x = TollInfo{}
   843  	if protoimpl.UnsafeEnabled {
   844  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[7]
   845  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   846  		ms.StoreMessageInfo(mi)
   847  	}
   848  }
   849  
   850  func (x *TollInfo) String() string {
   851  	return protoimpl.X.MessageStringOf(x)
   852  }
   853  
   854  func (*TollInfo) ProtoMessage() {}
   855  
   856  func (x *TollInfo) ProtoReflect() protoreflect.Message {
   857  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[7]
   858  	if protoimpl.UnsafeEnabled && x != nil {
   859  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   860  		if ms.LoadMessageInfo() == nil {
   861  			ms.StoreMessageInfo(mi)
   862  		}
   863  		return ms
   864  	}
   865  	return mi.MessageOf(x)
   866  }
   867  
   868  // Deprecated: Use TollInfo.ProtoReflect.Descriptor instead.
   869  func (*TollInfo) Descriptor() ([]byte, []int) {
   870  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{7}
   871  }
   872  
   873  func (x *TollInfo) GetEstimatedPrice() []*money.Money {
   874  	if x != nil {
   875  		return x.EstimatedPrice
   876  	}
   877  	return nil
   878  }
   879  
   880  // Encapsulates a segment of a `RouteLeg`. A step corresponds to a single
   881  // navigation instruction. Route legs are made up of steps.
   882  type RouteLegStep struct {
   883  	state         protoimpl.MessageState
   884  	sizeCache     protoimpl.SizeCache
   885  	unknownFields protoimpl.UnknownFields
   886  
   887  	// The travel distance of this step, in meters. In some circumstances, this
   888  	// field might not have a value.
   889  	DistanceMeters int32 `protobuf:"varint,1,opt,name=distance_meters,json=distanceMeters,proto3" json:"distance_meters,omitempty"`
   890  	// The duration of travel through this step without taking traffic conditions
   891  	// into consideration. In some circumstances, this field might not have a
   892  	// value.
   893  	StaticDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=static_duration,json=staticDuration,proto3" json:"static_duration,omitempty"`
   894  	// The polyline associated with this step.
   895  	Polyline *Polyline `protobuf:"bytes,3,opt,name=polyline,proto3" json:"polyline,omitempty"`
   896  	// The start location of this step.
   897  	StartLocation *Location `protobuf:"bytes,4,opt,name=start_location,json=startLocation,proto3" json:"start_location,omitempty"`
   898  	// The end location of this step.
   899  	EndLocation *Location `protobuf:"bytes,5,opt,name=end_location,json=endLocation,proto3" json:"end_location,omitempty"`
   900  	// Navigation instructions.
   901  	NavigationInstruction *NavigationInstruction `protobuf:"bytes,6,opt,name=navigation_instruction,json=navigationInstruction,proto3" json:"navigation_instruction,omitempty"`
   902  	// Encapsulates the additional information that the user should be informed
   903  	// about, such as possible traffic zone restriction on a leg step.
   904  	TravelAdvisory *RouteLegStepTravelAdvisory `protobuf:"bytes,7,opt,name=travel_advisory,json=travelAdvisory,proto3" json:"travel_advisory,omitempty"`
   905  }
   906  
   907  func (x *RouteLegStep) Reset() {
   908  	*x = RouteLegStep{}
   909  	if protoimpl.UnsafeEnabled {
   910  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[8]
   911  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   912  		ms.StoreMessageInfo(mi)
   913  	}
   914  }
   915  
   916  func (x *RouteLegStep) String() string {
   917  	return protoimpl.X.MessageStringOf(x)
   918  }
   919  
   920  func (*RouteLegStep) ProtoMessage() {}
   921  
   922  func (x *RouteLegStep) ProtoReflect() protoreflect.Message {
   923  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[8]
   924  	if protoimpl.UnsafeEnabled && x != nil {
   925  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   926  		if ms.LoadMessageInfo() == nil {
   927  			ms.StoreMessageInfo(mi)
   928  		}
   929  		return ms
   930  	}
   931  	return mi.MessageOf(x)
   932  }
   933  
   934  // Deprecated: Use RouteLegStep.ProtoReflect.Descriptor instead.
   935  func (*RouteLegStep) Descriptor() ([]byte, []int) {
   936  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{8}
   937  }
   938  
   939  func (x *RouteLegStep) GetDistanceMeters() int32 {
   940  	if x != nil {
   941  		return x.DistanceMeters
   942  	}
   943  	return 0
   944  }
   945  
   946  func (x *RouteLegStep) GetStaticDuration() *durationpb.Duration {
   947  	if x != nil {
   948  		return x.StaticDuration
   949  	}
   950  	return nil
   951  }
   952  
   953  func (x *RouteLegStep) GetPolyline() *Polyline {
   954  	if x != nil {
   955  		return x.Polyline
   956  	}
   957  	return nil
   958  }
   959  
   960  func (x *RouteLegStep) GetStartLocation() *Location {
   961  	if x != nil {
   962  		return x.StartLocation
   963  	}
   964  	return nil
   965  }
   966  
   967  func (x *RouteLegStep) GetEndLocation() *Location {
   968  	if x != nil {
   969  		return x.EndLocation
   970  	}
   971  	return nil
   972  }
   973  
   974  func (x *RouteLegStep) GetNavigationInstruction() *NavigationInstruction {
   975  	if x != nil {
   976  		return x.NavigationInstruction
   977  	}
   978  	return nil
   979  }
   980  
   981  func (x *RouteLegStep) GetTravelAdvisory() *RouteLegStepTravelAdvisory {
   982  	if x != nil {
   983  		return x.TravelAdvisory
   984  	}
   985  	return nil
   986  }
   987  
   988  type NavigationInstruction struct {
   989  	state         protoimpl.MessageState
   990  	sizeCache     protoimpl.SizeCache
   991  	unknownFields protoimpl.UnknownFields
   992  
   993  	// Encapsulates the navigation instructions for the current step (e.g., turn
   994  	// left, merge, straight, etc.). This field determines which icon to display.
   995  	Maneuver Maneuver `protobuf:"varint,1,opt,name=maneuver,proto3,enum=google.maps.routes.v1.Maneuver" json:"maneuver,omitempty"`
   996  	// Instructions for navigating this step.
   997  	Instructions string `protobuf:"bytes,2,opt,name=instructions,proto3" json:"instructions,omitempty"`
   998  }
   999  
  1000  func (x *NavigationInstruction) Reset() {
  1001  	*x = NavigationInstruction{}
  1002  	if protoimpl.UnsafeEnabled {
  1003  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[9]
  1004  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1005  		ms.StoreMessageInfo(mi)
  1006  	}
  1007  }
  1008  
  1009  func (x *NavigationInstruction) String() string {
  1010  	return protoimpl.X.MessageStringOf(x)
  1011  }
  1012  
  1013  func (*NavigationInstruction) ProtoMessage() {}
  1014  
  1015  func (x *NavigationInstruction) ProtoReflect() protoreflect.Message {
  1016  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[9]
  1017  	if protoimpl.UnsafeEnabled && x != nil {
  1018  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1019  		if ms.LoadMessageInfo() == nil {
  1020  			ms.StoreMessageInfo(mi)
  1021  		}
  1022  		return ms
  1023  	}
  1024  	return mi.MessageOf(x)
  1025  }
  1026  
  1027  // Deprecated: Use NavigationInstruction.ProtoReflect.Descriptor instead.
  1028  func (*NavigationInstruction) Descriptor() ([]byte, []int) {
  1029  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{9}
  1030  }
  1031  
  1032  func (x *NavigationInstruction) GetManeuver() Maneuver {
  1033  	if x != nil {
  1034  		return x.Maneuver
  1035  	}
  1036  	return Maneuver_MANEUVER_UNSPECIFIED
  1037  }
  1038  
  1039  func (x *NavigationInstruction) GetInstructions() string {
  1040  	if x != nil {
  1041  		return x.Instructions
  1042  	}
  1043  	return ""
  1044  }
  1045  
  1046  // Traffic density indicator on a contiguous segment of a polyline or path.
  1047  // Given a path with points P_0, P_1, ... , P_N (zero-based index), the
  1048  // SpeedReadingInterval defines an interval and describes its traffic using the
  1049  // following categories.
  1050  type SpeedReadingInterval struct {
  1051  	state         protoimpl.MessageState
  1052  	sizeCache     protoimpl.SizeCache
  1053  	unknownFields protoimpl.UnknownFields
  1054  
  1055  	// The starting index of this interval in the polyline.
  1056  	// In JSON, when the index is 0, the field appears to be unpopulated.
  1057  	StartPolylinePointIndex int32 `protobuf:"varint,1,opt,name=start_polyline_point_index,json=startPolylinePointIndex,proto3" json:"start_polyline_point_index,omitempty"`
  1058  	// The ending index of this interval in the polyline.
  1059  	// In JSON, when the index is 0, the field appears to be unpopulated.
  1060  	EndPolylinePointIndex int32 `protobuf:"varint,2,opt,name=end_polyline_point_index,json=endPolylinePointIndex,proto3" json:"end_polyline_point_index,omitempty"`
  1061  	// Traffic speed in this interval.
  1062  	Speed SpeedReadingInterval_Speed `protobuf:"varint,3,opt,name=speed,proto3,enum=google.maps.routes.v1.SpeedReadingInterval_Speed" json:"speed,omitempty"`
  1063  }
  1064  
  1065  func (x *SpeedReadingInterval) Reset() {
  1066  	*x = SpeedReadingInterval{}
  1067  	if protoimpl.UnsafeEnabled {
  1068  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[10]
  1069  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1070  		ms.StoreMessageInfo(mi)
  1071  	}
  1072  }
  1073  
  1074  func (x *SpeedReadingInterval) String() string {
  1075  	return protoimpl.X.MessageStringOf(x)
  1076  }
  1077  
  1078  func (*SpeedReadingInterval) ProtoMessage() {}
  1079  
  1080  func (x *SpeedReadingInterval) ProtoReflect() protoreflect.Message {
  1081  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[10]
  1082  	if protoimpl.UnsafeEnabled && x != nil {
  1083  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1084  		if ms.LoadMessageInfo() == nil {
  1085  			ms.StoreMessageInfo(mi)
  1086  		}
  1087  		return ms
  1088  	}
  1089  	return mi.MessageOf(x)
  1090  }
  1091  
  1092  // Deprecated: Use SpeedReadingInterval.ProtoReflect.Descriptor instead.
  1093  func (*SpeedReadingInterval) Descriptor() ([]byte, []int) {
  1094  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{10}
  1095  }
  1096  
  1097  func (x *SpeedReadingInterval) GetStartPolylinePointIndex() int32 {
  1098  	if x != nil {
  1099  		return x.StartPolylinePointIndex
  1100  	}
  1101  	return 0
  1102  }
  1103  
  1104  func (x *SpeedReadingInterval) GetEndPolylinePointIndex() int32 {
  1105  	if x != nil {
  1106  		return x.EndPolylinePointIndex
  1107  	}
  1108  	return 0
  1109  }
  1110  
  1111  func (x *SpeedReadingInterval) GetSpeed() SpeedReadingInterval_Speed {
  1112  	if x != nil {
  1113  		return x.Speed
  1114  	}
  1115  	return SpeedReadingInterval_SPEED_UNSPECIFIED
  1116  }
  1117  
  1118  // Encapsulates statistics about the time spent and distance travelled in a
  1119  // custom area.
  1120  type CustomLayerInfo struct {
  1121  	state         protoimpl.MessageState
  1122  	sizeCache     protoimpl.SizeCache
  1123  	unknownFields protoimpl.UnknownFields
  1124  
  1125  	// Encapsulates information about areas in the custom layer on the Route.
  1126  	// This field is only populated if a route travels through areas in the
  1127  	// custom layer.
  1128  	AreaInfo []*CustomLayerInfo_AreaInfo `protobuf:"bytes,1,rep,name=area_info,json=areaInfo,proto3" json:"area_info,omitempty"`
  1129  }
  1130  
  1131  func (x *CustomLayerInfo) Reset() {
  1132  	*x = CustomLayerInfo{}
  1133  	if protoimpl.UnsafeEnabled {
  1134  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[11]
  1135  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1136  		ms.StoreMessageInfo(mi)
  1137  	}
  1138  }
  1139  
  1140  func (x *CustomLayerInfo) String() string {
  1141  	return protoimpl.X.MessageStringOf(x)
  1142  }
  1143  
  1144  func (*CustomLayerInfo) ProtoMessage() {}
  1145  
  1146  func (x *CustomLayerInfo) ProtoReflect() protoreflect.Message {
  1147  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[11]
  1148  	if protoimpl.UnsafeEnabled && x != nil {
  1149  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1150  		if ms.LoadMessageInfo() == nil {
  1151  			ms.StoreMessageInfo(mi)
  1152  		}
  1153  		return ms
  1154  	}
  1155  	return mi.MessageOf(x)
  1156  }
  1157  
  1158  // Deprecated: Use CustomLayerInfo.ProtoReflect.Descriptor instead.
  1159  func (*CustomLayerInfo) Descriptor() ([]byte, []int) {
  1160  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{11}
  1161  }
  1162  
  1163  func (x *CustomLayerInfo) GetAreaInfo() []*CustomLayerInfo_AreaInfo {
  1164  	if x != nil {
  1165  		return x.AreaInfo
  1166  	}
  1167  	return nil
  1168  }
  1169  
  1170  // Encapsulates areas related information on a `Route` or on a `RouteLeg`.
  1171  type CustomLayerInfo_AreaInfo struct {
  1172  	state         protoimpl.MessageState
  1173  	sizeCache     protoimpl.SizeCache
  1174  	unknownFields protoimpl.UnknownFields
  1175  
  1176  	// ID of an area inside a customer provided dataset. An area represents a
  1177  	// collection of polygons on the map that are of concern to the customer.
  1178  	// For example, the customer may be interested in knowing whether a
  1179  	// returned route is traveling through multiple busy city blocks during
  1180  	// a predefined period of time. An area ID is unique within a single
  1181  	// dataset uploaded by a customer. That is, a (customer_id, dataset_id,
  1182  	// area_id) triplet should uniquely identify a set of polygons on the map
  1183  	// that "activates" following a common schedule.
  1184  	AreaId string `protobuf:"bytes,1,opt,name=area_id,json=areaId,proto3" json:"area_id,omitempty"`
  1185  	// Total distance traveled in the area (in meters).
  1186  	DistanceInAreaMeters float32 `protobuf:"fixed32,2,opt,name=distance_in_area_meters,json=distanceInAreaMeters,proto3" json:"distance_in_area_meters,omitempty"`
  1187  	// Total time spent in the area.
  1188  	DurationInArea *durationpb.Duration `protobuf:"bytes,3,opt,name=duration_in_area,json=durationInArea,proto3" json:"duration_in_area,omitempty"`
  1189  }
  1190  
  1191  func (x *CustomLayerInfo_AreaInfo) Reset() {
  1192  	*x = CustomLayerInfo_AreaInfo{}
  1193  	if protoimpl.UnsafeEnabled {
  1194  		mi := &file_google_maps_routes_v1_route_proto_msgTypes[12]
  1195  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1196  		ms.StoreMessageInfo(mi)
  1197  	}
  1198  }
  1199  
  1200  func (x *CustomLayerInfo_AreaInfo) String() string {
  1201  	return protoimpl.X.MessageStringOf(x)
  1202  }
  1203  
  1204  func (*CustomLayerInfo_AreaInfo) ProtoMessage() {}
  1205  
  1206  func (x *CustomLayerInfo_AreaInfo) ProtoReflect() protoreflect.Message {
  1207  	mi := &file_google_maps_routes_v1_route_proto_msgTypes[12]
  1208  	if protoimpl.UnsafeEnabled && x != nil {
  1209  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1210  		if ms.LoadMessageInfo() == nil {
  1211  			ms.StoreMessageInfo(mi)
  1212  		}
  1213  		return ms
  1214  	}
  1215  	return mi.MessageOf(x)
  1216  }
  1217  
  1218  // Deprecated: Use CustomLayerInfo_AreaInfo.ProtoReflect.Descriptor instead.
  1219  func (*CustomLayerInfo_AreaInfo) Descriptor() ([]byte, []int) {
  1220  	return file_google_maps_routes_v1_route_proto_rawDescGZIP(), []int{11, 0}
  1221  }
  1222  
  1223  func (x *CustomLayerInfo_AreaInfo) GetAreaId() string {
  1224  	if x != nil {
  1225  		return x.AreaId
  1226  	}
  1227  	return ""
  1228  }
  1229  
  1230  func (x *CustomLayerInfo_AreaInfo) GetDistanceInAreaMeters() float32 {
  1231  	if x != nil {
  1232  		return x.DistanceInAreaMeters
  1233  	}
  1234  	return 0
  1235  }
  1236  
  1237  func (x *CustomLayerInfo_AreaInfo) GetDurationInArea() *durationpb.Duration {
  1238  	if x != nil {
  1239  		return x.DurationInArea
  1240  	}
  1241  	return nil
  1242  }
  1243  
  1244  var File_google_maps_routes_v1_route_proto protoreflect.FileDescriptor
  1245  
  1246  var file_google_maps_routes_v1_route_proto_rawDesc = []byte{
  1247  	0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f,
  1248  	0x75, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72,
  1249  	0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73,
  1250  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
  1251  	0x6c, 0x65, 0x2f, 0x67, 0x65, 0x6f, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x69, 0x65, 0x77,
  1252  	0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67,
  1253  	0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x76,
  1254  	0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1255  	0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f,
  1256  	0x75, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74,
  1257  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  1258  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1259  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74,
  1260  	0x79, 0x70, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
  1261  	0xba, 0x04, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6c, 0x65, 0x67,
  1262  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1263  	0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  1264  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x52, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x12, 0x27,
  1265  	0x0a, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72,
  1266  	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
  1267  	0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74,
  1268  	0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1269  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
  1270  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42,
  1271  	0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  1272  	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1273  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  1274  	0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  1275  	0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05,
  1276  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61,
  1277  	0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c,
  1278  	0x79, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12,
  1279  	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06,
  1280  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
  1281  	0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20,
  1282  	0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x35, 0x0a,
  1283  	0x08, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1284  	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x74, 0x79, 0x70,
  1285  	0x65, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77,
  1286  	0x70, 0x6f, 0x72, 0x74, 0x12, 0x53, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x61,
  1287  	0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
  1288  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  1289  	0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x76, 0x65,
  1290  	0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65,
  1291  	0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x25, 0x6f, 0x70, 0x74,
  1292  	0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69,
  1293  	0x61, 0x74, 0x65, 0x5f, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64,
  1294  	0x65, 0x78, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69,
  1295  	0x7a, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x57,
  1296  	0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xe8, 0x02, 0x0a,
  1297  	0x13, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41, 0x64, 0x76, 0x69,
  1298  	0x73, 0x6f, 0x72, 0x79, 0x12, 0x5a, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f,
  1299  	0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
  1300  	0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
  1301  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
  1302  	0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x72,
  1303  	0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  1304  	0x12, 0x3c, 0x0a, 0x09, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20,
  1305  	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70,
  1306  	0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6c, 0x6c,
  1307  	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x74, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x63,
  1308  	0x0a, 0x17, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f,
  1309  	0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1310  	0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f,
  1311  	0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x61,
  1312  	0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x15, 0x73, 0x70,
  1313  	0x65, 0x65, 0x64, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
  1314  	0x61, 0x6c, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61,
  1315  	0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,
  1316  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75,
  1317  	0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x79,
  1318  	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61,
  1319  	0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x52, 0x6f, 0x75, 0x74,
  1320  	0x65, 0x4c, 0x65, 0x67, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f,
  1321  	0x72, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
  1322  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
  1323  	0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f,
  1324  	0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x74, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
  1325  	0x12, 0x63, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e,
  1326  	0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
  1327  	0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
  1328  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52,
  1329  	0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x15,
  1330  	0x73, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65,
  1331  	0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f,
  1332  	0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  1333  	0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72,
  1334  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c,
  1335  	0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
  1336  	0x4c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x52, 0x6f,
  1337  	0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x53, 0x74, 0x65, 0x70, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c,
  1338  	0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x65,
  1339  	0x64, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
  1340  	0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1341  	0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76,
  1342  	0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e,
  1343  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x15, 0x73, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x61,
  1344  	0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x22, 0xaa, 0x01,
  1345  	0x0a, 0x12, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
  1346  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x93, 0x01, 0x0a, 0x28, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
  1347  	0x5f, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72,
  1348  	0x61, 0x63, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f,
  1349  	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1350  	0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  1351  	0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74,
  1352  	0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
  1353  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x24, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x50, 0x6c, 0x61,
  1354  	0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52,
  1355  	0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5e, 0x0a, 0x24, 0x4c, 0x69,
  1356  	0x63, 0x65, 0x6e, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68,
  1357  	0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69,
  1358  	0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6c, 0x61,
  1359  	0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
  1360  	0x03, 0x28, 0x09, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4c, 0x61, 0x73, 0x74,
  1361  	0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0x8a, 0x04, 0x0a, 0x08, 0x52,
  1362  	0x6f, 0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61,
  1363  	0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
  1364  	0x52, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73,
  1365  	0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
  1366  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1367  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64,
  1368  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69,
  1369  	0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  1370  	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  1371  	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x61,
  1372  	0x74, 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x70,
  1373  	0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
  1374  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  1375  	0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08,
  1376  	0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72,
  1377  	0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
  1378  	0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72,
  1379  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
  1380  	0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1381  	0x12, 0x42, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1382  	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1383  	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
  1384  	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x61,
  1385  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x07, 0x20,
  1386  	0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70,
  1387  	0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74,
  1388  	0x65, 0x4c, 0x65, 0x67, 0x53, 0x74, 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12,
  1389  	0x56, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f,
  1390  	0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1391  	0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31,
  1392  	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41,
  1393  	0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x41,
  1394  	0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x22, 0x47, 0x0a, 0x08, 0x54, 0x6f, 0x6c, 0x6c, 0x49,
  1395  	0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64,
  1396  	0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
  1397  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79,
  1398  	0x52, 0x0e, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65,
  1399  	0x22, 0x85, 0x04, 0x0a, 0x0c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x53, 0x74, 0x65,
  1400  	0x70, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65,
  1401  	0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x74,
  1402  	0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x74,
  1403  	0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
  1404  	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  1405  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e,
  1406  	0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b,
  1407  	0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  1408  	0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72,
  1409  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e,
  1410  	0x65, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x73,
  1411  	0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
  1412  	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70,
  1413  	0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61,
  1414  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74,
  1415  	0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  1416  	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1417  	0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76,
  1418  	0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x4c,
  1419  	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x61, 0x76, 0x69, 0x67,
  1420  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f,
  1421  	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1422  	0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  1423  	0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75,
  1424  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f,
  1425  	0x6e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x0f,
  1426  	0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x18,
  1427  	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d,
  1428  	0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f,
  1429  	0x75, 0x74, 0x65, 0x4c, 0x65, 0x67, 0x53, 0x74, 0x65, 0x70, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c,
  1430  	0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c,
  1431  	0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x22, 0x78, 0x0a, 0x15, 0x4e, 0x61, 0x76, 0x69,
  1432  	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f,
  1433  	0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20,
  1434  	0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70,
  1435  	0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6e, 0x65,
  1436  	0x75, 0x76, 0x65, 0x72, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x12, 0x22,
  1437  	0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
  1438  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f,
  1439  	0x6e, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x14, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x61, 0x64,
  1440  	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x1a, 0x73,
  1441  	0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x6f,
  1442  	0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
  1443  	0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x6f,
  1444  	0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x6e, 0x64, 0x5f,
  1445  	0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69,
  1446  	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x65, 0x6e, 0x64, 0x50,
  1447  	0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65,
  1448  	0x78, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
  1449  	0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72,
  1450  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65,
  1451  	0x61, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x70,
  1452  	0x65, 0x65, 0x64, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x22, 0x45, 0x0a, 0x05, 0x53, 0x70,
  1453  	0x65, 0x65, 0x64, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x45, 0x45, 0x44, 0x5f, 0x55, 0x4e, 0x53,
  1454  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f,
  1455  	0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x02,
  1456  	0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x4a, 0x41, 0x4d, 0x10,
  1457  	0x03, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x79, 0x65,
  1458  	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x6e,
  1459  	0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1460  	0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31,
  1461  	0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
  1462  	0x2e, 0x41, 0x72, 0x65, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x61, 0x72, 0x65, 0x61, 0x49,
  1463  	0x6e, 0x66, 0x6f, 0x1a, 0x9f, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x65, 0x61, 0x49, 0x6e, 0x66, 0x6f,
  1464  	0x12, 0x17, 0x0a, 0x07, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
  1465  	0x09, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x64, 0x69, 0x73,
  1466  	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x6d, 0x65,
  1467  	0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74,
  1468  	0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x41, 0x72, 0x65, 0x61, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73,
  1469  	0x12, 0x43, 0x0a, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f,
  1470  	0x61, 0x72, 0x65, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
  1471  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
  1472  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
  1473  	0x6e, 0x41, 0x72, 0x65, 0x61, 0x2a, 0xda, 0x02, 0x0a, 0x08, 0x4d, 0x61, 0x6e, 0x65, 0x75, 0x76,
  1474  	0x65, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x4e, 0x45, 0x55, 0x56, 0x45, 0x52, 0x5f, 0x55,
  1475  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10,
  1476  	0x54, 0x55, 0x52, 0x4e, 0x5f, 0x53, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54,
  1477  	0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x50,
  1478  	0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x54, 0x55, 0x52, 0x4e,
  1479  	0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x55, 0x52, 0x4e, 0x5f,
  1480  	0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x53,
  1481  	0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x14, 0x0a,
  1482  	0x10, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48,
  1483  	0x54, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x52, 0x49, 0x47,
  1484  	0x48, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x55, 0x52, 0x4e, 0x5f, 0x52, 0x49, 0x47,
  1485  	0x48, 0x54, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x52, 0x41, 0x49, 0x47, 0x48, 0x54,
  1486  	0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x41, 0x4d, 0x50, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10,
  1487  	0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x41, 0x4d, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10,
  1488  	0x0b, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09,
  1489  	0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x46,
  1490  	0x4f, 0x52, 0x4b, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x46,
  1491  	0x45, 0x52, 0x52, 0x59, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x45, 0x52, 0x52, 0x59, 0x5f,
  1492  	0x54, 0x52, 0x41, 0x49, 0x4e, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f, 0x55, 0x4e, 0x44,
  1493  	0x41, 0x42, 0x4f, 0x55, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x11, 0x12, 0x14, 0x0a, 0x10,
  1494  	0x52, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x42, 0x4f, 0x55, 0x54, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54,
  1495  	0x10, 0x12, 0x42, 0xa0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1496  	0x65, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x31,
  1497  	0x42, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b,
  1498  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
  1499  	0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1500  	0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65,
  1501  	0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02,
  1502  	0x04, 0x47, 0x4d, 0x52, 0x53, 0xaa, 0x02, 0x15, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x4d,
  1503  	0x61, 0x70, 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15,
  1504  	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x4d, 0x61, 0x70, 0x73, 0x5c, 0x52, 0x6f, 0x75, 0x74,
  1505  	0x65, 0x73, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1506  }
  1507  
  1508  var (
  1509  	file_google_maps_routes_v1_route_proto_rawDescOnce sync.Once
  1510  	file_google_maps_routes_v1_route_proto_rawDescData = file_google_maps_routes_v1_route_proto_rawDesc
  1511  )
  1512  
  1513  func file_google_maps_routes_v1_route_proto_rawDescGZIP() []byte {
  1514  	file_google_maps_routes_v1_route_proto_rawDescOnce.Do(func() {
  1515  		file_google_maps_routes_v1_route_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_maps_routes_v1_route_proto_rawDescData)
  1516  	})
  1517  	return file_google_maps_routes_v1_route_proto_rawDescData
  1518  }
  1519  
  1520  var file_google_maps_routes_v1_route_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  1521  var file_google_maps_routes_v1_route_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
  1522  var file_google_maps_routes_v1_route_proto_goTypes = []interface{}{
  1523  	(Maneuver)(0),                                // 0: google.maps.routes.v1.Maneuver
  1524  	(SpeedReadingInterval_Speed)(0),              // 1: google.maps.routes.v1.SpeedReadingInterval.Speed
  1525  	(*Route)(nil),                                // 2: google.maps.routes.v1.Route
  1526  	(*RouteTravelAdvisory)(nil),                  // 3: google.maps.routes.v1.RouteTravelAdvisory
  1527  	(*RouteLegTravelAdvisory)(nil),               // 4: google.maps.routes.v1.RouteLegTravelAdvisory
  1528  	(*RouteLegStepTravelAdvisory)(nil),           // 5: google.maps.routes.v1.RouteLegStepTravelAdvisory
  1529  	(*TrafficRestriction)(nil),                   // 6: google.maps.routes.v1.TrafficRestriction
  1530  	(*LicensePlateLastCharacterRestriction)(nil), // 7: google.maps.routes.v1.LicensePlateLastCharacterRestriction
  1531  	(*RouteLeg)(nil),                             // 8: google.maps.routes.v1.RouteLeg
  1532  	(*TollInfo)(nil),                             // 9: google.maps.routes.v1.TollInfo
  1533  	(*RouteLegStep)(nil),                         // 10: google.maps.routes.v1.RouteLegStep
  1534  	(*NavigationInstruction)(nil),                // 11: google.maps.routes.v1.NavigationInstruction
  1535  	(*SpeedReadingInterval)(nil),                 // 12: google.maps.routes.v1.SpeedReadingInterval
  1536  	(*CustomLayerInfo)(nil),                      // 13: google.maps.routes.v1.CustomLayerInfo
  1537  	(*CustomLayerInfo_AreaInfo)(nil),             // 14: google.maps.routes.v1.CustomLayerInfo.AreaInfo
  1538  	(*durationpb.Duration)(nil),                  // 15: google.protobuf.Duration
  1539  	(*Polyline)(nil),                             // 16: google.maps.routes.v1.Polyline
  1540  	(*viewport.Viewport)(nil),                    // 17: google.geo.type.Viewport
  1541  	(*Location)(nil),                             // 18: google.maps.routes.v1.Location
  1542  	(*money.Money)(nil),                          // 19: google.type.Money
  1543  }
  1544  var file_google_maps_routes_v1_route_proto_depIdxs = []int32{
  1545  	8,  // 0: google.maps.routes.v1.Route.legs:type_name -> google.maps.routes.v1.RouteLeg
  1546  	15, // 1: google.maps.routes.v1.Route.duration:type_name -> google.protobuf.Duration
  1547  	15, // 2: google.maps.routes.v1.Route.static_duration:type_name -> google.protobuf.Duration
  1548  	16, // 3: google.maps.routes.v1.Route.polyline:type_name -> google.maps.routes.v1.Polyline
  1549  	17, // 4: google.maps.routes.v1.Route.viewport:type_name -> google.geo.type.Viewport
  1550  	3,  // 5: google.maps.routes.v1.Route.travel_advisory:type_name -> google.maps.routes.v1.RouteTravelAdvisory
  1551  	6,  // 6: google.maps.routes.v1.RouteTravelAdvisory.traffic_restriction:type_name -> google.maps.routes.v1.TrafficRestriction
  1552  	9,  // 7: google.maps.routes.v1.RouteTravelAdvisory.toll_info:type_name -> google.maps.routes.v1.TollInfo
  1553  	12, // 8: google.maps.routes.v1.RouteTravelAdvisory.speed_reading_intervals:type_name -> google.maps.routes.v1.SpeedReadingInterval
  1554  	13, // 9: google.maps.routes.v1.RouteTravelAdvisory.custom_layer_info:type_name -> google.maps.routes.v1.CustomLayerInfo
  1555  	9,  // 10: google.maps.routes.v1.RouteLegTravelAdvisory.toll_info:type_name -> google.maps.routes.v1.TollInfo
  1556  	12, // 11: google.maps.routes.v1.RouteLegTravelAdvisory.speed_reading_intervals:type_name -> google.maps.routes.v1.SpeedReadingInterval
  1557  	13, // 12: google.maps.routes.v1.RouteLegTravelAdvisory.custom_layer_info:type_name -> google.maps.routes.v1.CustomLayerInfo
  1558  	12, // 13: google.maps.routes.v1.RouteLegStepTravelAdvisory.speed_reading_intervals:type_name -> google.maps.routes.v1.SpeedReadingInterval
  1559  	7,  // 14: google.maps.routes.v1.TrafficRestriction.license_plate_last_character_restriction:type_name -> google.maps.routes.v1.LicensePlateLastCharacterRestriction
  1560  	15, // 15: google.maps.routes.v1.RouteLeg.duration:type_name -> google.protobuf.Duration
  1561  	15, // 16: google.maps.routes.v1.RouteLeg.static_duration:type_name -> google.protobuf.Duration
  1562  	16, // 17: google.maps.routes.v1.RouteLeg.polyline:type_name -> google.maps.routes.v1.Polyline
  1563  	18, // 18: google.maps.routes.v1.RouteLeg.start_location:type_name -> google.maps.routes.v1.Location
  1564  	18, // 19: google.maps.routes.v1.RouteLeg.end_location:type_name -> google.maps.routes.v1.Location
  1565  	10, // 20: google.maps.routes.v1.RouteLeg.steps:type_name -> google.maps.routes.v1.RouteLegStep
  1566  	4,  // 21: google.maps.routes.v1.RouteLeg.travel_advisory:type_name -> google.maps.routes.v1.RouteLegTravelAdvisory
  1567  	19, // 22: google.maps.routes.v1.TollInfo.estimated_price:type_name -> google.type.Money
  1568  	15, // 23: google.maps.routes.v1.RouteLegStep.static_duration:type_name -> google.protobuf.Duration
  1569  	16, // 24: google.maps.routes.v1.RouteLegStep.polyline:type_name -> google.maps.routes.v1.Polyline
  1570  	18, // 25: google.maps.routes.v1.RouteLegStep.start_location:type_name -> google.maps.routes.v1.Location
  1571  	18, // 26: google.maps.routes.v1.RouteLegStep.end_location:type_name -> google.maps.routes.v1.Location
  1572  	11, // 27: google.maps.routes.v1.RouteLegStep.navigation_instruction:type_name -> google.maps.routes.v1.NavigationInstruction
  1573  	5,  // 28: google.maps.routes.v1.RouteLegStep.travel_advisory:type_name -> google.maps.routes.v1.RouteLegStepTravelAdvisory
  1574  	0,  // 29: google.maps.routes.v1.NavigationInstruction.maneuver:type_name -> google.maps.routes.v1.Maneuver
  1575  	1,  // 30: google.maps.routes.v1.SpeedReadingInterval.speed:type_name -> google.maps.routes.v1.SpeedReadingInterval.Speed
  1576  	14, // 31: google.maps.routes.v1.CustomLayerInfo.area_info:type_name -> google.maps.routes.v1.CustomLayerInfo.AreaInfo
  1577  	15, // 32: google.maps.routes.v1.CustomLayerInfo.AreaInfo.duration_in_area:type_name -> google.protobuf.Duration
  1578  	33, // [33:33] is the sub-list for method output_type
  1579  	33, // [33:33] is the sub-list for method input_type
  1580  	33, // [33:33] is the sub-list for extension type_name
  1581  	33, // [33:33] is the sub-list for extension extendee
  1582  	0,  // [0:33] is the sub-list for field type_name
  1583  }
  1584  
  1585  func init() { file_google_maps_routes_v1_route_proto_init() }
  1586  func file_google_maps_routes_v1_route_proto_init() {
  1587  	if File_google_maps_routes_v1_route_proto != nil {
  1588  		return
  1589  	}
  1590  	file_google_maps_routes_v1_polyline_proto_init()
  1591  	file_google_maps_routes_v1_waypoint_proto_init()
  1592  	if !protoimpl.UnsafeEnabled {
  1593  		file_google_maps_routes_v1_route_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1594  			switch v := v.(*Route); i {
  1595  			case 0:
  1596  				return &v.state
  1597  			case 1:
  1598  				return &v.sizeCache
  1599  			case 2:
  1600  				return &v.unknownFields
  1601  			default:
  1602  				return nil
  1603  			}
  1604  		}
  1605  		file_google_maps_routes_v1_route_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1606  			switch v := v.(*RouteTravelAdvisory); i {
  1607  			case 0:
  1608  				return &v.state
  1609  			case 1:
  1610  				return &v.sizeCache
  1611  			case 2:
  1612  				return &v.unknownFields
  1613  			default:
  1614  				return nil
  1615  			}
  1616  		}
  1617  		file_google_maps_routes_v1_route_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1618  			switch v := v.(*RouteLegTravelAdvisory); i {
  1619  			case 0:
  1620  				return &v.state
  1621  			case 1:
  1622  				return &v.sizeCache
  1623  			case 2:
  1624  				return &v.unknownFields
  1625  			default:
  1626  				return nil
  1627  			}
  1628  		}
  1629  		file_google_maps_routes_v1_route_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1630  			switch v := v.(*RouteLegStepTravelAdvisory); i {
  1631  			case 0:
  1632  				return &v.state
  1633  			case 1:
  1634  				return &v.sizeCache
  1635  			case 2:
  1636  				return &v.unknownFields
  1637  			default:
  1638  				return nil
  1639  			}
  1640  		}
  1641  		file_google_maps_routes_v1_route_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1642  			switch v := v.(*TrafficRestriction); i {
  1643  			case 0:
  1644  				return &v.state
  1645  			case 1:
  1646  				return &v.sizeCache
  1647  			case 2:
  1648  				return &v.unknownFields
  1649  			default:
  1650  				return nil
  1651  			}
  1652  		}
  1653  		file_google_maps_routes_v1_route_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1654  			switch v := v.(*LicensePlateLastCharacterRestriction); i {
  1655  			case 0:
  1656  				return &v.state
  1657  			case 1:
  1658  				return &v.sizeCache
  1659  			case 2:
  1660  				return &v.unknownFields
  1661  			default:
  1662  				return nil
  1663  			}
  1664  		}
  1665  		file_google_maps_routes_v1_route_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1666  			switch v := v.(*RouteLeg); i {
  1667  			case 0:
  1668  				return &v.state
  1669  			case 1:
  1670  				return &v.sizeCache
  1671  			case 2:
  1672  				return &v.unknownFields
  1673  			default:
  1674  				return nil
  1675  			}
  1676  		}
  1677  		file_google_maps_routes_v1_route_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1678  			switch v := v.(*TollInfo); i {
  1679  			case 0:
  1680  				return &v.state
  1681  			case 1:
  1682  				return &v.sizeCache
  1683  			case 2:
  1684  				return &v.unknownFields
  1685  			default:
  1686  				return nil
  1687  			}
  1688  		}
  1689  		file_google_maps_routes_v1_route_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1690  			switch v := v.(*RouteLegStep); i {
  1691  			case 0:
  1692  				return &v.state
  1693  			case 1:
  1694  				return &v.sizeCache
  1695  			case 2:
  1696  				return &v.unknownFields
  1697  			default:
  1698  				return nil
  1699  			}
  1700  		}
  1701  		file_google_maps_routes_v1_route_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1702  			switch v := v.(*NavigationInstruction); i {
  1703  			case 0:
  1704  				return &v.state
  1705  			case 1:
  1706  				return &v.sizeCache
  1707  			case 2:
  1708  				return &v.unknownFields
  1709  			default:
  1710  				return nil
  1711  			}
  1712  		}
  1713  		file_google_maps_routes_v1_route_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  1714  			switch v := v.(*SpeedReadingInterval); i {
  1715  			case 0:
  1716  				return &v.state
  1717  			case 1:
  1718  				return &v.sizeCache
  1719  			case 2:
  1720  				return &v.unknownFields
  1721  			default:
  1722  				return nil
  1723  			}
  1724  		}
  1725  		file_google_maps_routes_v1_route_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  1726  			switch v := v.(*CustomLayerInfo); i {
  1727  			case 0:
  1728  				return &v.state
  1729  			case 1:
  1730  				return &v.sizeCache
  1731  			case 2:
  1732  				return &v.unknownFields
  1733  			default:
  1734  				return nil
  1735  			}
  1736  		}
  1737  		file_google_maps_routes_v1_route_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  1738  			switch v := v.(*CustomLayerInfo_AreaInfo); i {
  1739  			case 0:
  1740  				return &v.state
  1741  			case 1:
  1742  				return &v.sizeCache
  1743  			case 2:
  1744  				return &v.unknownFields
  1745  			default:
  1746  				return nil
  1747  			}
  1748  		}
  1749  	}
  1750  	type x struct{}
  1751  	out := protoimpl.TypeBuilder{
  1752  		File: protoimpl.DescBuilder{
  1753  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1754  			RawDescriptor: file_google_maps_routes_v1_route_proto_rawDesc,
  1755  			NumEnums:      2,
  1756  			NumMessages:   13,
  1757  			NumExtensions: 0,
  1758  			NumServices:   0,
  1759  		},
  1760  		GoTypes:           file_google_maps_routes_v1_route_proto_goTypes,
  1761  		DependencyIndexes: file_google_maps_routes_v1_route_proto_depIdxs,
  1762  		EnumInfos:         file_google_maps_routes_v1_route_proto_enumTypes,
  1763  		MessageInfos:      file_google_maps_routes_v1_route_proto_msgTypes,
  1764  	}.Build()
  1765  	File_google_maps_routes_v1_route_proto = out.File
  1766  	file_google_maps_routes_v1_route_proto_rawDesc = nil
  1767  	file_google_maps_routes_v1_route_proto_goTypes = nil
  1768  	file_google_maps_routes_v1_route_proto_depIdxs = nil
  1769  }
  1770  

View as plain text