// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.21.5
// source: google/maps/fleetengine/v1/vehicle_api.proto

package fleetengine

import (
	context "context"
	reflect "reflect"
	sync "sync"

	_ "google.golang.org/genproto/googleapis/api/annotations"
	latlng "google.golang.org/genproto/googleapis/type/latlng"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Specifies the order of the vehicle matches in the response.
type SearchVehiclesRequest_VehicleMatchOrder int32

const (
	// Default, used for unspecified or unrecognized vehicle matches order.
	SearchVehiclesRequest_UNKNOWN_VEHICLE_MATCH_ORDER SearchVehiclesRequest_VehicleMatchOrder = 0
	// Ascending order by vehicle driving time to the pickup point.
	SearchVehiclesRequest_PICKUP_POINT_ETA SearchVehiclesRequest_VehicleMatchOrder = 1
	// Ascending order by vehicle driving distance to the pickup point.
	SearchVehiclesRequest_PICKUP_POINT_DISTANCE SearchVehiclesRequest_VehicleMatchOrder = 2
	// Ascending order by vehicle driving time to the dropoff point. This order
	// can only be used if the dropoff point is specified in the request.
	SearchVehiclesRequest_DROPOFF_POINT_ETA SearchVehiclesRequest_VehicleMatchOrder = 3
	// Ascending order by straight-line distance from the vehicle's last
	// reported location to the pickup point.
	SearchVehiclesRequest_PICKUP_POINT_STRAIGHT_DISTANCE SearchVehiclesRequest_VehicleMatchOrder = 4
	// Ascending order by the configured match cost.
	SearchVehiclesRequest_COST SearchVehiclesRequest_VehicleMatchOrder = 5
)

// Enum value maps for SearchVehiclesRequest_VehicleMatchOrder.
var (
	SearchVehiclesRequest_VehicleMatchOrder_name = map[int32]string{
		0: "UNKNOWN_VEHICLE_MATCH_ORDER",
		1: "PICKUP_POINT_ETA",
		2: "PICKUP_POINT_DISTANCE",
		3: "DROPOFF_POINT_ETA",
		4: "PICKUP_POINT_STRAIGHT_DISTANCE",
		5: "COST",
	}
	SearchVehiclesRequest_VehicleMatchOrder_value = map[string]int32{
		"UNKNOWN_VEHICLE_MATCH_ORDER":    0,
		"PICKUP_POINT_ETA":               1,
		"PICKUP_POINT_DISTANCE":          2,
		"DROPOFF_POINT_ETA":              3,
		"PICKUP_POINT_STRAIGHT_DISTANCE": 4,
		"COST":                           5,
	}
)

func (x SearchVehiclesRequest_VehicleMatchOrder) Enum() *SearchVehiclesRequest_VehicleMatchOrder {
	p := new(SearchVehiclesRequest_VehicleMatchOrder)
	*p = x
	return p
}

func (x SearchVehiclesRequest_VehicleMatchOrder) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SearchVehiclesRequest_VehicleMatchOrder) Descriptor() protoreflect.EnumDescriptor {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[0].Descriptor()
}

func (SearchVehiclesRequest_VehicleMatchOrder) Type() protoreflect.EnumType {
	return &file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[0]
}

func (x SearchVehiclesRequest_VehicleMatchOrder) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SearchVehiclesRequest_VehicleMatchOrder.Descriptor instead.
func (SearchVehiclesRequest_VehicleMatchOrder) EnumDescriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{6, 0}
}

// Specifies the types of restrictions on a vehicle's current trips.
type SearchVehiclesRequest_CurrentTripsPresent int32

const (
	// Only vehicles without trips can appear in search results.
	// A validation exception is thrown if `include_back_to_back` is true. See
	// the `include_back_to_back` flag for more details.
	SearchVehiclesRequest_CURRENT_TRIPS_PRESENT_UNSPECIFIED SearchVehiclesRequest_CurrentTripsPresent = 0
	// Vehicles without trips can appear in search results.
	// A validation exception is thrown if `include_back_to_back` is true.
	SearchVehiclesRequest_NONE SearchVehiclesRequest_CurrentTripsPresent = 1
	// Vehicles with at most 5 current trips and 10 waypoints are included
	// in the search results.
	// A validation exception is thrown if `include_back_to_back` is true.
	SearchVehiclesRequest_ANY SearchVehiclesRequest_CurrentTripsPresent = 2
)

// Enum value maps for SearchVehiclesRequest_CurrentTripsPresent.
var (
	SearchVehiclesRequest_CurrentTripsPresent_name = map[int32]string{
		0: "CURRENT_TRIPS_PRESENT_UNSPECIFIED",
		1: "NONE",
		2: "ANY",
	}
	SearchVehiclesRequest_CurrentTripsPresent_value = map[string]int32{
		"CURRENT_TRIPS_PRESENT_UNSPECIFIED": 0,
		"NONE":                              1,
		"ANY":                               2,
	}
)

func (x SearchVehiclesRequest_CurrentTripsPresent) Enum() *SearchVehiclesRequest_CurrentTripsPresent {
	p := new(SearchVehiclesRequest_CurrentTripsPresent)
	*p = x
	return p
}

func (x SearchVehiclesRequest_CurrentTripsPresent) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SearchVehiclesRequest_CurrentTripsPresent) Descriptor() protoreflect.EnumDescriptor {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[1].Descriptor()
}

func (SearchVehiclesRequest_CurrentTripsPresent) Type() protoreflect.EnumType {
	return &file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[1]
}

func (x SearchVehiclesRequest_CurrentTripsPresent) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SearchVehiclesRequest_CurrentTripsPresent.Descriptor instead.
func (SearchVehiclesRequest_CurrentTripsPresent) EnumDescriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{6, 1}
}

// Type of vehicle match.
type VehicleMatch_VehicleMatchType int32

const (
	// Unknown vehicle match type
	VehicleMatch_UNKNOWN VehicleMatch_VehicleMatchType = 0
	// The vehicle currently has no trip assigned to it and can proceed to the
	// pickup point.
	VehicleMatch_EXCLUSIVE VehicleMatch_VehicleMatchType = 1
	// The vehicle is currently assigned to a trip, but can proceed to the
	// pickup point after completing the in-progress trip.  ETA and distance
	// calculations take the existing trip into account.
	VehicleMatch_BACK_TO_BACK VehicleMatch_VehicleMatchType = 2
	// The vehicle has sufficient capacity for a shared ride.
	VehicleMatch_CARPOOL VehicleMatch_VehicleMatchType = 3
	// The vehicle will finish its current, active trip before proceeding to the
	// pickup point.  ETA and distance calculations take the existing trip into
	// account.
	VehicleMatch_CARPOOL_BACK_TO_BACK VehicleMatch_VehicleMatchType = 4
)

// Enum value maps for VehicleMatch_VehicleMatchType.
var (
	VehicleMatch_VehicleMatchType_name = map[int32]string{
		0: "UNKNOWN",
		1: "EXCLUSIVE",
		2: "BACK_TO_BACK",
		3: "CARPOOL",
		4: "CARPOOL_BACK_TO_BACK",
	}
	VehicleMatch_VehicleMatchType_value = map[string]int32{
		"UNKNOWN":              0,
		"EXCLUSIVE":            1,
		"BACK_TO_BACK":         2,
		"CARPOOL":              3,
		"CARPOOL_BACK_TO_BACK": 4,
	}
)

func (x VehicleMatch_VehicleMatchType) Enum() *VehicleMatch_VehicleMatchType {
	p := new(VehicleMatch_VehicleMatchType)
	*p = x
	return p
}

func (x VehicleMatch_VehicleMatchType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (VehicleMatch_VehicleMatchType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[2].Descriptor()
}

func (VehicleMatch_VehicleMatchType) Type() protoreflect.EnumType {
	return &file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes[2]
}

func (x VehicleMatch_VehicleMatchType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use VehicleMatch_VehicleMatchType.Descriptor instead.
func (VehicleMatch_VehicleMatchType) EnumDescriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{11, 0}
}

// `CreateVehicle` request message.
type CreateVehicleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format `providers/{provider}`.
	// The provider must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Parent string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Unique Vehicle ID.
	// Subject to the following restrictions:
	//
	// * Must be a valid Unicode string.
	// * Limited to a maximum length of 64 characters.
	// * Normalized according to [Unicode Normalization Form C]
	// (http://www.unicode.org/reports/tr15/).
	// * May not contain any of the following ASCII characters: '/', ':', '?',
	// ',', or '#'.
	VehicleId string `protobuf:"bytes,4,opt,name=vehicle_id,json=vehicleId,proto3" json:"vehicle_id,omitempty"`
	// Required. The Vehicle entity to create. When creating a Vehicle, the
	// following fields are required:
	//
	// * `vehicleState`
	// * `supportedTripTypes`
	// * `maximumCapacity`
	// * `vehicleType`
	//
	// When creating a Vehicle, the following fields are ignored:
	//
	// * `name`
	// * `currentTrips`
	// * `availableCapacity`
	// * `current_route_segment`
	// * `current_route_segment_end_point`
	// * `current_route_segment_version`
	// * `current_route_segment_traffic`
	// * `route`
	// * `waypoints`
	// * `waypoints_version`
	// * `remaining_distance_meters`
	// * `remaining_time_seconds`
	// * `eta_to_next_waypoint`
	// * `navigation_status`
	//
	// All other fields are optional and used if provided.
	Vehicle *Vehicle `protobuf:"bytes,5,opt,name=vehicle,proto3" json:"vehicle,omitempty"`
}

func (x *CreateVehicleRequest) Reset() {
	*x = CreateVehicleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateVehicleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateVehicleRequest) ProtoMessage() {}

func (x *CreateVehicleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateVehicleRequest.ProtoReflect.Descriptor instead.
func (*CreateVehicleRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{0}
}

func (x *CreateVehicleRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CreateVehicleRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateVehicleRequest) GetVehicleId() string {
	if x != nil {
		return x.VehicleId
	}
	return ""
}

func (x *CreateVehicleRequest) GetVehicle() *Vehicle {
	if x != nil {
		return x.Vehicle
	}
	return nil
}

// `GetVehicle` request message.
type GetVehicleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format
	// `providers/{provider}/vehicles/{vehicle}`.
	// The provider must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Indicates the minimum timestamp (exclusive) for which
	// `Vehicle.current_route_segment` is retrieved.
	// If the route is unchanged since this timestamp, the `current_route_segment`
	// field is not set in the response. If a minimum is unspecified, the
	// `current_route_segment` is always retrieved.
	CurrentRouteSegmentVersion *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=current_route_segment_version,json=currentRouteSegmentVersion,proto3" json:"current_route_segment_version,omitempty"`
	// Indicates the minimum timestamp (exclusive) for which `Vehicle.waypoints`
	// data is retrieved. If the waypoints are unchanged since this timestamp, the
	// `vehicle.waypoints` data is not set in the response. If this field is
	// unspecified, `vehicle.waypoints` is always retrieved.
	WaypointsVersion *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=waypoints_version,json=waypointsVersion,proto3" json:"waypoints_version,omitempty"`
}

func (x *GetVehicleRequest) Reset() {
	*x = GetVehicleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetVehicleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetVehicleRequest) ProtoMessage() {}

func (x *GetVehicleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetVehicleRequest.ProtoReflect.Descriptor instead.
func (*GetVehicleRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{1}
}

func (x *GetVehicleRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetVehicleRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetVehicleRequest) GetCurrentRouteSegmentVersion() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentRouteSegmentVersion
	}
	return nil
}

func (x *GetVehicleRequest) GetWaypointsVersion() *timestamppb.Timestamp {
	if x != nil {
		return x.WaypointsVersion
	}
	return nil
}

// `UpdateVehicle request message.
type UpdateVehicleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format
	// `providers/{provider}/vehicles/{vehicle}`.
	// The {provider} must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The `Vehicle` entity values to apply.  When updating a `Vehicle`,
	// the following fields may not be updated as they are managed by the
	// server.
	//
	// * `current_trips`
	// * `available_capacity`
	// * `current_route_segment_version`
	// * `waypoints_version`
	//
	// Furthermore, the vehicle `name` cannot be updated.
	//
	// If the `attributes` field is updated, **all** the vehicle's attributes are
	// replaced with the attributes provided in the request. If you want to update
	// only some attributes, see the `UpdateVehicleAttributes` method. Likewise,
	// the `waypoints` field can be updated, but must contain all the waypoints.
	// currently on the vehicle, and no other waypoints.
	Vehicle *Vehicle `protobuf:"bytes,4,opt,name=vehicle,proto3" json:"vehicle,omitempty"`
	// Required. A field mask indicating which fields of the `Vehicle` to update.
	// At least one field name must be provided.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}

func (x *UpdateVehicleRequest) Reset() {
	*x = UpdateVehicleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateVehicleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateVehicleRequest) ProtoMessage() {}

func (x *UpdateVehicleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateVehicleRequest.ProtoReflect.Descriptor instead.
func (*UpdateVehicleRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{2}
}

func (x *UpdateVehicleRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateVehicleRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateVehicleRequest) GetVehicle() *Vehicle {
	if x != nil {
		return x.Vehicle
	}
	return nil
}

func (x *UpdateVehicleRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

// `UpdateVehicleLocation` request message.
//
// Deprecated: Do not use.
type UpdateVehicleLocationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format
	// `providers/{provider}/vehicles/{vehicle}`.
	// The {provider} must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The vehicle's most recent location.  The `location` and
	// `update_time` subfields are required.
	CurrentLocation *VehicleLocation `protobuf:"bytes,4,opt,name=current_location,json=currentLocation,proto3" json:"current_location,omitempty"`
	// Set the vehicle's state to either `ONLINE` or `OFFLINE`.
	// If set to `UNKNOWN_VEHICLE_STATE`, the vehicle's state will not be altered.
	CurrentState VehicleState `protobuf:"varint,5,opt,name=current_state,json=currentState,proto3,enum=maps.fleetengine.v1.VehicleState" json:"current_state,omitempty"`
}

func (x *UpdateVehicleLocationRequest) Reset() {
	*x = UpdateVehicleLocationRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateVehicleLocationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateVehicleLocationRequest) ProtoMessage() {}

func (x *UpdateVehicleLocationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateVehicleLocationRequest.ProtoReflect.Descriptor instead.
func (*UpdateVehicleLocationRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{3}
}

func (x *UpdateVehicleLocationRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateVehicleLocationRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateVehicleLocationRequest) GetCurrentLocation() *VehicleLocation {
	if x != nil {
		return x.CurrentLocation
	}
	return nil
}

func (x *UpdateVehicleLocationRequest) GetCurrentState() VehicleState {
	if x != nil {
		return x.CurrentState
	}
	return VehicleState_UNKNOWN_VEHICLE_STATE
}

// `UpdateVehicleAttributes` request message.
type UpdateVehicleAttributesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format `providers/{provider}/vehicles/{vehicle}`.
	// The provider must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The vehicle attributes to update. Unmentioned attributes will not
	// be altered or removed.
	Attributes []*VehicleAttribute `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
}

func (x *UpdateVehicleAttributesRequest) Reset() {
	*x = UpdateVehicleAttributesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateVehicleAttributesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateVehicleAttributesRequest) ProtoMessage() {}

func (x *UpdateVehicleAttributesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateVehicleAttributesRequest.ProtoReflect.Descriptor instead.
func (*UpdateVehicleAttributesRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{4}
}

func (x *UpdateVehicleAttributesRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateVehicleAttributesRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateVehicleAttributesRequest) GetAttributes() []*VehicleAttribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

// `UpdateVehicleAttributes` response message.
type UpdateVehicleAttributesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The updated full list of vehicle attributes, including new, altered, and
	// untouched attributes.
	Attributes []*VehicleAttribute `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
}

func (x *UpdateVehicleAttributesResponse) Reset() {
	*x = UpdateVehicleAttributesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateVehicleAttributesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateVehicleAttributesResponse) ProtoMessage() {}

func (x *UpdateVehicleAttributesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateVehicleAttributesResponse.ProtoReflect.Descriptor instead.
func (*UpdateVehicleAttributesResponse) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{5}
}

func (x *UpdateVehicleAttributesResponse) GetAttributes() []*VehicleAttribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

// `SearchVehicles` request message.
type SearchVehiclesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format `providers/{provider}`.
	// The provider must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Parent string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The pickup point to search near.
	PickupPoint *TerminalLocation `protobuf:"bytes,4,opt,name=pickup_point,json=pickupPoint,proto3" json:"pickup_point,omitempty"`
	// The customer's intended dropoff location. The field is required if
	// `trip_types` contains `TripType.SHARED`.
	DropoffPoint *TerminalLocation `protobuf:"bytes,5,opt,name=dropoff_point,json=dropoffPoint,proto3" json:"dropoff_point,omitempty"`
	// Required. Defines the vehicle search radius around the pickup point. Only
	// vehicles within the search radius will be returned. Value must be between
	// 400 and 10000 meters (inclusive).
	PickupRadiusMeters int32 `protobuf:"varint,6,opt,name=pickup_radius_meters,json=pickupRadiusMeters,proto3" json:"pickup_radius_meters,omitempty"`
	// Required. Specifies the maximum number of vehicles to return. The value
	// must be between 1 and 50 (inclusive).
	Count int32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"`
	// Required. Specifies the number of passengers being considered for a trip.
	// The value must be greater than or equal to one. The driver is not
	// considered in the capacity value.
	MinimumCapacity int32 `protobuf:"varint,8,opt,name=minimum_capacity,json=minimumCapacity,proto3" json:"minimum_capacity,omitempty"`
	// Required. Represents the type of proposed trip. Eligible vehicles are those
	// that can support at least one of the specified trip type.
	//
	// `EXCLUSIVE` and `SHARED` may not be included together.
	// `SHARED` is not supported when `current_trips_present` is
	// `CURRENT_TRIPS_PRESENT_UNSPECIFIED`.
	TripTypes []TripType `protobuf:"varint,9,rep,packed,name=trip_types,json=tripTypes,proto3,enum=maps.fleetengine.v1.TripType" json:"trip_types,omitempty"`
	// Restricts the search to only those vehicles that have updated their
	// locations within the specified duration. If this field is not
	// set, the server uses five minutes as the default value.
	MaximumStaleness *durationpb.Duration `protobuf:"bytes,10,opt,name=maximum_staleness,json=maximumStaleness,proto3" json:"maximum_staleness,omitempty"`
	// Required. Restricts the search to vehicles with one of the specified types.
	// At least one vehicle type must be specified.
	VehicleTypes []*Vehicle_VehicleType `protobuf:"bytes,14,rep,name=vehicle_types,json=vehicleTypes,proto3" json:"vehicle_types,omitempty"`
	// Callers can form complex logical operations using any combination of the
	// `required_attributes`, `required_one_of_attributes`, and
	// `required_one_of_attribute_sets` fields.
	//
	// `required_attributes` is a list; `required_one_of_attributes` uses a
	// message which allows a list of lists. In combination, the two fields allow
	// the composition of this expression:
	//
	// ```
	// (required_attributes[0] AND required_attributes[1] AND ...)
	// AND
	// (required_one_of_attributes[0][0] OR required_one_of_attributes[0][1] OR
	// ...)
	// AND
	// (required_one_of_attributes[1][0] OR required_one_of_attributes[1][1] OR
	// ...)
	// ```
	//
	// Restricts the search to only those vehicles with the specified attributes.
	// This field is a conjunction/AND operation. A max of 50 required_attributes
	// is allowed. This matches the maximum number of attributes allowed on a
	// vehicle.
	RequiredAttributes []*VehicleAttribute `protobuf:"bytes,12,rep,name=required_attributes,json=requiredAttributes,proto3" json:"required_attributes,omitempty"`
	// Restricts the search to only those vehicles with at least one of
	// the specified attributes in each `VehicleAttributeList`. Within each
	// list, a vehicle must match at least one of the attributes. This field is an
	// inclusive disjunction/OR operation in each `VehicleAttributeList` and a
	// conjunction/AND operation across the collection of `VehicleAttributeList`.
	RequiredOneOfAttributes []*VehicleAttributeList `protobuf:"bytes,15,rep,name=required_one_of_attributes,json=requiredOneOfAttributes,proto3" json:"required_one_of_attributes,omitempty"`
	// `required_one_of_attribute_sets` provides additional functionality.
	//
	// Similar to `required_one_of_attributes`, `required_one_of_attribute_sets`
	// uses a message which allows a list of lists, allowing expressions such as
	// this one:
	//
	// ```
	// (required_attributes[0] AND required_attributes[1] AND ...)
	// AND
	// (required_one_of_attribute_sets[0][0] AND
	// required_one_of_attribute_sets[0][1] AND
	// ...)
	// OR
	// (required_one_of_attribute_sets[1][0] AND
	// required_one_of_attribute_sets[1][1] AND
	// ...)
	// ```
	//
	// Restricts the search to only those vehicles with all the attributes in a
	// `VehicleAttributeList`. Within each list, a
	// vehicle must match all of the attributes. This field is a conjunction/AND
	// operation in each `VehicleAttributeList` and inclusive disjunction/OR
	// operation across the collection of `VehicleAttributeList`.
	RequiredOneOfAttributeSets []*VehicleAttributeList `protobuf:"bytes,20,rep,name=required_one_of_attribute_sets,json=requiredOneOfAttributeSets,proto3" json:"required_one_of_attribute_sets,omitempty"`
	// Required. Specifies the desired ordering criterion for results.
	OrderBy SearchVehiclesRequest_VehicleMatchOrder `protobuf:"varint,13,opt,name=order_by,json=orderBy,proto3,enum=maps.fleetengine.v1.SearchVehiclesRequest_VehicleMatchOrder" json:"order_by,omitempty"`
	// Indicates if a vehicle with a single active trip is eligible for another
	// match. If `false`, vehicles with assigned trips are excluded from the
	// search results. If `true`, search results include vehicles with
	// `TripStatus` of `ENROUTE_TO_DROPOFF`.
	//
	// This field is only considered if a single `trip_type` of `EXCLUSIVE` is
	// specified.
	//
	// The default value is `false`.
	IncludeBackToBack bool `protobuf:"varint,18,opt,name=include_back_to_back,json=includeBackToBack,proto3" json:"include_back_to_back,omitempty"`
	// Indicates the trip associated with this `SearchVehicleRequest`.
	TripId string `protobuf:"bytes,19,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"`
	// Restricts vehicles from appearing in the search results based on
	// their current trips.
	//
	// When current_trips_present is `NONE` or `ANY`, `trip_types` can be either
	// `EXCLUSIVE` or `SHARED`, but not both.
	CurrentTripsPresent SearchVehiclesRequest_CurrentTripsPresent `protobuf:"varint,21,opt,name=current_trips_present,json=currentTripsPresent,proto3,enum=maps.fleetengine.v1.SearchVehiclesRequest_CurrentTripsPresent" json:"current_trips_present,omitempty"`
}

func (x *SearchVehiclesRequest) Reset() {
	*x = SearchVehiclesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchVehiclesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchVehiclesRequest) ProtoMessage() {}

func (x *SearchVehiclesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchVehiclesRequest.ProtoReflect.Descriptor instead.
func (*SearchVehiclesRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{6}
}

func (x *SearchVehiclesRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *SearchVehiclesRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *SearchVehiclesRequest) GetPickupPoint() *TerminalLocation {
	if x != nil {
		return x.PickupPoint
	}
	return nil
}

func (x *SearchVehiclesRequest) GetDropoffPoint() *TerminalLocation {
	if x != nil {
		return x.DropoffPoint
	}
	return nil
}

func (x *SearchVehiclesRequest) GetPickupRadiusMeters() int32 {
	if x != nil {
		return x.PickupRadiusMeters
	}
	return 0
}

func (x *SearchVehiclesRequest) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SearchVehiclesRequest) GetMinimumCapacity() int32 {
	if x != nil {
		return x.MinimumCapacity
	}
	return 0
}

func (x *SearchVehiclesRequest) GetTripTypes() []TripType {
	if x != nil {
		return x.TripTypes
	}
	return nil
}

func (x *SearchVehiclesRequest) GetMaximumStaleness() *durationpb.Duration {
	if x != nil {
		return x.MaximumStaleness
	}
	return nil
}

func (x *SearchVehiclesRequest) GetVehicleTypes() []*Vehicle_VehicleType {
	if x != nil {
		return x.VehicleTypes
	}
	return nil
}

func (x *SearchVehiclesRequest) GetRequiredAttributes() []*VehicleAttribute {
	if x != nil {
		return x.RequiredAttributes
	}
	return nil
}

func (x *SearchVehiclesRequest) GetRequiredOneOfAttributes() []*VehicleAttributeList {
	if x != nil {
		return x.RequiredOneOfAttributes
	}
	return nil
}

func (x *SearchVehiclesRequest) GetRequiredOneOfAttributeSets() []*VehicleAttributeList {
	if x != nil {
		return x.RequiredOneOfAttributeSets
	}
	return nil
}

func (x *SearchVehiclesRequest) GetOrderBy() SearchVehiclesRequest_VehicleMatchOrder {
	if x != nil {
		return x.OrderBy
	}
	return SearchVehiclesRequest_UNKNOWN_VEHICLE_MATCH_ORDER
}

func (x *SearchVehiclesRequest) GetIncludeBackToBack() bool {
	if x != nil {
		return x.IncludeBackToBack
	}
	return false
}

func (x *SearchVehiclesRequest) GetTripId() string {
	if x != nil {
		return x.TripId
	}
	return ""
}

func (x *SearchVehiclesRequest) GetCurrentTripsPresent() SearchVehiclesRequest_CurrentTripsPresent {
	if x != nil {
		return x.CurrentTripsPresent
	}
	return SearchVehiclesRequest_CURRENT_TRIPS_PRESENT_UNSPECIFIED
}

// `SearchVehicles` response message.
type SearchVehiclesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// List of vehicles that match the `SearchVehiclesRequest` criteria, ordered
	// according to `SearchVehiclesRequest.order_by` field.
	Matches []*VehicleMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
}

func (x *SearchVehiclesResponse) Reset() {
	*x = SearchVehiclesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchVehiclesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchVehiclesResponse) ProtoMessage() {}

func (x *SearchVehiclesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchVehiclesResponse.ProtoReflect.Descriptor instead.
func (*SearchVehiclesResponse) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{7}
}

func (x *SearchVehiclesResponse) GetMatches() []*VehicleMatch {
	if x != nil {
		return x.Matches
	}
	return nil
}

// `ListVehicles` request message.
type ListVehiclesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The standard Fleet Engine request header.
	Header *RequestHeader `protobuf:"bytes,12,opt,name=header,proto3" json:"header,omitempty"`
	// Required. Must be in the format `providers/{provider}`.
	// The provider must be the Project ID (for example, `sample-cloud-project`)
	// of the Google Cloud Project of which the service account making
	// this call is a member.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The maximum number of vehicles to return.
	// Default value: 100.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// The value of the `next_page_token` provided by a previous call to
	// `ListVehicles` so that you can paginate through groups of vehicles. The
	// value is undefined if the filter criteria of the request is not the same as
	// the filter criteria for the previous call to `ListVehicles`.
	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies the required minimum capacity of the vehicle. All vehicles
	// returned will have a `maximum_capacity` greater than or equal to this
	// value. If set, must be greater or equal to 0.
	MinimumCapacity *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=minimum_capacity,json=minimumCapacity,proto3" json:"minimum_capacity,omitempty"`
	// Restricts the response to vehicles that support at least one of the
	// specified trip types.
	TripTypes []TripType `protobuf:"varint,7,rep,packed,name=trip_types,json=tripTypes,proto3,enum=maps.fleetengine.v1.TripType" json:"trip_types,omitempty"`
	// Restricts the response to vehicles that have updated their locations within
	// the specified duration at the time of the call. If present, must be a valid
	// positive duration.
	MaximumStaleness *durationpb.Duration `protobuf:"bytes,8,opt,name=maximum_staleness,json=maximumStaleness,proto3" json:"maximum_staleness,omitempty"`
	// Required. Restricts the response to vehicles with one of the specified type
	// categories.
	VehicleTypeCategories []Vehicle_VehicleType_Category `protobuf:"varint,9,rep,packed,name=vehicle_type_categories,json=vehicleTypeCategories,proto3,enum=maps.fleetengine.v1.Vehicle_VehicleType_Category" json:"vehicle_type_categories,omitempty"`
	// Callers can form complex logical operations using any combination of the
	// `required_attributes`, `required_one_of_attributes`, and
	// `required_one_of_attribute_sets` fields.
	//
	// `required_attributes` is a list; `required_one_of_attributes` uses a
	// message which allows a list of lists. In combination, the two fields allow
	// the composition of this expression:
	//
	// ```
	// (required_attributes[0] AND required_attributes[1] AND ...)
	// AND
	// (required_one_of_attributes[0][0] OR required_one_of_attributes[0][1] OR
	// ...)
	// AND
	// (required_one_of_attributes[1][0] OR required_one_of_attributes[1][1] OR
	// ...)
	// ```
	//
	// Restricts the response to vehicles with the specified attributes. This
	// field is a conjunction/AND operation. Your app can specify up to 100
	// attributes; however, the combined key:value string length cannot exceed
	// 1024 characters.
	RequiredAttributes []string `protobuf:"bytes,10,rep,name=required_attributes,json=requiredAttributes,proto3" json:"required_attributes,omitempty"`
	// Restricts the response to vehicles with at least one of the specified
	// attributes in each `VehicleAttributeList`. Within each list, a vehicle must
	// match at least one of the attributes. This field is an inclusive
	// disjunction/OR operation in each `VehicleAttributeList` and a
	// conjunction/AND operation across the collection of `VehicleAttributeList`.
	// Format: key1:value1|key2:value2|key3:value3...
	RequiredOneOfAttributes []string `protobuf:"bytes,13,rep,name=required_one_of_attributes,json=requiredOneOfAttributes,proto3" json:"required_one_of_attributes,omitempty"`
	// `required_one_of_attribute_sets` provides additional functionality.
	//
	// Similar to `required_one_of_attributes`, `required_one_of_attribute_sets`
	// uses a message which allows a list of lists, allowing expressions such as
	// this one:
	//
	// ```
	// (required_attributes[0] AND required_attributes[1] AND ...)
	// AND
	// (required_one_of_attributes[0][0] AND required_one_of_attributes[0][1] AND
	// ...)
	// OR
	// (required_one_of_attributes[1][0] AND required_one_of_attributes[1][1] AND
	// ...)
	// ```
	//
	// Restricts the response to vehicles that match all the attributes in a
	// `VehicleAttributeList`. Within each list, a vehicle must match all of the
	// attributes. This field is a conjunction/AND operation in each
	// `VehicleAttributeList` and inclusive disjunction/OR operation across the
	// collection of `VehicleAttributeList`. Each repeated string should be of the
	// format "key1:value1|key2:value2|key3:value3".
	RequiredOneOfAttributeSets []string `protobuf:"bytes,15,rep,name=required_one_of_attribute_sets,json=requiredOneOfAttributeSets,proto3" json:"required_one_of_attribute_sets,omitempty"`
	// Restricts the response to vehicles that have this vehicle state.
	VehicleState VehicleState `protobuf:"varint,11,opt,name=vehicle_state,json=vehicleState,proto3,enum=maps.fleetengine.v1.VehicleState" json:"vehicle_state,omitempty"`
	// Only return the vehicles with current trip(s).
	OnTripOnly bool `protobuf:"varint,14,opt,name=on_trip_only,json=onTripOnly,proto3" json:"on_trip_only,omitempty"`
}

func (x *ListVehiclesRequest) Reset() {
	*x = ListVehiclesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListVehiclesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListVehiclesRequest) ProtoMessage() {}

func (x *ListVehiclesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListVehiclesRequest.ProtoReflect.Descriptor instead.
func (*ListVehiclesRequest) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{8}
}

func (x *ListVehiclesRequest) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListVehiclesRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListVehiclesRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListVehiclesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

func (x *ListVehiclesRequest) GetMinimumCapacity() *wrapperspb.Int32Value {
	if x != nil {
		return x.MinimumCapacity
	}
	return nil
}

func (x *ListVehiclesRequest) GetTripTypes() []TripType {
	if x != nil {
		return x.TripTypes
	}
	return nil
}

func (x *ListVehiclesRequest) GetMaximumStaleness() *durationpb.Duration {
	if x != nil {
		return x.MaximumStaleness
	}
	return nil
}

func (x *ListVehiclesRequest) GetVehicleTypeCategories() []Vehicle_VehicleType_Category {
	if x != nil {
		return x.VehicleTypeCategories
	}
	return nil
}

func (x *ListVehiclesRequest) GetRequiredAttributes() []string {
	if x != nil {
		return x.RequiredAttributes
	}
	return nil
}

func (x *ListVehiclesRequest) GetRequiredOneOfAttributes() []string {
	if x != nil {
		return x.RequiredOneOfAttributes
	}
	return nil
}

func (x *ListVehiclesRequest) GetRequiredOneOfAttributeSets() []string {
	if x != nil {
		return x.RequiredOneOfAttributeSets
	}
	return nil
}

func (x *ListVehiclesRequest) GetVehicleState() VehicleState {
	if x != nil {
		return x.VehicleState
	}
	return VehicleState_UNKNOWN_VEHICLE_STATE
}

func (x *ListVehiclesRequest) GetOnTripOnly() bool {
	if x != nil {
		return x.OnTripOnly
	}
	return false
}

// `ListVehicles` response message.
type ListVehiclesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Vehicles matching the criteria in the request.
	// The maximum number of vehicles returned is determined by the `page_size`
	// field in the request.
	Vehicles []*Vehicle `protobuf:"bytes,1,rep,name=vehicles,proto3" json:"vehicles,omitempty"`
	// Token to retrieve the next page of vehicles, or empty if there are no
	// more vehicles that meet the request criteria.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Required. Total number of vehicles matching the request criteria across all
	// pages.
	TotalSize int64 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
}

func (x *ListVehiclesResponse) Reset() {
	*x = ListVehiclesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListVehiclesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListVehiclesResponse) ProtoMessage() {}

func (x *ListVehiclesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListVehiclesResponse.ProtoReflect.Descriptor instead.
func (*ListVehiclesResponse) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{9}
}

func (x *ListVehiclesResponse) GetVehicles() []*Vehicle {
	if x != nil {
		return x.Vehicles
	}
	return nil
}

func (x *ListVehiclesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

func (x *ListVehiclesResponse) GetTotalSize() int64 {
	if x != nil {
		return x.TotalSize
	}
	return 0
}

// Describes intermediate points along a route.
type Waypoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The location of this waypoint.
	LatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
	// The estimated time that the vehicle will arrive at this waypoint.
	Eta *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=eta,proto3" json:"eta,omitempty"`
}

func (x *Waypoint) Reset() {
	*x = Waypoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Waypoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Waypoint) ProtoMessage() {}

func (x *Waypoint) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Waypoint.ProtoReflect.Descriptor instead.
func (*Waypoint) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{10}
}

func (x *Waypoint) GetLatLng() *latlng.LatLng {
	if x != nil {
		return x.LatLng
	}
	return nil
}

func (x *Waypoint) GetEta() *timestamppb.Timestamp {
	if x != nil {
		return x.Eta
	}
	return nil
}

// Contains the vehicle and related estimates for a vehicle that match the
// points of active trips for the vehicle `SearchVehiclesRequest`.
type VehicleMatch struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. A vehicle that matches the request.
	Vehicle *Vehicle `protobuf:"bytes,1,opt,name=vehicle,proto3" json:"vehicle,omitempty"`
	// The vehicle's driving ETA to the pickup point specified in the
	// request. An empty value indicates a failure in calculating ETA for the
	// vehicle.  If `SearchVehiclesRequest.include_back_to_back` was `true` and
	// this vehicle has an active trip, `vehicle_pickup_eta` includes the time
	// required to complete the current active trip.
	VehiclePickupEta *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=vehicle_pickup_eta,json=vehiclePickupEta,proto3" json:"vehicle_pickup_eta,omitempty"`
	// The distance from the Vehicle's current location to the pickup point
	// specified in the request, including any intermediate pickup or dropoff
	// points for existing trips. This distance comprises the calculated driving
	// (route) distance, plus the straight line distance between the navigation
	// end point and the requested pickup point. (The distance between the
	// navigation end point and the requested pickup point is typically small.) An
	// empty value indicates an error in calculating the distance.
	VehiclePickupDistanceMeters *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=vehicle_pickup_distance_meters,json=vehiclePickupDistanceMeters,proto3" json:"vehicle_pickup_distance_meters,omitempty"`
	// Required. The straight-line distance between the vehicle and the pickup
	// point specified in the request.
	VehiclePickupStraightLineDistanceMeters *wrapperspb.Int32Value `protobuf:"bytes,11,opt,name=vehicle_pickup_straight_line_distance_meters,json=vehiclePickupStraightLineDistanceMeters,proto3" json:"vehicle_pickup_straight_line_distance_meters,omitempty"`
	// The complete vehicle's driving ETA to the drop off point specified in the
	// request. The ETA includes stopping at any waypoints before the
	// `dropoff_point` specified in the request. The value will only be populated
	// when a drop off point is specified in the request. An empty value indicates
	// an error calculating the ETA.
	VehicleDropoffEta *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=vehicle_dropoff_eta,json=vehicleDropoffEta,proto3" json:"vehicle_dropoff_eta,omitempty"`
	// The vehicle's driving distance (in meters) from the pickup point
	// to the drop off point specified in the request. The distance is only
	// between the two points and does not include the vehicle location or any
	// other points that must be visited before the vehicle visits either the
	// pickup point or dropoff point. The value will only be populated when a
	// `dropoff_point` is specified in the request. An empty value indicates
	// a failure in calculating the distance from the pickup to
	// drop off point specified in the request.
	VehiclePickupToDropoffDistanceMeters *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=vehicle_pickup_to_dropoff_distance_meters,json=vehiclePickupToDropoffDistanceMeters,proto3" json:"vehicle_pickup_to_dropoff_distance_meters,omitempty"`
	// Required. The trip type of the request that was used to calculate the ETA
	// to the pickup point.
	TripType TripType `protobuf:"varint,6,opt,name=trip_type,json=tripType,proto3,enum=maps.fleetengine.v1.TripType" json:"trip_type,omitempty"`
	// The ordered list of waypoints used to calculate the ETA. The list
	// includes vehicle location, the pickup points of active
	// trips for the vehicle, and the pickup points provided in the
	// request. An empty list indicates a failure in calculating ETA for the
	// vehicle.
	VehicleTripsWaypoints []*Waypoint `protobuf:"bytes,7,rep,name=vehicle_trips_waypoints,json=vehicleTripsWaypoints,proto3" json:"vehicle_trips_waypoints,omitempty"`
	// Type of the vehicle match.
	VehicleMatchType VehicleMatch_VehicleMatchType `protobuf:"varint,8,opt,name=vehicle_match_type,json=vehicleMatchType,proto3,enum=maps.fleetengine.v1.VehicleMatch_VehicleMatchType" json:"vehicle_match_type,omitempty"`
	// The order requested for sorting vehicle matches.
	RequestedOrderedBy SearchVehiclesRequest_VehicleMatchOrder `protobuf:"varint,9,opt,name=requested_ordered_by,json=requestedOrderedBy,proto3,enum=maps.fleetengine.v1.SearchVehiclesRequest_VehicleMatchOrder" json:"requested_ordered_by,omitempty"`
	// The actual order that was used for this vehicle. Normally this
	// will match the 'order_by' field from the request; however, in certain
	// circumstances such as an internal server error, a different method
	// may be used (such as `PICKUP_POINT_STRAIGHT_DISTANCE`).
	OrderedBy SearchVehiclesRequest_VehicleMatchOrder `protobuf:"varint,10,opt,name=ordered_by,json=orderedBy,proto3,enum=maps.fleetengine.v1.SearchVehiclesRequest_VehicleMatchOrder" json:"ordered_by,omitempty"`
}

func (x *VehicleMatch) Reset() {
	*x = VehicleMatch{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VehicleMatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VehicleMatch) ProtoMessage() {}

func (x *VehicleMatch) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VehicleMatch.ProtoReflect.Descriptor instead.
func (*VehicleMatch) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{11}
}

func (x *VehicleMatch) GetVehicle() *Vehicle {
	if x != nil {
		return x.Vehicle
	}
	return nil
}

func (x *VehicleMatch) GetVehiclePickupEta() *timestamppb.Timestamp {
	if x != nil {
		return x.VehiclePickupEta
	}
	return nil
}

func (x *VehicleMatch) GetVehiclePickupDistanceMeters() *wrapperspb.Int32Value {
	if x != nil {
		return x.VehiclePickupDistanceMeters
	}
	return nil
}

func (x *VehicleMatch) GetVehiclePickupStraightLineDistanceMeters() *wrapperspb.Int32Value {
	if x != nil {
		return x.VehiclePickupStraightLineDistanceMeters
	}
	return nil
}

func (x *VehicleMatch) GetVehicleDropoffEta() *timestamppb.Timestamp {
	if x != nil {
		return x.VehicleDropoffEta
	}
	return nil
}

func (x *VehicleMatch) GetVehiclePickupToDropoffDistanceMeters() *wrapperspb.Int32Value {
	if x != nil {
		return x.VehiclePickupToDropoffDistanceMeters
	}
	return nil
}

func (x *VehicleMatch) GetTripType() TripType {
	if x != nil {
		return x.TripType
	}
	return TripType_UNKNOWN_TRIP_TYPE
}

func (x *VehicleMatch) GetVehicleTripsWaypoints() []*Waypoint {
	if x != nil {
		return x.VehicleTripsWaypoints
	}
	return nil
}

func (x *VehicleMatch) GetVehicleMatchType() VehicleMatch_VehicleMatchType {
	if x != nil {
		return x.VehicleMatchType
	}
	return VehicleMatch_UNKNOWN
}

func (x *VehicleMatch) GetRequestedOrderedBy() SearchVehiclesRequest_VehicleMatchOrder {
	if x != nil {
		return x.RequestedOrderedBy
	}
	return SearchVehiclesRequest_UNKNOWN_VEHICLE_MATCH_ORDER
}

func (x *VehicleMatch) GetOrderedBy() SearchVehiclesRequest_VehicleMatchOrder {
	if x != nil {
		return x.OrderedBy
	}
	return SearchVehiclesRequest_UNKNOWN_VEHICLE_MATCH_ORDER
}

// A list-of-lists datatype for vehicle attributes.
type VehicleAttributeList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A list of attributes in this collection.
	Attributes []*VehicleAttribute `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
}

func (x *VehicleAttributeList) Reset() {
	*x = VehicleAttributeList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VehicleAttributeList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VehicleAttributeList) ProtoMessage() {}

func (x *VehicleAttributeList) ProtoReflect() protoreflect.Message {
	mi := &file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VehicleAttributeList.ProtoReflect.Descriptor instead.
func (*VehicleAttributeList) Descriptor() ([]byte, []int) {
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP(), []int{12}
}

func (x *VehicleAttributeList) GetAttributes() []*VehicleAttribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

var File_google_maps_fleetengine_v1_vehicle_api_proto protoreflect.FileDescriptor

var file_google_maps_fleetengine_v1_vehicle_api_proto_rawDesc = []byte{
	0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x68,
	0x69, 0x63, 0x6c, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x66, 0x6c, 0x65, 0x65,
	0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
	0x6d, 0x61, 0x70, 0x73, 0x2f, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79,
	0x70, 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
	0xd0, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
	0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68,
	0x69, 0x63, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63,
	0x6c, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
	0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x66, 0x6c, 0x65, 0x65,
	0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x1d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f,
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x11, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
	0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x77, 0x61, 0x79, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x01, 0x0a,
	0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61,
	0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07,
	0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46,
	0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x95, 0x02, 0x0a, 0x1c, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x70,
	0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x54, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x61, 0x70, 0x73,
	0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d,
	0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x02, 0x18,
	0x01, 0x22, 0xc1, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65,
	0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72,
	0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d,
	0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x65, 0x73, 0x22, 0xb5, 0x0b, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x69, 0x63, 0x6b, 0x75,
	0x70, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x69, 0x63, 0x6b, 0x75,
	0x70, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x64, 0x72, 0x6f, 0x70, 0x6f, 0x66,
	0x66, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x6f, 0x66, 0x66, 0x50, 0x6f, 0x69,
	0x6e, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x70, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x61, 0x64,
	0x69, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x70, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x61, 0x64,
	0x69, 0x75, 0x73, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f,
	0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x43, 0x61, 0x70, 0x61,
	0x63, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
	0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54,
	0x72, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72,
	0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d,
	0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d,
	0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x12,
	0x52, 0x0a, 0x0d, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68,
	0x69, 0x63, 0x6c, 0x65, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f,
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67,
	0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74,
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x1a, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x61,
	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x29, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69,
	0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x1e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f,
	0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
	0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x61,
	0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x65,
	0x74, 0x73, 0x12, 0x5c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65,
	0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63,
	0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x72, 0x64,
	0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79,
	0x12, 0x2f, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b,
	0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x42, 0x61, 0x63,
	0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x72, 0x0a, 0x15, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x73,
	0x65, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6d, 0x61, 0x70, 0x73,
	0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x69,
	0x70, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x54, 0x72, 0x69, 0x70, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x22, 0xaa,
	0x01, 0x0a, 0x11, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
	0x56, 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x52,
	0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x5f,
	0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x54, 0x41, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50,
	0x49, 0x43, 0x4b, 0x55, 0x50, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x54,
	0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x52, 0x4f, 0x50, 0x4f, 0x46,
	0x46, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x45, 0x54, 0x41, 0x10, 0x03, 0x12, 0x22, 0x0a,
	0x1e, 0x50, 0x49, 0x43, 0x4b, 0x55, 0x50, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x54,
	0x52, 0x41, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10,
	0x04, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x05, 0x22, 0x4f, 0x0a, 0x13, 0x43,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x69, 0x70, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65,
	0x6e, 0x74, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52,
	0x49, 0x50, 0x53, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50,
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e,
	0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x16,
	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66,
	0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x65, 0x73, 0x22, 0x84, 0x06, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x61,
	0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x12, 0x46, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x70, 0x61,
	0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74,
	0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
	0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x70,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d,
	0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x69,
	0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
	0x6d, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x61,
	0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x6e,
	0x0a, 0x17, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63,
	0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32,
	0x31, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69,
	0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x2e, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
	0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f,
	0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x71,
	0x75, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12,
	0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x5f,
	0x6f, 0x66, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4f, 0x6e, 0x65,
	0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x1e,
	0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x5f,
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x0f,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4f, 0x6e,
	0x65, 0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x53, 0x65, 0x74, 0x73,
	0x12, 0x46, 0x0a, 0x0d, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66,
	0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x76, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6f, 0x6e, 0x5f, 0x74,
	0x72, 0x69, 0x70, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
	0x6f, 0x6e, 0x54, 0x72, 0x69, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x4c,
	0x69, 0x73, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x52, 0x08, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a,
	0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x66, 0x0a, 0x08, 0x57, 0x61, 0x79,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x74,
	0x4c, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x74,
	0x61, 0x22, 0xea, 0x08, 0x0a, 0x0c, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74,
	0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12,
	0x48, 0x0a, 0x12, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x75,
	0x70, 0x5f, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x74, 0x61, 0x12, 0x60, 0x0a, 0x1e, 0x76, 0x65, 0x68,
	0x69, 0x63, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b,
	0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x69, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x7f, 0x0a, 0x2c, 0x76,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x74,
	0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x27, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x6b,
	0x75, 0x70, 0x53, 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x44, 0x69,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x13,
	0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x6f, 0x66, 0x66, 0x5f,
	0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x72,
	0x6f, 0x70, 0x6f, 0x66, 0x66, 0x45, 0x74, 0x61, 0x12, 0x74, 0x0a, 0x29, 0x76, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x72,
	0x6f, 0x70, 0x6f, 0x66, 0x66, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e,
	0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x24, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c,
	0x65, 0x50, 0x69, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x6f, 0x44, 0x72, 0x6f, 0x70, 0x6f, 0x66, 0x66,
	0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f,
	0x0a, 0x09, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e,
	0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x72, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x55, 0x0a, 0x17, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x73,
	0x5f, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67,
	0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
	0x15, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x70, 0x73, 0x57, 0x61, 0x79,
	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x12, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c,
	0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65,
	0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6e, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61,
	0x72, 0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x42, 0x79, 0x12, 0x5b, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6d,
	0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x65, 0x64, 0x42, 0x79, 0x22, 0x67, 0x0a, 0x10, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53,
	0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f,
	0x5f, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x52, 0x50, 0x4f,
	0x4f, 0x4c, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x52, 0x50, 0x4f, 0x4f, 0x4c, 0x5f,
	0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x22, 0x5d,
	0x0a, 0x14, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x61, 0x70,
	0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x32, 0xf5, 0x0c,
	0x0a, 0x0e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x12, 0xb7, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63,
	0x6c, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65,
	0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, 0x5d, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x2c, 0x22, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x76, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x3a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x8a,
	0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
	0x19, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x0a, 0x47,
	0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x6d, 0x61, 0x70, 0x73,
	0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e,
	0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22,
	0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
	0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x76,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x23,
	0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
	0x2f, 0x2a, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67,
	0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x22, 0x5b,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x1a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63,
	0x6c, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x19, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x15,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
	0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x67,
	0x88, 0x02, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x1a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b,
	0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a,
	0x2f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x8a, 0xd3,
	0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x7b, 0x70,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69,
	0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xec, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74,
	0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e,
	0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x72,
	0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x8a, 0xd3, 0xe4,
	0x93, 0x02, 0x23, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x7b, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66,
	0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e,
	0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x65, 0x68, 0x69,
	0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x76,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x0a,
	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f,
	0x2a, 0x7d, 0x12, 0xc9, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x65, 0x68,
	0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e,
	0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d,
	0x2f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x3a, 0x01, 0x2a, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x0a, 0x06, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x12, 0x19, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd5,
	0x01, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x75, 0x7a, 0x7a, 0x65, 0x64, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66,
	0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65,
	0x61, 0x72, 0x63, 0x68, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74,
	0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70,
	0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f,
	0x2a, 0x7d, 0x2f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x3a, 0x73, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x46, 0x75, 0x7a, 0x7a, 0x65, 0x64, 0x3a, 0x01, 0x2a, 0x8a, 0xd3, 0xe4, 0x93, 0x02,
	0x25, 0x12, 0x23, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x7b, 0x70, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x1d, 0xca, 0x41, 0x1a, 0x66, 0x6c, 0x65, 0x65, 0x74,
	0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0x77, 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x6d, 0x61, 0x70, 0x73, 0x2e, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x42, 0x0a, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x41, 0x70, 0x69, 0x50,
	0x01, 0x5a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x66, 0x6c,
	0x65, 0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x6c, 0x65,
	0x65, 0x74, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x45, 0x62, 0x06,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescOnce sync.Once
	file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescData = file_google_maps_fleetengine_v1_vehicle_api_proto_rawDesc
)

func file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescGZIP() []byte {
	file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescOnce.Do(func() {
		file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescData)
	})
	return file_google_maps_fleetengine_v1_vehicle_api_proto_rawDescData
}

var file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_google_maps_fleetengine_v1_vehicle_api_proto_goTypes = []interface{}{
	(SearchVehiclesRequest_VehicleMatchOrder)(0),   // 0: maps.fleetengine.v1.SearchVehiclesRequest.VehicleMatchOrder
	(SearchVehiclesRequest_CurrentTripsPresent)(0), // 1: maps.fleetengine.v1.SearchVehiclesRequest.CurrentTripsPresent
	(VehicleMatch_VehicleMatchType)(0),             // 2: maps.fleetengine.v1.VehicleMatch.VehicleMatchType
	(*CreateVehicleRequest)(nil),                   // 3: maps.fleetengine.v1.CreateVehicleRequest
	(*GetVehicleRequest)(nil),                      // 4: maps.fleetengine.v1.GetVehicleRequest
	(*UpdateVehicleRequest)(nil),                   // 5: maps.fleetengine.v1.UpdateVehicleRequest
	(*UpdateVehicleLocationRequest)(nil),           // 6: maps.fleetengine.v1.UpdateVehicleLocationRequest
	(*UpdateVehicleAttributesRequest)(nil),         // 7: maps.fleetengine.v1.UpdateVehicleAttributesRequest
	(*UpdateVehicleAttributesResponse)(nil),        // 8: maps.fleetengine.v1.UpdateVehicleAttributesResponse
	(*SearchVehiclesRequest)(nil),                  // 9: maps.fleetengine.v1.SearchVehiclesRequest
	(*SearchVehiclesResponse)(nil),                 // 10: maps.fleetengine.v1.SearchVehiclesResponse
	(*ListVehiclesRequest)(nil),                    // 11: maps.fleetengine.v1.ListVehiclesRequest
	(*ListVehiclesResponse)(nil),                   // 12: maps.fleetengine.v1.ListVehiclesResponse
	(*Waypoint)(nil),                               // 13: maps.fleetengine.v1.Waypoint
	(*VehicleMatch)(nil),                           // 14: maps.fleetengine.v1.VehicleMatch
	(*VehicleAttributeList)(nil),                   // 15: maps.fleetengine.v1.VehicleAttributeList
	(*RequestHeader)(nil),                          // 16: maps.fleetengine.v1.RequestHeader
	(*Vehicle)(nil),                                // 17: maps.fleetengine.v1.Vehicle
	(*timestamppb.Timestamp)(nil),                  // 18: google.protobuf.Timestamp
	(*fieldmaskpb.FieldMask)(nil),                  // 19: google.protobuf.FieldMask
	(*VehicleLocation)(nil),                        // 20: maps.fleetengine.v1.VehicleLocation
	(VehicleState)(0),                              // 21: maps.fleetengine.v1.VehicleState
	(*VehicleAttribute)(nil),                       // 22: maps.fleetengine.v1.VehicleAttribute
	(*TerminalLocation)(nil),                       // 23: maps.fleetengine.v1.TerminalLocation
	(TripType)(0),                                  // 24: maps.fleetengine.v1.TripType
	(*durationpb.Duration)(nil),                    // 25: google.protobuf.Duration
	(*Vehicle_VehicleType)(nil),                    // 26: maps.fleetengine.v1.Vehicle.VehicleType
	(*wrapperspb.Int32Value)(nil),                  // 27: google.protobuf.Int32Value
	(Vehicle_VehicleType_Category)(0),              // 28: maps.fleetengine.v1.Vehicle.VehicleType.Category
	(*latlng.LatLng)(nil),                          // 29: google.type.LatLng
}
var file_google_maps_fleetengine_v1_vehicle_api_proto_depIdxs = []int32{
	16, // 0: maps.fleetengine.v1.CreateVehicleRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	17, // 1: maps.fleetengine.v1.CreateVehicleRequest.vehicle:type_name -> maps.fleetengine.v1.Vehicle
	16, // 2: maps.fleetengine.v1.GetVehicleRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	18, // 3: maps.fleetengine.v1.GetVehicleRequest.current_route_segment_version:type_name -> google.protobuf.Timestamp
	18, // 4: maps.fleetengine.v1.GetVehicleRequest.waypoints_version:type_name -> google.protobuf.Timestamp
	16, // 5: maps.fleetengine.v1.UpdateVehicleRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	17, // 6: maps.fleetengine.v1.UpdateVehicleRequest.vehicle:type_name -> maps.fleetengine.v1.Vehicle
	19, // 7: maps.fleetengine.v1.UpdateVehicleRequest.update_mask:type_name -> google.protobuf.FieldMask
	16, // 8: maps.fleetengine.v1.UpdateVehicleLocationRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	20, // 9: maps.fleetengine.v1.UpdateVehicleLocationRequest.current_location:type_name -> maps.fleetengine.v1.VehicleLocation
	21, // 10: maps.fleetengine.v1.UpdateVehicleLocationRequest.current_state:type_name -> maps.fleetengine.v1.VehicleState
	16, // 11: maps.fleetengine.v1.UpdateVehicleAttributesRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	22, // 12: maps.fleetengine.v1.UpdateVehicleAttributesRequest.attributes:type_name -> maps.fleetengine.v1.VehicleAttribute
	22, // 13: maps.fleetengine.v1.UpdateVehicleAttributesResponse.attributes:type_name -> maps.fleetengine.v1.VehicleAttribute
	16, // 14: maps.fleetengine.v1.SearchVehiclesRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	23, // 15: maps.fleetengine.v1.SearchVehiclesRequest.pickup_point:type_name -> maps.fleetengine.v1.TerminalLocation
	23, // 16: maps.fleetengine.v1.SearchVehiclesRequest.dropoff_point:type_name -> maps.fleetengine.v1.TerminalLocation
	24, // 17: maps.fleetengine.v1.SearchVehiclesRequest.trip_types:type_name -> maps.fleetengine.v1.TripType
	25, // 18: maps.fleetengine.v1.SearchVehiclesRequest.maximum_staleness:type_name -> google.protobuf.Duration
	26, // 19: maps.fleetengine.v1.SearchVehiclesRequest.vehicle_types:type_name -> maps.fleetengine.v1.Vehicle.VehicleType
	22, // 20: maps.fleetengine.v1.SearchVehiclesRequest.required_attributes:type_name -> maps.fleetengine.v1.VehicleAttribute
	15, // 21: maps.fleetengine.v1.SearchVehiclesRequest.required_one_of_attributes:type_name -> maps.fleetengine.v1.VehicleAttributeList
	15, // 22: maps.fleetengine.v1.SearchVehiclesRequest.required_one_of_attribute_sets:type_name -> maps.fleetengine.v1.VehicleAttributeList
	0,  // 23: maps.fleetengine.v1.SearchVehiclesRequest.order_by:type_name -> maps.fleetengine.v1.SearchVehiclesRequest.VehicleMatchOrder
	1,  // 24: maps.fleetengine.v1.SearchVehiclesRequest.current_trips_present:type_name -> maps.fleetengine.v1.SearchVehiclesRequest.CurrentTripsPresent
	14, // 25: maps.fleetengine.v1.SearchVehiclesResponse.matches:type_name -> maps.fleetengine.v1.VehicleMatch
	16, // 26: maps.fleetengine.v1.ListVehiclesRequest.header:type_name -> maps.fleetengine.v1.RequestHeader
	27, // 27: maps.fleetengine.v1.ListVehiclesRequest.minimum_capacity:type_name -> google.protobuf.Int32Value
	24, // 28: maps.fleetengine.v1.ListVehiclesRequest.trip_types:type_name -> maps.fleetengine.v1.TripType
	25, // 29: maps.fleetengine.v1.ListVehiclesRequest.maximum_staleness:type_name -> google.protobuf.Duration
	28, // 30: maps.fleetengine.v1.ListVehiclesRequest.vehicle_type_categories:type_name -> maps.fleetengine.v1.Vehicle.VehicleType.Category
	21, // 31: maps.fleetengine.v1.ListVehiclesRequest.vehicle_state:type_name -> maps.fleetengine.v1.VehicleState
	17, // 32: maps.fleetengine.v1.ListVehiclesResponse.vehicles:type_name -> maps.fleetengine.v1.Vehicle
	29, // 33: maps.fleetengine.v1.Waypoint.lat_lng:type_name -> google.type.LatLng
	18, // 34: maps.fleetengine.v1.Waypoint.eta:type_name -> google.protobuf.Timestamp
	17, // 35: maps.fleetengine.v1.VehicleMatch.vehicle:type_name -> maps.fleetengine.v1.Vehicle
	18, // 36: maps.fleetengine.v1.VehicleMatch.vehicle_pickup_eta:type_name -> google.protobuf.Timestamp
	27, // 37: maps.fleetengine.v1.VehicleMatch.vehicle_pickup_distance_meters:type_name -> google.protobuf.Int32Value
	27, // 38: maps.fleetengine.v1.VehicleMatch.vehicle_pickup_straight_line_distance_meters:type_name -> google.protobuf.Int32Value
	18, // 39: maps.fleetengine.v1.VehicleMatch.vehicle_dropoff_eta:type_name -> google.protobuf.Timestamp
	27, // 40: maps.fleetengine.v1.VehicleMatch.vehicle_pickup_to_dropoff_distance_meters:type_name -> google.protobuf.Int32Value
	24, // 41: maps.fleetengine.v1.VehicleMatch.trip_type:type_name -> maps.fleetengine.v1.TripType
	13, // 42: maps.fleetengine.v1.VehicleMatch.vehicle_trips_waypoints:type_name -> maps.fleetengine.v1.Waypoint
	2,  // 43: maps.fleetengine.v1.VehicleMatch.vehicle_match_type:type_name -> maps.fleetengine.v1.VehicleMatch.VehicleMatchType
	0,  // 44: maps.fleetengine.v1.VehicleMatch.requested_ordered_by:type_name -> maps.fleetengine.v1.SearchVehiclesRequest.VehicleMatchOrder
	0,  // 45: maps.fleetengine.v1.VehicleMatch.ordered_by:type_name -> maps.fleetengine.v1.SearchVehiclesRequest.VehicleMatchOrder
	22, // 46: maps.fleetengine.v1.VehicleAttributeList.attributes:type_name -> maps.fleetengine.v1.VehicleAttribute
	3,  // 47: maps.fleetengine.v1.VehicleService.CreateVehicle:input_type -> maps.fleetengine.v1.CreateVehicleRequest
	4,  // 48: maps.fleetengine.v1.VehicleService.GetVehicle:input_type -> maps.fleetengine.v1.GetVehicleRequest
	5,  // 49: maps.fleetengine.v1.VehicleService.UpdateVehicle:input_type -> maps.fleetengine.v1.UpdateVehicleRequest
	6,  // 50: maps.fleetengine.v1.VehicleService.UpdateVehicleLocation:input_type -> maps.fleetengine.v1.UpdateVehicleLocationRequest
	7,  // 51: maps.fleetengine.v1.VehicleService.UpdateVehicleAttributes:input_type -> maps.fleetengine.v1.UpdateVehicleAttributesRequest
	11, // 52: maps.fleetengine.v1.VehicleService.ListVehicles:input_type -> maps.fleetengine.v1.ListVehiclesRequest
	9,  // 53: maps.fleetengine.v1.VehicleService.SearchVehicles:input_type -> maps.fleetengine.v1.SearchVehiclesRequest
	9,  // 54: maps.fleetengine.v1.VehicleService.SearchFuzzedVehicles:input_type -> maps.fleetengine.v1.SearchVehiclesRequest
	17, // 55: maps.fleetengine.v1.VehicleService.CreateVehicle:output_type -> maps.fleetengine.v1.Vehicle
	17, // 56: maps.fleetengine.v1.VehicleService.GetVehicle:output_type -> maps.fleetengine.v1.Vehicle
	17, // 57: maps.fleetengine.v1.VehicleService.UpdateVehicle:output_type -> maps.fleetengine.v1.Vehicle
	20, // 58: maps.fleetengine.v1.VehicleService.UpdateVehicleLocation:output_type -> maps.fleetengine.v1.VehicleLocation
	8,  // 59: maps.fleetengine.v1.VehicleService.UpdateVehicleAttributes:output_type -> maps.fleetengine.v1.UpdateVehicleAttributesResponse
	12, // 60: maps.fleetengine.v1.VehicleService.ListVehicles:output_type -> maps.fleetengine.v1.ListVehiclesResponse
	10, // 61: maps.fleetengine.v1.VehicleService.SearchVehicles:output_type -> maps.fleetengine.v1.SearchVehiclesResponse
	10, // 62: maps.fleetengine.v1.VehicleService.SearchFuzzedVehicles:output_type -> maps.fleetengine.v1.SearchVehiclesResponse
	55, // [55:63] is the sub-list for method output_type
	47, // [47:55] is the sub-list for method input_type
	47, // [47:47] is the sub-list for extension type_name
	47, // [47:47] is the sub-list for extension extendee
	0,  // [0:47] is the sub-list for field type_name
}

func init() { file_google_maps_fleetengine_v1_vehicle_api_proto_init() }
func file_google_maps_fleetengine_v1_vehicle_api_proto_init() {
	if File_google_maps_fleetengine_v1_vehicle_api_proto != nil {
		return
	}
	file_google_maps_fleetengine_v1_fleetengine_proto_init()
	file_google_maps_fleetengine_v1_header_proto_init()
	file_google_maps_fleetengine_v1_vehicles_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateVehicleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetVehicleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateVehicleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateVehicleLocationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateVehicleAttributesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateVehicleAttributesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchVehiclesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchVehiclesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVehiclesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVehiclesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Waypoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VehicleMatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VehicleAttributeList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_maps_fleetengine_v1_vehicle_api_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   13,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_maps_fleetengine_v1_vehicle_api_proto_goTypes,
		DependencyIndexes: file_google_maps_fleetengine_v1_vehicle_api_proto_depIdxs,
		EnumInfos:         file_google_maps_fleetengine_v1_vehicle_api_proto_enumTypes,
		MessageInfos:      file_google_maps_fleetengine_v1_vehicle_api_proto_msgTypes,
	}.Build()
	File_google_maps_fleetengine_v1_vehicle_api_proto = out.File
	file_google_maps_fleetengine_v1_vehicle_api_proto_rawDesc = nil
	file_google_maps_fleetengine_v1_vehicle_api_proto_goTypes = nil
	file_google_maps_fleetengine_v1_vehicle_api_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// VehicleServiceClient is the client API for VehicleService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type VehicleServiceClient interface {
	// Instantiates a new vehicle associated with an on-demand rideshare or
	// deliveries provider. Each `Vehicle` must have a unique vehicle ID.
	//
	// The following `Vehicle` fields are required when creating a `Vehicle`:
	//
	// * `vehicleState`
	// * `supportedTripTypes`
	// * `maximumCapacity`
	// * `vehicleType`
	//
	// The following `Vehicle` fields are ignored when creating a `Vehicle`:
	//
	// * `name`
	// * `currentTrips`
	// * `availableCapacity`
	// * `current_route_segment`
	// * `current_route_segment_end_point`
	// * `current_route_segment_version`
	// * `current_route_segment_traffic`
	// * `route`
	// * `waypoints`
	// * `waypoints_version`
	// * `remaining_distance_meters`
	// * `remaining_time_seconds`
	// * `eta_to_next_waypoint`
	// * `navigation_status`
	//
	// All other fields are optional and used if provided.
	CreateVehicle(ctx context.Context, in *CreateVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error)
	// Returns a vehicle from the Fleet Engine.
	GetVehicle(ctx context.Context, in *GetVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error)
	// Writes updated vehicle data to the Fleet Engine.
	//
	// When updating a `Vehicle`, the following fields cannot be updated since
	// they are managed by the server:
	//
	// * `currentTrips`
	// * `availableCapacity`
	// * `current_route_segment_version`
	// * `waypoints_version`
	//
	// The vehicle `name` also cannot be updated.
	//
	// If the `attributes` field is updated, **all** the vehicle's attributes are
	// replaced with the attributes provided in the request. If you want to update
	// only some attributes, see the `UpdateVehicleAttributes` method. Likewise,
	// the `waypoints` field can be updated, but must contain all the waypoints
	// currently on the vehicle, and no other waypoints.
	UpdateVehicle(ctx context.Context, in *UpdateVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error)
	// Deprecated: Do not use.
	// Deprecated: Use the `UpdateVehicle` method instead.
	// UpdateVehicleLocation updates the location of the vehicle.
	UpdateVehicleLocation(ctx context.Context, in *UpdateVehicleLocationRequest, opts ...grpc.CallOption) (*VehicleLocation, error)
	// Partially updates a vehicle's attributes.
	// Only the attributes mentioned in the request will be updated, other
	// attributes will NOT be altered. Note: this is different in `UpdateVehicle`,
	// where the whole `attributes` field will be replaced by the one in
	// `UpdateVehicleRequest`, attributes not in the request would be removed.
	UpdateVehicleAttributes(ctx context.Context, in *UpdateVehicleAttributesRequest, opts ...grpc.CallOption) (*UpdateVehicleAttributesResponse, error)
	// Returns a paginated list of vehicles associated with
	// a provider that match the request options.
	ListVehicles(ctx context.Context, in *ListVehiclesRequest, opts ...grpc.CallOption) (*ListVehiclesResponse, error)
	// Returns a list of vehicles that match the request options.
	SearchVehicles(ctx context.Context, in *SearchVehiclesRequest, opts ...grpc.CallOption) (*SearchVehiclesResponse, error)
	// Returns a list of vehicles that match the request
	// options, but the vehicle locations will be somewhat altered for privacy.
	// This method does not support the `SearchVehicleRequest.order_by` field.
	// Vehicle matches in the response will be in order of distance from the
	// pickup point.  Only the `vehicle` and `trip_type` fields will be populated.
	SearchFuzzedVehicles(ctx context.Context, in *SearchVehiclesRequest, opts ...grpc.CallOption) (*SearchVehiclesResponse, error)
}

type vehicleServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewVehicleServiceClient(cc grpc.ClientConnInterface) VehicleServiceClient {
	return &vehicleServiceClient{cc}
}

func (c *vehicleServiceClient) CreateVehicle(ctx context.Context, in *CreateVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error) {
	out := new(Vehicle)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/CreateVehicle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) GetVehicle(ctx context.Context, in *GetVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error) {
	out := new(Vehicle)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/GetVehicle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) UpdateVehicle(ctx context.Context, in *UpdateVehicleRequest, opts ...grpc.CallOption) (*Vehicle, error) {
	out := new(Vehicle)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/UpdateVehicle", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *vehicleServiceClient) UpdateVehicleLocation(ctx context.Context, in *UpdateVehicleLocationRequest, opts ...grpc.CallOption) (*VehicleLocation, error) {
	out := new(VehicleLocation)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/UpdateVehicleLocation", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) UpdateVehicleAttributes(ctx context.Context, in *UpdateVehicleAttributesRequest, opts ...grpc.CallOption) (*UpdateVehicleAttributesResponse, error) {
	out := new(UpdateVehicleAttributesResponse)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/UpdateVehicleAttributes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) ListVehicles(ctx context.Context, in *ListVehiclesRequest, opts ...grpc.CallOption) (*ListVehiclesResponse, error) {
	out := new(ListVehiclesResponse)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/ListVehicles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) SearchVehicles(ctx context.Context, in *SearchVehiclesRequest, opts ...grpc.CallOption) (*SearchVehiclesResponse, error) {
	out := new(SearchVehiclesResponse)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/SearchVehicles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vehicleServiceClient) SearchFuzzedVehicles(ctx context.Context, in *SearchVehiclesRequest, opts ...grpc.CallOption) (*SearchVehiclesResponse, error) {
	out := new(SearchVehiclesResponse)
	err := c.cc.Invoke(ctx, "/maps.fleetengine.v1.VehicleService/SearchFuzzedVehicles", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// VehicleServiceServer is the server API for VehicleService service.
type VehicleServiceServer interface {
	// Instantiates a new vehicle associated with an on-demand rideshare or
	// deliveries provider. Each `Vehicle` must have a unique vehicle ID.
	//
	// The following `Vehicle` fields are required when creating a `Vehicle`:
	//
	// * `vehicleState`
	// * `supportedTripTypes`
	// * `maximumCapacity`
	// * `vehicleType`
	//
	// The following `Vehicle` fields are ignored when creating a `Vehicle`:
	//
	// * `name`
	// * `currentTrips`
	// * `availableCapacity`
	// * `current_route_segment`
	// * `current_route_segment_end_point`
	// * `current_route_segment_version`
	// * `current_route_segment_traffic`
	// * `route`
	// * `waypoints`
	// * `waypoints_version`
	// * `remaining_distance_meters`
	// * `remaining_time_seconds`
	// * `eta_to_next_waypoint`
	// * `navigation_status`
	//
	// All other fields are optional and used if provided.
	CreateVehicle(context.Context, *CreateVehicleRequest) (*Vehicle, error)
	// Returns a vehicle from the Fleet Engine.
	GetVehicle(context.Context, *GetVehicleRequest) (*Vehicle, error)
	// Writes updated vehicle data to the Fleet Engine.
	//
	// When updating a `Vehicle`, the following fields cannot be updated since
	// they are managed by the server:
	//
	// * `currentTrips`
	// * `availableCapacity`
	// * `current_route_segment_version`
	// * `waypoints_version`
	//
	// The vehicle `name` also cannot be updated.
	//
	// If the `attributes` field is updated, **all** the vehicle's attributes are
	// replaced with the attributes provided in the request. If you want to update
	// only some attributes, see the `UpdateVehicleAttributes` method. Likewise,
	// the `waypoints` field can be updated, but must contain all the waypoints
	// currently on the vehicle, and no other waypoints.
	UpdateVehicle(context.Context, *UpdateVehicleRequest) (*Vehicle, error)
	// Deprecated: Do not use.
	// Deprecated: Use the `UpdateVehicle` method instead.
	// UpdateVehicleLocation updates the location of the vehicle.
	UpdateVehicleLocation(context.Context, *UpdateVehicleLocationRequest) (*VehicleLocation, error)
	// Partially updates a vehicle's attributes.
	// Only the attributes mentioned in the request will be updated, other
	// attributes will NOT be altered. Note: this is different in `UpdateVehicle`,
	// where the whole `attributes` field will be replaced by the one in
	// `UpdateVehicleRequest`, attributes not in the request would be removed.
	UpdateVehicleAttributes(context.Context, *UpdateVehicleAttributesRequest) (*UpdateVehicleAttributesResponse, error)
	// Returns a paginated list of vehicles associated with
	// a provider that match the request options.
	ListVehicles(context.Context, *ListVehiclesRequest) (*ListVehiclesResponse, error)
	// Returns a list of vehicles that match the request options.
	SearchVehicles(context.Context, *SearchVehiclesRequest) (*SearchVehiclesResponse, error)
	// Returns a list of vehicles that match the request
	// options, but the vehicle locations will be somewhat altered for privacy.
	// This method does not support the `SearchVehicleRequest.order_by` field.
	// Vehicle matches in the response will be in order of distance from the
	// pickup point.  Only the `vehicle` and `trip_type` fields will be populated.
	SearchFuzzedVehicles(context.Context, *SearchVehiclesRequest) (*SearchVehiclesResponse, error)
}

// UnimplementedVehicleServiceServer can be embedded to have forward compatible implementations.
type UnimplementedVehicleServiceServer struct {
}

func (*UnimplementedVehicleServiceServer) CreateVehicle(context.Context, *CreateVehicleRequest) (*Vehicle, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateVehicle not implemented")
}
func (*UnimplementedVehicleServiceServer) GetVehicle(context.Context, *GetVehicleRequest) (*Vehicle, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVehicle not implemented")
}
func (*UnimplementedVehicleServiceServer) UpdateVehicle(context.Context, *UpdateVehicleRequest) (*Vehicle, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateVehicle not implemented")
}
func (*UnimplementedVehicleServiceServer) UpdateVehicleLocation(context.Context, *UpdateVehicleLocationRequest) (*VehicleLocation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateVehicleLocation not implemented")
}
func (*UnimplementedVehicleServiceServer) UpdateVehicleAttributes(context.Context, *UpdateVehicleAttributesRequest) (*UpdateVehicleAttributesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateVehicleAttributes not implemented")
}
func (*UnimplementedVehicleServiceServer) ListVehicles(context.Context, *ListVehiclesRequest) (*ListVehiclesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListVehicles not implemented")
}
func (*UnimplementedVehicleServiceServer) SearchVehicles(context.Context, *SearchVehiclesRequest) (*SearchVehiclesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SearchVehicles not implemented")
}
func (*UnimplementedVehicleServiceServer) SearchFuzzedVehicles(context.Context, *SearchVehiclesRequest) (*SearchVehiclesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SearchFuzzedVehicles not implemented")
}

func RegisterVehicleServiceServer(s *grpc.Server, srv VehicleServiceServer) {
	s.RegisterService(&_VehicleService_serviceDesc, srv)
}

func _VehicleService_CreateVehicle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateVehicleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).CreateVehicle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/CreateVehicle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).CreateVehicle(ctx, req.(*CreateVehicleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_GetVehicle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVehicleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).GetVehicle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/GetVehicle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).GetVehicle(ctx, req.(*GetVehicleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_UpdateVehicle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateVehicleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).UpdateVehicle(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/UpdateVehicle",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).UpdateVehicle(ctx, req.(*UpdateVehicleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_UpdateVehicleLocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateVehicleLocationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).UpdateVehicleLocation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/UpdateVehicleLocation",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).UpdateVehicleLocation(ctx, req.(*UpdateVehicleLocationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_UpdateVehicleAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateVehicleAttributesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).UpdateVehicleAttributes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/UpdateVehicleAttributes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).UpdateVehicleAttributes(ctx, req.(*UpdateVehicleAttributesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_ListVehicles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListVehiclesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).ListVehicles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/ListVehicles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).ListVehicles(ctx, req.(*ListVehiclesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_SearchVehicles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SearchVehiclesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).SearchVehicles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/SearchVehicles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).SearchVehicles(ctx, req.(*SearchVehiclesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VehicleService_SearchFuzzedVehicles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SearchVehiclesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VehicleServiceServer).SearchFuzzedVehicles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/maps.fleetengine.v1.VehicleService/SearchFuzzedVehicles",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VehicleServiceServer).SearchFuzzedVehicles(ctx, req.(*SearchVehiclesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _VehicleService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "maps.fleetengine.v1.VehicleService",
	HandlerType: (*VehicleServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateVehicle",
			Handler:    _VehicleService_CreateVehicle_Handler,
		},
		{
			MethodName: "GetVehicle",
			Handler:    _VehicleService_GetVehicle_Handler,
		},
		{
			MethodName: "UpdateVehicle",
			Handler:    _VehicleService_UpdateVehicle_Handler,
		},
		{
			MethodName: "UpdateVehicleLocation",
			Handler:    _VehicleService_UpdateVehicleLocation_Handler,
		},
		{
			MethodName: "UpdateVehicleAttributes",
			Handler:    _VehicleService_UpdateVehicleAttributes_Handler,
		},
		{
			MethodName: "ListVehicles",
			Handler:    _VehicleService_ListVehicles_Handler,
		},
		{
			MethodName: "SearchVehicles",
			Handler:    _VehicleService_SearchVehicles_Handler,
		},
		{
			MethodName: "SearchFuzzedVehicles",
			Handler:    _VehicleService_SearchFuzzedVehicles_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/maps/fleetengine/v1/vehicle_api.proto",
}
