// 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.9
// source: google/cloud/visionai/v1/annotations.proto

package visionai

import (
	reflect "reflect"
	sync "sync"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)

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

// Enum describing all possible types of a stream annotation.
type StreamAnnotationType int32

const (
	// Type UNSPECIFIED.
	StreamAnnotationType_STREAM_ANNOTATION_TYPE_UNSPECIFIED StreamAnnotationType = 0
	// active_zone annotation defines a polygon on top of the content from an
	// image/video based stream, following processing will only focus on the
	// content inside the active zone.
	StreamAnnotationType_STREAM_ANNOTATION_TYPE_ACTIVE_ZONE StreamAnnotationType = 1
	// crossing_line annotation defines a polyline on top of the content from an
	// image/video based Vision AI stream, events happening across the line will
	// be captured. For example, the counts of people who goes acroos the line
	// in Occupancy Analytic Processor.
	StreamAnnotationType_STREAM_ANNOTATION_TYPE_CROSSING_LINE StreamAnnotationType = 2
)

// Enum value maps for StreamAnnotationType.
var (
	StreamAnnotationType_name = map[int32]string{
		0: "STREAM_ANNOTATION_TYPE_UNSPECIFIED",
		1: "STREAM_ANNOTATION_TYPE_ACTIVE_ZONE",
		2: "STREAM_ANNOTATION_TYPE_CROSSING_LINE",
	}
	StreamAnnotationType_value = map[string]int32{
		"STREAM_ANNOTATION_TYPE_UNSPECIFIED":   0,
		"STREAM_ANNOTATION_TYPE_ACTIVE_ZONE":   1,
		"STREAM_ANNOTATION_TYPE_CROSSING_LINE": 2,
	}
)

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

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

func (StreamAnnotationType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_annotations_proto_enumTypes[0].Descriptor()
}

func (StreamAnnotationType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_annotations_proto_enumTypes[0]
}

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

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

// Output format for Personal Protective Equipment Detection Operator.
type PersonalProtectiveEquipmentDetectionOutput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Current timestamp.
	CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"`
	// A list of DetectedPersons.
	DetectedPersons []*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson `protobuf:"bytes,2,rep,name=detected_persons,json=detectedPersons,proto3" json:"detected_persons,omitempty"`
}

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

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

func (*PersonalProtectiveEquipmentDetectionOutput) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 PersonalProtectiveEquipmentDetectionOutput.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0}
}

func (x *PersonalProtectiveEquipmentDetectionOutput) GetCurrentTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentTime
	}
	return nil
}

func (x *PersonalProtectiveEquipmentDetectionOutput) GetDetectedPersons() []*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson {
	if x != nil {
		return x.DetectedPersons
	}
	return nil
}

// Prediction output format for Generic Object Detection.
type ObjectDetectionPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Current timestamp.
	CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"`
	// A list of identified boxes.
	IdentifiedBoxes []*ObjectDetectionPredictionResult_IdentifiedBox `protobuf:"bytes,2,rep,name=identified_boxes,json=identifiedBoxes,proto3" json:"identified_boxes,omitempty"`
}

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

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

func (*ObjectDetectionPredictionResult) ProtoMessage() {}

func (x *ObjectDetectionPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 ObjectDetectionPredictionResult.ProtoReflect.Descriptor instead.
func (*ObjectDetectionPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1}
}

func (x *ObjectDetectionPredictionResult) GetCurrentTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentTime
	}
	return nil
}

func (x *ObjectDetectionPredictionResult) GetIdentifiedBoxes() []*ObjectDetectionPredictionResult_IdentifiedBox {
	if x != nil {
		return x.IdentifiedBoxes
	}
	return nil
}

// Prediction output format for Image Object Detection.
type ImageObjectDetectionPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The resource IDs of the AnnotationSpecs that had been identified, ordered
	// by the confidence score descendingly. It is the id segment instead of full
	// resource name.
	Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
	// The display names of the AnnotationSpecs that had been identified, order
	// matches the IDs.
	DisplayNames []string `protobuf:"bytes,2,rep,name=display_names,json=displayNames,proto3" json:"display_names,omitempty"`
	// The Model's confidences in correctness of the predicted IDs, higher value
	// means higher confidence. Order matches the Ids.
	Confidences []float32 `protobuf:"fixed32,3,rep,packed,name=confidences,proto3" json:"confidences,omitempty"`
	// Bounding boxes, i.e. the rectangles over the image, that pinpoint
	// the found AnnotationSpecs. Given in order that matches the IDs. Each
	// bounding box is an array of 4 numbers `xMin`, `xMax`, `yMin`, and
	// `yMax`, which represent the extremal coordinates of the box. They are
	// relative to the image size, and the point 0,0 is in the top left
	// of the image.
	Bboxes []*structpb.ListValue `protobuf:"bytes,4,rep,name=bboxes,proto3" json:"bboxes,omitempty"`
}

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

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

func (*ImageObjectDetectionPredictionResult) ProtoMessage() {}

func (x *ImageObjectDetectionPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 ImageObjectDetectionPredictionResult.ProtoReflect.Descriptor instead.
func (*ImageObjectDetectionPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{2}
}

func (x *ImageObjectDetectionPredictionResult) GetIds() []int64 {
	if x != nil {
		return x.Ids
	}
	return nil
}

func (x *ImageObjectDetectionPredictionResult) GetDisplayNames() []string {
	if x != nil {
		return x.DisplayNames
	}
	return nil
}

func (x *ImageObjectDetectionPredictionResult) GetConfidences() []float32 {
	if x != nil {
		return x.Confidences
	}
	return nil
}

func (x *ImageObjectDetectionPredictionResult) GetBboxes() []*structpb.ListValue {
	if x != nil {
		return x.Bboxes
	}
	return nil
}

// Prediction output format for Image and Text Classification.
type ClassificationPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The resource IDs of the AnnotationSpecs that had been identified.
	Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
	// The display names of the AnnotationSpecs that had been identified, order
	// matches the IDs.
	DisplayNames []string `protobuf:"bytes,2,rep,name=display_names,json=displayNames,proto3" json:"display_names,omitempty"`
	// The Model's confidences in correctness of the predicted IDs, higher value
	// means higher confidence. Order matches the Ids.
	Confidences []float32 `protobuf:"fixed32,3,rep,packed,name=confidences,proto3" json:"confidences,omitempty"`
}

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

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

func (*ClassificationPredictionResult) ProtoMessage() {}

func (x *ClassificationPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 ClassificationPredictionResult.ProtoReflect.Descriptor instead.
func (*ClassificationPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{3}
}

func (x *ClassificationPredictionResult) GetIds() []int64 {
	if x != nil {
		return x.Ids
	}
	return nil
}

func (x *ClassificationPredictionResult) GetDisplayNames() []string {
	if x != nil {
		return x.DisplayNames
	}
	return nil
}

func (x *ClassificationPredictionResult) GetConfidences() []float32 {
	if x != nil {
		return x.Confidences
	}
	return nil
}

// Prediction output format for Image Segmentation.
type ImageSegmentationPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A PNG image where each pixel in the mask represents the category in which
	// the pixel in the original image was predicted to belong to. The size of
	// this image will be the same as the original image. The mapping between the
	// AnntoationSpec and the color can be found in model's metadata. The model
	// will choose the most likely category and if none of the categories reach
	// the confidence threshold, the pixel will be marked as background.
	CategoryMask string `protobuf:"bytes,1,opt,name=category_mask,json=categoryMask,proto3" json:"category_mask,omitempty"`
	// A one channel image which is encoded as an 8bit lossless PNG. The size of
	// the image will be the same as the original image. For a specific pixel,
	// darker color means less confidence in correctness of the cateogry in the
	// categoryMask for the corresponding pixel. Black means no confidence and
	// white means complete confidence.
	ConfidenceMask string `protobuf:"bytes,2,opt,name=confidence_mask,json=confidenceMask,proto3" json:"confidence_mask,omitempty"`
}

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

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

func (*ImageSegmentationPredictionResult) ProtoMessage() {}

func (x *ImageSegmentationPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 ImageSegmentationPredictionResult.ProtoReflect.Descriptor instead.
func (*ImageSegmentationPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{4}
}

func (x *ImageSegmentationPredictionResult) GetCategoryMask() string {
	if x != nil {
		return x.CategoryMask
	}
	return ""
}

func (x *ImageSegmentationPredictionResult) GetConfidenceMask() string {
	if x != nil {
		return x.ConfidenceMask
	}
	return ""
}

// Prediction output format for Video Action Recognition.
type VideoActionRecognitionPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The beginning, inclusive, of the video's time segment in which the
	// actions have been identified.
	SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"`
	// The end, inclusive, of the video's time segment in which the actions have
	// been identified. Particularly, if the end is the same as the start, it
	// means the identification happens on a specific video frame.
	SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"`
	// All of the actions identified in the time range.
	Actions []*VideoActionRecognitionPredictionResult_IdentifiedAction `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
}

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

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

func (*VideoActionRecognitionPredictionResult) ProtoMessage() {}

func (x *VideoActionRecognitionPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 VideoActionRecognitionPredictionResult.ProtoReflect.Descriptor instead.
func (*VideoActionRecognitionPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{5}
}

func (x *VideoActionRecognitionPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentStartTime
	}
	return nil
}

func (x *VideoActionRecognitionPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentEndTime
	}
	return nil
}

func (x *VideoActionRecognitionPredictionResult) GetActions() []*VideoActionRecognitionPredictionResult_IdentifiedAction {
	if x != nil {
		return x.Actions
	}
	return nil
}

// Prediction output format for Video Object Tracking.
type VideoObjectTrackingPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The beginning, inclusive, of the video's time segment in which the
	// current identifications happens.
	SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"`
	// The end, inclusive, of the video's time segment in which the current
	// identifications happen. Particularly, if the end is the same as the start,
	// it means the identifications happen on a specific video frame.
	SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"`
	// All of the objects detected in the specified time range.
	Objects []*VideoObjectTrackingPredictionResult_DetectedObject `protobuf:"bytes,3,rep,name=objects,proto3" json:"objects,omitempty"`
}

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

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

func (*VideoObjectTrackingPredictionResult) ProtoMessage() {}

func (x *VideoObjectTrackingPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 VideoObjectTrackingPredictionResult.ProtoReflect.Descriptor instead.
func (*VideoObjectTrackingPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6}
}

func (x *VideoObjectTrackingPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentStartTime
	}
	return nil
}

func (x *VideoObjectTrackingPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentEndTime
	}
	return nil
}

func (x *VideoObjectTrackingPredictionResult) GetObjects() []*VideoObjectTrackingPredictionResult_DetectedObject {
	if x != nil {
		return x.Objects
	}
	return nil
}

// Prediction output format for Video Classification.
type VideoClassificationPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The beginning, inclusive, of the video's time segment in which the
	// classifications have been identified.
	SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"`
	// The end, inclusive, of the video's time segment in which the
	// classifications have been identified. Particularly, if the end is the same
	// as the start, it means the identification happens on a specific video
	// frame.
	SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"`
	// All of the classifications identified in the time range.
	Classifications []*VideoClassificationPredictionResult_IdentifiedClassification `protobuf:"bytes,3,rep,name=classifications,proto3" json:"classifications,omitempty"`
}

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

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

func (*VideoClassificationPredictionResult) ProtoMessage() {}

func (x *VideoClassificationPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 VideoClassificationPredictionResult.ProtoReflect.Descriptor instead.
func (*VideoClassificationPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{7}
}

func (x *VideoClassificationPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentStartTime
	}
	return nil
}

func (x *VideoClassificationPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SegmentEndTime
	}
	return nil
}

func (x *VideoClassificationPredictionResult) GetClassifications() []*VideoClassificationPredictionResult_IdentifiedClassification {
	if x != nil {
		return x.Classifications
	}
	return nil
}

// The prediction result proto for occupancy counting.
type OccupancyCountingPredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Current timestamp.
	CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"`
	// A list of identified boxes.
	IdentifiedBoxes []*OccupancyCountingPredictionResult_IdentifiedBox `protobuf:"bytes,2,rep,name=identified_boxes,json=identifiedBoxes,proto3" json:"identified_boxes,omitempty"`
	// Detection statistics.
	Stats *OccupancyCountingPredictionResult_Stats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"`
	// Track related information. All the tracks that are live at this timestamp.
	// It only exists if tracking is enabled.
	TrackInfo []*OccupancyCountingPredictionResult_TrackInfo `protobuf:"bytes,4,rep,name=track_info,json=trackInfo,proto3" json:"track_info,omitempty"`
	// Dwell time related information. All the tracks that are live in a given
	// zone with a start and end dwell time timestamp
	DwellTimeInfo []*OccupancyCountingPredictionResult_DwellTimeInfo `protobuf:"bytes,5,rep,name=dwell_time_info,json=dwellTimeInfo,proto3" json:"dwell_time_info,omitempty"`
}

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

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

func (*OccupancyCountingPredictionResult) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 OccupancyCountingPredictionResult.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8}
}

func (x *OccupancyCountingPredictionResult) GetCurrentTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentTime
	}
	return nil
}

func (x *OccupancyCountingPredictionResult) GetIdentifiedBoxes() []*OccupancyCountingPredictionResult_IdentifiedBox {
	if x != nil {
		return x.IdentifiedBoxes
	}
	return nil
}

func (x *OccupancyCountingPredictionResult) GetStats() *OccupancyCountingPredictionResult_Stats {
	if x != nil {
		return x.Stats
	}
	return nil
}

func (x *OccupancyCountingPredictionResult) GetTrackInfo() []*OccupancyCountingPredictionResult_TrackInfo {
	if x != nil {
		return x.TrackInfo
	}
	return nil
}

func (x *OccupancyCountingPredictionResult) GetDwellTimeInfo() []*OccupancyCountingPredictionResult_DwellTimeInfo {
	if x != nil {
		return x.DwellTimeInfo
	}
	return nil
}

// message about annotations about Vision AI stream resource.
type StreamAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to AnnotationPayload:
	//
	//	*StreamAnnotation_ActiveZone
	//	*StreamAnnotation_CrossingLine
	AnnotationPayload isStreamAnnotation_AnnotationPayload `protobuf_oneof:"annotation_payload"`
	// ID of the annotation. It must be unique when used in the certain context.
	// For example, all the annotations to one input streams of a Vision AI
	// application.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// User-friendly name for the annotation.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// The Vision AI stream resource name.
	SourceStream string `protobuf:"bytes,3,opt,name=source_stream,json=sourceStream,proto3" json:"source_stream,omitempty"`
	// The actual type of Annotation.
	Type StreamAnnotationType `protobuf:"varint,4,opt,name=type,proto3,enum=google.cloud.visionai.v1.StreamAnnotationType" json:"type,omitempty"`
}

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

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

func (*StreamAnnotation) ProtoMessage() {}

func (x *StreamAnnotation) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 StreamAnnotation.ProtoReflect.Descriptor instead.
func (*StreamAnnotation) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{9}
}

func (m *StreamAnnotation) GetAnnotationPayload() isStreamAnnotation_AnnotationPayload {
	if m != nil {
		return m.AnnotationPayload
	}
	return nil
}

func (x *StreamAnnotation) GetActiveZone() *NormalizedPolygon {
	if x, ok := x.GetAnnotationPayload().(*StreamAnnotation_ActiveZone); ok {
		return x.ActiveZone
	}
	return nil
}

func (x *StreamAnnotation) GetCrossingLine() *NormalizedPolyline {
	if x, ok := x.GetAnnotationPayload().(*StreamAnnotation_CrossingLine); ok {
		return x.CrossingLine
	}
	return nil
}

func (x *StreamAnnotation) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *StreamAnnotation) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *StreamAnnotation) GetSourceStream() string {
	if x != nil {
		return x.SourceStream
	}
	return ""
}

func (x *StreamAnnotation) GetType() StreamAnnotationType {
	if x != nil {
		return x.Type
	}
	return StreamAnnotationType_STREAM_ANNOTATION_TYPE_UNSPECIFIED
}

type isStreamAnnotation_AnnotationPayload interface {
	isStreamAnnotation_AnnotationPayload()
}

type StreamAnnotation_ActiveZone struct {
	// Annotation for type ACTIVE_ZONE
	ActiveZone *NormalizedPolygon `protobuf:"bytes,5,opt,name=active_zone,json=activeZone,proto3,oneof"`
}

type StreamAnnotation_CrossingLine struct {
	// Annotation for type CROSSING_LINE
	CrossingLine *NormalizedPolyline `protobuf:"bytes,6,opt,name=crossing_line,json=crossingLine,proto3,oneof"`
}

func (*StreamAnnotation_ActiveZone) isStreamAnnotation_AnnotationPayload() {}

func (*StreamAnnotation_CrossingLine) isStreamAnnotation_AnnotationPayload() {}

// A wrapper of repeated StreamAnnotation.
type StreamAnnotations struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Multiple annotations.
	StreamAnnotations []*StreamAnnotation `protobuf:"bytes,1,rep,name=stream_annotations,json=streamAnnotations,proto3" json:"stream_annotations,omitempty"`
}

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

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

func (*StreamAnnotations) ProtoMessage() {}

func (x *StreamAnnotations) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 StreamAnnotations.ProtoReflect.Descriptor instead.
func (*StreamAnnotations) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{10}
}

func (x *StreamAnnotations) GetStreamAnnotations() []*StreamAnnotation {
	if x != nil {
		return x.StreamAnnotations
	}
	return nil
}

// Normalized Polygon.
type NormalizedPolygon struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The bounding polygon normalized vertices. Top left corner of the image
	// will be [0, 0].
	NormalizedVertices []*NormalizedVertex `protobuf:"bytes,1,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"`
}

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

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

func (*NormalizedPolygon) ProtoMessage() {}

func (x *NormalizedPolygon) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 NormalizedPolygon.ProtoReflect.Descriptor instead.
func (*NormalizedPolygon) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{11}
}

func (x *NormalizedPolygon) GetNormalizedVertices() []*NormalizedVertex {
	if x != nil {
		return x.NormalizedVertices
	}
	return nil
}

// Normalized Pplyline, which represents a curve consisting of connected
// straight-line segments.
type NormalizedPolyline struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A sequence of vertices connected by straight lines.
	NormalizedVertices []*NormalizedVertex `protobuf:"bytes,1,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"`
}

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

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

func (*NormalizedPolyline) ProtoMessage() {}

func (x *NormalizedPolyline) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_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 NormalizedPolyline.ProtoReflect.Descriptor instead.
func (*NormalizedPolyline) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{12}
}

func (x *NormalizedPolyline) GetNormalizedVertices() []*NormalizedVertex {
	if x != nil {
		return x.NormalizedVertices
	}
	return nil
}

// A vertex represents a 2D point in the image.
// NOTE: the normalized vertex coordinates are relative to the original image
// and range from 0 to 1.
type NormalizedVertex struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// X coordinate.
	X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
	// Y coordinate.
	Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
}

func (x *NormalizedVertex) Reset() {
	*x = NormalizedVertex{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NormalizedVertex) ProtoMessage() {}

func (x *NormalizedVertex) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[13]
	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 NormalizedVertex.ProtoReflect.Descriptor instead.
func (*NormalizedVertex) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{13}
}

func (x *NormalizedVertex) GetX() float32 {
	if x != nil {
		return x.X
	}
	return 0
}

func (x *NormalizedVertex) GetY() float32 {
	if x != nil {
		return x.Y
	}
	return 0
}

// Message of essential metadata of App Platform.
// This message is usually attached to a certain processor output annotation for
// customer to identify the source of the data.
type AppPlatformMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The application resource name.
	Application string `protobuf:"bytes,1,opt,name=application,proto3" json:"application,omitempty"`
	// The instance resource id. Instance is the nested resource of application
	// under collection 'instances'.
	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// The node name of the application graph.
	Node string `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"`
	// The referred processor resource name of the application node.
	Processor string `protobuf:"bytes,4,opt,name=processor,proto3" json:"processor,omitempty"`
}

func (x *AppPlatformMetadata) Reset() {
	*x = AppPlatformMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformMetadata) ProtoMessage() {}

func (x *AppPlatformMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[14]
	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 AppPlatformMetadata.ProtoReflect.Descriptor instead.
func (*AppPlatformMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{14}
}

func (x *AppPlatformMetadata) GetApplication() string {
	if x != nil {
		return x.Application
	}
	return ""
}

func (x *AppPlatformMetadata) GetInstanceId() string {
	if x != nil {
		return x.InstanceId
	}
	return ""
}

func (x *AppPlatformMetadata) GetNode() string {
	if x != nil {
		return x.Node
	}
	return ""
}

func (x *AppPlatformMetadata) GetProcessor() string {
	if x != nil {
		return x.Processor
	}
	return ""
}

// For any cloud function based customer processing logic, customer's cloud
// function is expected to receive AppPlatformCloudFunctionRequest as request
// and send back AppPlatformCloudFunctionResponse as response.
// Message of request from AppPlatform to Cloud Function.
type AppPlatformCloudFunctionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The metadata of the AppPlatform for customer to identify the source of the
	// payload.
	AppPlatformMetadata *AppPlatformMetadata `protobuf:"bytes,1,opt,name=app_platform_metadata,json=appPlatformMetadata,proto3" json:"app_platform_metadata,omitempty"`
	// The actual annotations to be processed by the customized Cloud Function.
	Annotations []*AppPlatformCloudFunctionRequest_StructedInputAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"`
}

func (x *AppPlatformCloudFunctionRequest) Reset() {
	*x = AppPlatformCloudFunctionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformCloudFunctionRequest) ProtoMessage() {}

func (x *AppPlatformCloudFunctionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[15]
	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 AppPlatformCloudFunctionRequest.ProtoReflect.Descriptor instead.
func (*AppPlatformCloudFunctionRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{15}
}

func (x *AppPlatformCloudFunctionRequest) GetAppPlatformMetadata() *AppPlatformMetadata {
	if x != nil {
		return x.AppPlatformMetadata
	}
	return nil
}

func (x *AppPlatformCloudFunctionRequest) GetAnnotations() []*AppPlatformCloudFunctionRequest_StructedInputAnnotation {
	if x != nil {
		return x.Annotations
	}
	return nil
}

// Message of the response from customer's Cloud Function to AppPlatform.
type AppPlatformCloudFunctionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The modified annotations that is returned back to AppPlatform.
	// If the annotations fields are empty, then those annotations will be dropped
	// by AppPlatform.
	Annotations []*AppPlatformCloudFunctionResponse_StructedOutputAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"`
	// If set to true, AppPlatform will use original annotations instead of
	// dropping them, even if it is empty in the annotations filed.
	AnnotationPassthrough bool `protobuf:"varint,3,opt,name=annotation_passthrough,json=annotationPassthrough,proto3" json:"annotation_passthrough,omitempty"`
	// The event notifications that is returned back to AppPlatform. Typically it
	// will then be configured to be consumed/forwared to a operator that handles
	// events, such as Pub/Sub operator.
	Events []*AppPlatformEventBody `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"`
}

func (x *AppPlatformCloudFunctionResponse) Reset() {
	*x = AppPlatformCloudFunctionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformCloudFunctionResponse) ProtoMessage() {}

func (x *AppPlatformCloudFunctionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[16]
	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 AppPlatformCloudFunctionResponse.ProtoReflect.Descriptor instead.
func (*AppPlatformCloudFunctionResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{16}
}

func (x *AppPlatformCloudFunctionResponse) GetAnnotations() []*AppPlatformCloudFunctionResponse_StructedOutputAnnotation {
	if x != nil {
		return x.Annotations
	}
	return nil
}

func (x *AppPlatformCloudFunctionResponse) GetAnnotationPassthrough() bool {
	if x != nil {
		return x.AnnotationPassthrough
	}
	return false
}

func (x *AppPlatformCloudFunctionResponse) GetEvents() []*AppPlatformEventBody {
	if x != nil {
		return x.Events
	}
	return nil
}

// Message of content of appPlatform event
type AppPlatformEventBody struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Human readable string of the event like "There are more than 6 people in
	// the scene". or "Shelf is empty!".
	EventMessage string `protobuf:"bytes,1,opt,name=event_message,json=eventMessage,proto3" json:"event_message,omitempty"`
	// For the case of Pub/Sub, it will be stored in the message attributes.
	// ​​pubsub.proto
	Payload *structpb.Struct `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	// User defined Event Id, used to classify event, within a delivery interval,
	// events from the same application instance with the same id will be
	// de-duplicated & only first one will be sent out. Empty event_id will be
	// treated as "".
	EventId string `protobuf:"bytes,3,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
}

func (x *AppPlatformEventBody) Reset() {
	*x = AppPlatformEventBody{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformEventBody) ProtoMessage() {}

func (x *AppPlatformEventBody) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[17]
	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 AppPlatformEventBody.ProtoReflect.Descriptor instead.
func (*AppPlatformEventBody) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{17}
}

func (x *AppPlatformEventBody) GetEventMessage() string {
	if x != nil {
		return x.EventMessage
	}
	return ""
}

func (x *AppPlatformEventBody) GetPayload() *structpb.Struct {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *AppPlatformEventBody) GetEventId() string {
	if x != nil {
		return x.EventId
	}
	return ""
}

// The entity info for annotations from person detection prediction result.
type PersonalProtectiveEquipmentDetectionOutput_PersonEntity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Entity id.
	PersonEntityId int64 `protobuf:"varint,1,opt,name=person_entity_id,json=personEntityId,proto3" json:"person_entity_id,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_PersonEntity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_PersonEntity) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[18]
	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 PersonalProtectiveEquipmentDetectionOutput_PersonEntity.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_PersonEntity) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 0}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) GetPersonEntityId() int64 {
	if x != nil {
		return x.PersonEntityId
	}
	return 0
}

// The entity info for annotations from PPE detection prediction result.
type PersonalProtectiveEquipmentDetectionOutput_PPEEntity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Label id.
	PpeLabelId int64 `protobuf:"varint,1,opt,name=ppe_label_id,json=ppeLabelId,proto3" json:"ppe_label_id,omitempty"`
	// Human readable string of the label (Examples: helmet, glove, mask).
	PpeLabelString string `protobuf:"bytes,2,opt,name=ppe_label_string,json=ppeLabelString,proto3" json:"ppe_label_string,omitempty"`
	// Human readable string of the super category label (Examples: head_cover,
	// hands_cover, face_cover).
	PpeSupercategoryLabelString string `protobuf:"bytes,3,opt,name=ppe_supercategory_label_string,json=ppeSupercategoryLabelString,proto3" json:"ppe_supercategory_label_string,omitempty"`
	// Entity id.
	PpeEntityId int64 `protobuf:"varint,4,opt,name=ppe_entity_id,json=ppeEntityId,proto3" json:"ppe_entity_id,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_PPEEntity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_PPEEntity) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[19]
	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 PersonalProtectiveEquipmentDetectionOutput_PPEEntity.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_PPEEntity) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 1}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeLabelId() int64 {
	if x != nil {
		return x.PpeLabelId
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeLabelString() string {
	if x != nil {
		return x.PpeLabelString
	}
	return ""
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeSupercategoryLabelString() string {
	if x != nil {
		return x.PpeSupercategoryLabelString
	}
	return ""
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeEntityId() int64 {
	if x != nil {
		return x.PpeEntityId
	}
	return 0
}

// Bounding Box in the normalized coordinates.
type PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Min in x coordinate.
	Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"`
	// Min in y coordinate.
	Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"`
	// Width of the bounding box.
	Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"`
	// Height of the bounding box.
	Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[20]
	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 PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 2}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetXmin() float32 {
	if x != nil {
		return x.Xmin
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetYmin() float32 {
	if x != nil {
		return x.Ymin
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetWidth() float32 {
	if x != nil {
		return x.Width
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetHeight() float32 {
	if x != nil {
		return x.Height
	}
	return 0
}

// PersonIdentified box contains the location and the entity info of the
// person.
type PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id for this box.
	BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"`
	// Bounding Box in the normalized coordinates.
	NormalizedBoundingBox *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"`
	// Confidence score associated with this box.
	ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"`
	// Person entity info.
	PersonEntity *PersonalProtectiveEquipmentDetectionOutput_PersonEntity `protobuf:"bytes,4,opt,name=person_entity,json=personEntity,proto3" json:"person_entity,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[21]
	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 PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 3}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetBoxId() int64 {
	if x != nil {
		return x.BoxId
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetNormalizedBoundingBox() *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox {
	if x != nil {
		return x.NormalizedBoundingBox
	}
	return nil
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetConfidenceScore() float32 {
	if x != nil {
		return x.ConfidenceScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetPersonEntity() *PersonalProtectiveEquipmentDetectionOutput_PersonEntity {
	if x != nil {
		return x.PersonEntity
	}
	return nil
}

// PPEIdentified box contains the location and the entity info of the PPE.
type PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id for this box.
	BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"`
	// Bounding Box in the normalized coordinates.
	NormalizedBoundingBox *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"`
	// Confidence score associated with this box.
	ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"`
	// PPE entity info.
	PpeEntity *PersonalProtectiveEquipmentDetectionOutput_PPEEntity `protobuf:"bytes,4,opt,name=ppe_entity,json=ppeEntity,proto3" json:"ppe_entity,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[22]
	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 PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 4}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetBoxId() int64 {
	if x != nil {
		return x.BoxId
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetNormalizedBoundingBox() *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox {
	if x != nil {
		return x.NormalizedBoundingBox
	}
	return nil
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetConfidenceScore() float32 {
	if x != nil {
		return x.ConfidenceScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetPpeEntity() *PersonalProtectiveEquipmentDetectionOutput_PPEEntity {
	if x != nil {
		return x.PpeEntity
	}
	return nil
}

// Detected Person contains the detected person and their associated
// ppes and their protecting information.
type PersonalProtectiveEquipmentDetectionOutput_DetectedPerson struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The id of detected person.
	PersonId int64 `protobuf:"varint,1,opt,name=person_id,json=personId,proto3" json:"person_id,omitempty"`
	// The info of detected person identified box.
	DetectedPersonIdentifiedBox *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox `protobuf:"bytes,2,opt,name=detected_person_identified_box,json=detectedPersonIdentifiedBox,proto3" json:"detected_person_identified_box,omitempty"`
	// The info of detected person associated ppe identified boxes.
	DetectedPpeIdentifiedBoxes []*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox `protobuf:"bytes,3,rep,name=detected_ppe_identified_boxes,json=detectedPpeIdentifiedBoxes,proto3" json:"detected_ppe_identified_boxes,omitempty"`
	// Coverage score for each body part.
	// Coverage score for face.
	FaceCoverageScore *float32 `protobuf:"fixed32,4,opt,name=face_coverage_score,json=faceCoverageScore,proto3,oneof" json:"face_coverage_score,omitempty"`
	// Coverage score for eyes.
	EyesCoverageScore *float32 `protobuf:"fixed32,5,opt,name=eyes_coverage_score,json=eyesCoverageScore,proto3,oneof" json:"eyes_coverage_score,omitempty"`
	// Coverage score for head.
	HeadCoverageScore *float32 `protobuf:"fixed32,6,opt,name=head_coverage_score,json=headCoverageScore,proto3,oneof" json:"head_coverage_score,omitempty"`
	// Coverage score for hands.
	HandsCoverageScore *float32 `protobuf:"fixed32,7,opt,name=hands_coverage_score,json=handsCoverageScore,proto3,oneof" json:"hands_coverage_score,omitempty"`
	// Coverage score for body.
	BodyCoverageScore *float32 `protobuf:"fixed32,8,opt,name=body_coverage_score,json=bodyCoverageScore,proto3,oneof" json:"body_coverage_score,omitempty"`
	// Coverage score for feet.
	FeetCoverageScore *float32 `protobuf:"fixed32,9,opt,name=feet_coverage_score,json=feetCoverageScore,proto3,oneof" json:"feet_coverage_score,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) Reset() {
	*x = PersonalProtectiveEquipmentDetectionOutput_DetectedPerson{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) ProtoMessage() {}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[23]
	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 PersonalProtectiveEquipmentDetectionOutput_DetectedPerson.ProtoReflect.Descriptor instead.
func (*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 5}
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetPersonId() int64 {
	if x != nil {
		return x.PersonId
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetDetectedPersonIdentifiedBox() *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox {
	if x != nil {
		return x.DetectedPersonIdentifiedBox
	}
	return nil
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetDetectedPpeIdentifiedBoxes() []*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox {
	if x != nil {
		return x.DetectedPpeIdentifiedBoxes
	}
	return nil
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetFaceCoverageScore() float32 {
	if x != nil && x.FaceCoverageScore != nil {
		return *x.FaceCoverageScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetEyesCoverageScore() float32 {
	if x != nil && x.EyesCoverageScore != nil {
		return *x.EyesCoverageScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetHeadCoverageScore() float32 {
	if x != nil && x.HeadCoverageScore != nil {
		return *x.HeadCoverageScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetHandsCoverageScore() float32 {
	if x != nil && x.HandsCoverageScore != nil {
		return *x.HandsCoverageScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetBodyCoverageScore() float32 {
	if x != nil && x.BodyCoverageScore != nil {
		return *x.BodyCoverageScore
	}
	return 0
}

func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetFeetCoverageScore() float32 {
	if x != nil && x.FeetCoverageScore != nil {
		return *x.FeetCoverageScore
	}
	return 0
}

// The entity info for annotations from object detection prediction result.
type ObjectDetectionPredictionResult_Entity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Label id.
	LabelId int64 `protobuf:"varint,1,opt,name=label_id,json=labelId,proto3" json:"label_id,omitempty"`
	// Human readable string of the label.
	LabelString string `protobuf:"bytes,2,opt,name=label_string,json=labelString,proto3" json:"label_string,omitempty"`
}

func (x *ObjectDetectionPredictionResult_Entity) Reset() {
	*x = ObjectDetectionPredictionResult_Entity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ObjectDetectionPredictionResult_Entity) ProtoMessage() {}

func (x *ObjectDetectionPredictionResult_Entity) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[24]
	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 ObjectDetectionPredictionResult_Entity.ProtoReflect.Descriptor instead.
func (*ObjectDetectionPredictionResult_Entity) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 0}
}

func (x *ObjectDetectionPredictionResult_Entity) GetLabelId() int64 {
	if x != nil {
		return x.LabelId
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_Entity) GetLabelString() string {
	if x != nil {
		return x.LabelString
	}
	return ""
}

// Identified box contains location and the entity of the object.
type ObjectDetectionPredictionResult_IdentifiedBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id for this box.
	BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"`
	// Bounding Box in the normalized coordinates.
	NormalizedBoundingBox *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"`
	// Confidence score associated with this box.
	ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"`
	// Entity of this box.
	Entity *ObjectDetectionPredictionResult_Entity `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"`
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) Reset() {
	*x = ObjectDetectionPredictionResult_IdentifiedBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ObjectDetectionPredictionResult_IdentifiedBox) ProtoMessage() {}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[25]
	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 ObjectDetectionPredictionResult_IdentifiedBox.ProtoReflect.Descriptor instead.
func (*ObjectDetectionPredictionResult_IdentifiedBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 1}
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetBoxId() int64 {
	if x != nil {
		return x.BoxId
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetNormalizedBoundingBox() *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox {
	if x != nil {
		return x.NormalizedBoundingBox
	}
	return nil
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetConfidenceScore() float32 {
	if x != nil {
		return x.ConfidenceScore
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetEntity() *ObjectDetectionPredictionResult_Entity {
	if x != nil {
		return x.Entity
	}
	return nil
}

// Bounding Box in the normalized coordinates.
type ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Min in x coordinate.
	Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"`
	// Min in y coordinate.
	Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"`
	// Width of the bounding box.
	Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"`
	// Height of the bounding box.
	Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"`
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) Reset() {
	*x = ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoMessage() {}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[26]
	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 ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox.ProtoReflect.Descriptor instead.
func (*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 1, 0}
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetXmin() float32 {
	if x != nil {
		return x.Xmin
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetYmin() float32 {
	if x != nil {
		return x.Ymin
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetWidth() float32 {
	if x != nil {
		return x.Width
	}
	return 0
}

func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetHeight() float32 {
	if x != nil {
		return x.Height
	}
	return 0
}

// Each IdentifiedAction is one particular identification of an action
// specified with the AnnotationSpec id, display_name and the associated
// confidence score.
type VideoActionRecognitionPredictionResult_IdentifiedAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The resource ID of the AnnotationSpec that had been identified.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The display name of the AnnotationSpec that had been identified.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// The Model's confidence in correction of this identification, higher
	// value means higher confidence.
	Confidence float32 `protobuf:"fixed32,3,opt,name=confidence,proto3" json:"confidence,omitempty"`
}

func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) Reset() {
	*x = VideoActionRecognitionPredictionResult_IdentifiedAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VideoActionRecognitionPredictionResult_IdentifiedAction) ProtoMessage() {}

func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[27]
	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 VideoActionRecognitionPredictionResult_IdentifiedAction.ProtoReflect.Descriptor instead.
func (*VideoActionRecognitionPredictionResult_IdentifiedAction) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{5, 0}
}

func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

// Boundingbox for detected object. I.e. the rectangle over the video frame
// pinpointing the found AnnotationSpec. The coordinates are relative to the
// frame size, and the point 0,0 is in the top left of the frame.
type VideoObjectTrackingPredictionResult_BoundingBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The leftmost coordinate of the bounding box.
	XMin float32 `protobuf:"fixed32,1,opt,name=x_min,json=xMin,proto3" json:"x_min,omitempty"`
	// The rightmost coordinate of the bounding box.
	XMax float32 `protobuf:"fixed32,2,opt,name=x_max,json=xMax,proto3" json:"x_max,omitempty"`
	// The topmost coordinate of the bounding box.
	YMin float32 `protobuf:"fixed32,3,opt,name=y_min,json=yMin,proto3" json:"y_min,omitempty"`
	// The bottommost coordinate of the bounding box.
	YMax float32 `protobuf:"fixed32,4,opt,name=y_max,json=yMax,proto3" json:"y_max,omitempty"`
}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) Reset() {
	*x = VideoObjectTrackingPredictionResult_BoundingBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VideoObjectTrackingPredictionResult_BoundingBox) ProtoMessage() {}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[28]
	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 VideoObjectTrackingPredictionResult_BoundingBox.ProtoReflect.Descriptor instead.
func (*VideoObjectTrackingPredictionResult_BoundingBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6, 0}
}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetXMin() float32 {
	if x != nil {
		return x.XMin
	}
	return 0
}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetXMax() float32 {
	if x != nil {
		return x.XMax
	}
	return 0
}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetYMin() float32 {
	if x != nil {
		return x.YMin
	}
	return 0
}

func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetYMax() float32 {
	if x != nil {
		return x.YMax
	}
	return 0
}

// Each DetectedObject is one particular identification of an object
// specified with the AnnotationSpec id and display_name, the bounding box,
// the associated confidence score and the corresponding track_id.
type VideoObjectTrackingPredictionResult_DetectedObject struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The resource ID of the AnnotationSpec that had been identified.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The display name of the AnnotationSpec that had been identified.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Boundingbox.
	BoundingBox *VideoObjectTrackingPredictionResult_BoundingBox `protobuf:"bytes,3,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
	// The Model's confidence in correction of this identification, higher
	// value means higher confidence.
	Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
	// The same object may be identified on muitiple frames which are typical
	// adjacent. The set of frames where a particular object has been detected
	// form a track. This track_id can be used to trace down all frames for an
	// detected object.
	TrackId int64 `protobuf:"varint,5,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"`
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) Reset() {
	*x = VideoObjectTrackingPredictionResult_DetectedObject{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VideoObjectTrackingPredictionResult_DetectedObject) ProtoMessage() {}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[29]
	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 VideoObjectTrackingPredictionResult_DetectedObject.ProtoReflect.Descriptor instead.
func (*VideoObjectTrackingPredictionResult_DetectedObject) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6, 1}
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetBoundingBox() *VideoObjectTrackingPredictionResult_BoundingBox {
	if x != nil {
		return x.BoundingBox
	}
	return nil
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetTrackId() int64 {
	if x != nil {
		return x.TrackId
	}
	return 0
}

// Each IdentifiedClassification is one particular identification of an
// classification specified with the AnnotationSpec id and display_name,
// and the associated confidence score.
type VideoClassificationPredictionResult_IdentifiedClassification struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The resource ID of the AnnotationSpec that had been identified.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The display name of the AnnotationSpec that had been identified.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// The Model's confidence in correction of this identification, higher
	// value means higher confidence.
	Confidence float32 `protobuf:"fixed32,3,opt,name=confidence,proto3" json:"confidence,omitempty"`
}

func (x *VideoClassificationPredictionResult_IdentifiedClassification) Reset() {
	*x = VideoClassificationPredictionResult_IdentifiedClassification{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VideoClassificationPredictionResult_IdentifiedClassification) ProtoMessage() {}

func (x *VideoClassificationPredictionResult_IdentifiedClassification) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[30]
	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 VideoClassificationPredictionResult_IdentifiedClassification.ProtoReflect.Descriptor instead.
func (*VideoClassificationPredictionResult_IdentifiedClassification) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{7, 0}
}

func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

// The entity info for annotations from occupancy counting operator.
type OccupancyCountingPredictionResult_Entity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Label id.
	LabelId int64 `protobuf:"varint,1,opt,name=label_id,json=labelId,proto3" json:"label_id,omitempty"`
	// Human readable string of the label.
	LabelString string `protobuf:"bytes,2,opt,name=label_string,json=labelString,proto3" json:"label_string,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Entity) Reset() {
	*x = OccupancyCountingPredictionResult_Entity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Entity) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Entity) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[31]
	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 OccupancyCountingPredictionResult_Entity.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Entity) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 0}
}

func (x *OccupancyCountingPredictionResult_Entity) GetLabelId() int64 {
	if x != nil {
		return x.LabelId
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_Entity) GetLabelString() string {
	if x != nil {
		return x.LabelString
	}
	return ""
}

// Identified box contains location and the entity of the object.
type OccupancyCountingPredictionResult_IdentifiedBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id for this box.
	BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"`
	// Bounding Box in the normalized coordinates.
	NormalizedBoundingBox *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"`
	// Confidence score associated with this box.
	Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
	// Entity of this box.
	Entity *OccupancyCountingPredictionResult_Entity `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"`
	// An unique id to identify a track. It should be consistent across frames.
	// It only exists if tracking is enabled.
	TrackId int64 `protobuf:"varint,5,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"`
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) Reset() {
	*x = OccupancyCountingPredictionResult_IdentifiedBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_IdentifiedBox) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[32]
	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 OccupancyCountingPredictionResult_IdentifiedBox.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_IdentifiedBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 1}
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetBoxId() int64 {
	if x != nil {
		return x.BoxId
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetNormalizedBoundingBox() *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox {
	if x != nil {
		return x.NormalizedBoundingBox
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetScore() float32 {
	if x != nil {
		return x.Score
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetEntity() *OccupancyCountingPredictionResult_Entity {
	if x != nil {
		return x.Entity
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetTrackId() int64 {
	if x != nil {
		return x.TrackId
	}
	return 0
}

// The statistics info for annotations from occupancy counting operator.
type OccupancyCountingPredictionResult_Stats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Counts of the full frame.
	FullFrameCount []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,1,rep,name=full_frame_count,json=fullFrameCount,proto3" json:"full_frame_count,omitempty"`
	// Crossing line counts.
	CrossingLineCounts []*OccupancyCountingPredictionResult_Stats_CrossingLineCount `protobuf:"bytes,2,rep,name=crossing_line_counts,json=crossingLineCounts,proto3" json:"crossing_line_counts,omitempty"`
	// Active zone counts.
	ActiveZoneCounts []*OccupancyCountingPredictionResult_Stats_ActiveZoneCount `protobuf:"bytes,3,rep,name=active_zone_counts,json=activeZoneCounts,proto3" json:"active_zone_counts,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Stats) Reset() {
	*x = OccupancyCountingPredictionResult_Stats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Stats) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Stats) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[33]
	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 OccupancyCountingPredictionResult_Stats.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Stats) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2}
}

func (x *OccupancyCountingPredictionResult_Stats) GetFullFrameCount() []*OccupancyCountingPredictionResult_Stats_ObjectCount {
	if x != nil {
		return x.FullFrameCount
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats) GetCrossingLineCounts() []*OccupancyCountingPredictionResult_Stats_CrossingLineCount {
	if x != nil {
		return x.CrossingLineCounts
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats) GetActiveZoneCounts() []*OccupancyCountingPredictionResult_Stats_ActiveZoneCount {
	if x != nil {
		return x.ActiveZoneCounts
	}
	return nil
}

// The track info for annotations from occupancy counting operator.
type OccupancyCountingPredictionResult_TrackInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id to identify a track. It should be consistent across frames.
	TrackId string `protobuf:"bytes,1,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"`
	// Start timestamp of this track.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
}

func (x *OccupancyCountingPredictionResult_TrackInfo) Reset() {
	*x = OccupancyCountingPredictionResult_TrackInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_TrackInfo) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_TrackInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[34]
	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 OccupancyCountingPredictionResult_TrackInfo.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_TrackInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 3}
}

func (x *OccupancyCountingPredictionResult_TrackInfo) GetTrackId() string {
	if x != nil {
		return x.TrackId
	}
	return ""
}

func (x *OccupancyCountingPredictionResult_TrackInfo) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

// The dwell time info for annotations from occupancy counting operator.
type OccupancyCountingPredictionResult_DwellTimeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An unique id to identify a track. It should be consistent across frames.
	TrackId string `protobuf:"bytes,1,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"`
	// The unique id for the zone in which the object is dwelling/waiting.
	ZoneId string `protobuf:"bytes,2,opt,name=zone_id,json=zoneId,proto3" json:"zone_id,omitempty"`
	// The beginning time when a dwelling object has been identified in a zone.
	DwellStartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=dwell_start_time,json=dwellStartTime,proto3" json:"dwell_start_time,omitempty"`
	// The end time when a dwelling object has exited in a zone.
	DwellEndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=dwell_end_time,json=dwellEndTime,proto3" json:"dwell_end_time,omitempty"`
}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) Reset() {
	*x = OccupancyCountingPredictionResult_DwellTimeInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_DwellTimeInfo) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[35]
	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 OccupancyCountingPredictionResult_DwellTimeInfo.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_DwellTimeInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 4}
}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetTrackId() string {
	if x != nil {
		return x.TrackId
	}
	return ""
}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetZoneId() string {
	if x != nil {
		return x.ZoneId
	}
	return ""
}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetDwellStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.DwellStartTime
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetDwellEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.DwellEndTime
	}
	return nil
}

// Bounding Box in the normalized coordinates.
type OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Min in x coordinate.
	Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"`
	// Min in y coordinate.
	Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"`
	// Width of the bounding box.
	Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"`
	// Height of the bounding box.
	Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"`
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) Reset() {
	*x = OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[36]
	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 OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 1, 0}
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetXmin() float32 {
	if x != nil {
		return x.Xmin
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetYmin() float32 {
	if x != nil {
		return x.Ymin
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetWidth() float32 {
	if x != nil {
		return x.Width
	}
	return 0
}

func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetHeight() float32 {
	if x != nil {
		return x.Height
	}
	return 0
}

// The object info and instant count for annotations from occupancy counting
// operator.
type OccupancyCountingPredictionResult_Stats_ObjectCount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Entity of this object.
	Entity *OccupancyCountingPredictionResult_Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
	// Count of the object.
	Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) Reset() {
	*x = OccupancyCountingPredictionResult_Stats_ObjectCount{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Stats_ObjectCount) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[37]
	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 OccupancyCountingPredictionResult_Stats_ObjectCount.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Stats_ObjectCount) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 0}
}

func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) GetEntity() *OccupancyCountingPredictionResult_Entity {
	if x != nil {
		return x.Entity
	}
	return nil
}

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

// The object info and accumulated count for annotations from occupancy
// counting operator.
type OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The start time of the accumulated count.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// The object count for the accumulated count.
	ObjectCount *OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,opt,name=object_count,json=objectCount,proto3" json:"object_count,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) Reset() {
	*x = OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[38]
	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 OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 1}
}

func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) GetObjectCount() *OccupancyCountingPredictionResult_Stats_ObjectCount {
	if x != nil {
		return x.ObjectCount
	}
	return nil
}

// Message for Crossing line count.
type OccupancyCountingPredictionResult_Stats_CrossingLineCount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Line annotation from the user.
	Annotation *StreamAnnotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"`
	// The direction that follows the right hand rule.
	PositiveDirectionCounts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,rep,name=positive_direction_counts,json=positiveDirectionCounts,proto3" json:"positive_direction_counts,omitempty"`
	// The direction that is opposite to the right hand rule.
	NegativeDirectionCounts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,3,rep,name=negative_direction_counts,json=negativeDirectionCounts,proto3" json:"negative_direction_counts,omitempty"`
	// The accumulated positive count.
	AccumulatedPositiveDirectionCounts []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount `protobuf:"bytes,4,rep,name=accumulated_positive_direction_counts,json=accumulatedPositiveDirectionCounts,proto3" json:"accumulated_positive_direction_counts,omitempty"`
	// The accumulated negative count.
	AccumulatedNegativeDirectionCounts []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount `protobuf:"bytes,5,rep,name=accumulated_negative_direction_counts,json=accumulatedNegativeDirectionCounts,proto3" json:"accumulated_negative_direction_counts,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) Reset() {
	*x = OccupancyCountingPredictionResult_Stats_CrossingLineCount{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Stats_CrossingLineCount) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[39]
	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 OccupancyCountingPredictionResult_Stats_CrossingLineCount.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Stats_CrossingLineCount) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 2}
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAnnotation() *StreamAnnotation {
	if x != nil {
		return x.Annotation
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetPositiveDirectionCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount {
	if x != nil {
		return x.PositiveDirectionCounts
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetNegativeDirectionCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount {
	if x != nil {
		return x.NegativeDirectionCounts
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAccumulatedPositiveDirectionCounts() []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount {
	if x != nil {
		return x.AccumulatedPositiveDirectionCounts
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAccumulatedNegativeDirectionCounts() []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount {
	if x != nil {
		return x.AccumulatedNegativeDirectionCounts
	}
	return nil
}

// Message for the active zone count.
type OccupancyCountingPredictionResult_Stats_ActiveZoneCount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Active zone annotation from the user.
	Annotation *StreamAnnotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"`
	// Counts in the zone.
	Counts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,rep,name=counts,proto3" json:"counts,omitempty"`
}

func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) Reset() {
	*x = OccupancyCountingPredictionResult_Stats_ActiveZoneCount{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountingPredictionResult_Stats_ActiveZoneCount) ProtoMessage() {}

func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[40]
	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 OccupancyCountingPredictionResult_Stats_ActiveZoneCount.ProtoReflect.Descriptor instead.
func (*OccupancyCountingPredictionResult_Stats_ActiveZoneCount) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 3}
}

func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) GetAnnotation() *StreamAnnotation {
	if x != nil {
		return x.Annotation
	}
	return nil
}

func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) GetCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount {
	if x != nil {
		return x.Counts
	}
	return nil
}

// A general annotation message that uses struct format to represent different
// concrete annotation protobufs.
type AppPlatformCloudFunctionRequest_StructedInputAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The ingestion time of the current annotation.
	IngestionTimeMicros int64 `protobuf:"varint,1,opt,name=ingestion_time_micros,json=ingestionTimeMicros,proto3" json:"ingestion_time_micros,omitempty"`
	// The struct format of the actual annotation.
	Annotation *structpb.Struct `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"`
}

func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) Reset() {
	*x = AppPlatformCloudFunctionRequest_StructedInputAnnotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformCloudFunctionRequest_StructedInputAnnotation) ProtoMessage() {}

func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[41]
	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 AppPlatformCloudFunctionRequest_StructedInputAnnotation.ProtoReflect.Descriptor instead.
func (*AppPlatformCloudFunctionRequest_StructedInputAnnotation) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{15, 0}
}

func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) GetIngestionTimeMicros() int64 {
	if x != nil {
		return x.IngestionTimeMicros
	}
	return 0
}

func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) GetAnnotation() *structpb.Struct {
	if x != nil {
		return x.Annotation
	}
	return nil
}

// A general annotation message that uses struct format to represent different
// concrete annotation protobufs.
type AppPlatformCloudFunctionResponse_StructedOutputAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The struct format of the actual annotation.
	Annotation *structpb.Struct `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"`
}

func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) Reset() {
	*x = AppPlatformCloudFunctionResponse_StructedOutputAnnotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AppPlatformCloudFunctionResponse_StructedOutputAnnotation) ProtoMessage() {}

func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[42]
	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 AppPlatformCloudFunctionResponse_StructedOutputAnnotation.ProtoReflect.Descriptor instead.
func (*AppPlatformCloudFunctionResponse_StructedOutputAnnotation) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{16, 0}
}

func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) GetAnnotation() *structpb.Struct {
	if x != nil {
		return x.Annotation
	}
	return nil
}

var File_google_cloud_visionai_v1_annotations_proto protoreflect.FileDescriptor

var file_google_cloud_visionai_v1_annotations_proto_rawDesc = []byte{
	0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 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, 0x22, 0xd5, 0x10, 0x0a, 0x2a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
	0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69,
	0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x7e, 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
	0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61,
	0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70,
	0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x6f, 0x6e, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x6f, 0x6e, 0x73, 0x1a, 0x38, 0x0a, 0x0c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74,
	0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70,
	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x1a, 0xc0, 0x01,
	0x0a, 0x09, 0x50, 0x50, 0x45, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x70,
	0x70, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x70, 0x70, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a,
	0x10, 0x70, 0x70, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x70, 0x65, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x1e, 0x70, 0x70, 0x65, 0x5f, 0x73,
	0x75, 0x70, 0x65, 0x72, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x62,
	0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x1b, 0x70, 0x70, 0x65, 0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
	0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0d,
	0x70, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64,
	0x1a, 0x6d, 0x0a, 0x15, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f,
	0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x6d, 0x69,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x79, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, 0x6d, 0x69,
	0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a,
	0xe4, 0x02, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x92,
	0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f,
	0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73,
	0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71,
	0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x15, 0x6e, 0x6f,
	0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63,
	0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x76,
	0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
	0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x73,
	0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0xd8, 0x02, 0x0a, 0x10, 0x50, 0x50, 0x45, 0x49, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x62,
	0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x6f, 0x78,
	0x49, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61,
	0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78,
	0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e,
	0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f,
	0x72, 0x65, 0x12, 0x6d, 0x0a, 0x0a, 0x70, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63,
	0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x50, 0x50, 0x45,
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x09, 0x70, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74,
	0x79, 0x1a, 0xb9, 0x06, 0x0a, 0x0e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x9d, 0x01, 0x0a, 0x1e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70,
	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64,
	0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72,
	0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e,
	0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
	0x64, 0x42, 0x6f, 0x78, 0x52, 0x1b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f,
	0x78, 0x12, 0x98, 0x01, 0x0a, 0x1d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70,
	0x70, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x6f,
	0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61,
	0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f,
	0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
	0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e,
	0x50, 0x50, 0x45, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78,
	0x52, 0x1a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x70, 0x65, 0x49, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x13,
	0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63,
	0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x11, 0x66, 0x61, 0x63,
	0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01,
	0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61,
	0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01,
	0x52, 0x11, 0x65, 0x79, 0x65, 0x73, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63,
	0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x11, 0x68, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72,
	0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x68,
	0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63,
	0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x12, 0x68, 0x61, 0x6e,
	0x64, 0x73, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88,
	0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48,
	0x04, 0x52, 0x11, 0x62, 0x6f, 0x64, 0x79, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53,
	0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x74, 0x5f,
	0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x11, 0x66, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x76, 0x65,
	0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14,
	0x5f, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x6f,
	0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14,
	0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x63, 0x6f, 0x72, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a,
	0x14, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x65, 0x65, 0x74, 0x5f, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xd1, 0x05,
	0x0a, 0x1f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x01, 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, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x72, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62,
	0x6f, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64,
	0x42, 0x6f, 0x78, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42,
	0x6f, 0x78, 0x65, 0x73, 0x1a, 0x46, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19,
	0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x62,
	0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0xb2, 0x03, 0x0a,
	0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15,
	0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x95, 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78,
	0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a,
	0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65,
	0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x1a, 0x6d, 0x0a, 0x15, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
	0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x78,
	0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x12,
	0x12, 0x0a, 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79,
	0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63,
	0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e,
	0x63, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x06, 0x62, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x1e, 0x43, 0x6c, 0x61, 0x73, 0x73,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64,
	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73,
	0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63,
	0x65, 0x73, 0x22, 0x71, 0x0a, 0x21, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67,
	0x6f, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x0f,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63,
	0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x8c, 0x03, 0x0a, 0x26, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x48, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x6b, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64,
	0x65, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x65, 0x0a,
	0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64,
	0x65, 0x6e, 0x63, 0x65, 0x22, 0xef, 0x04, 0x0a, 0x23, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, 0x0a, 0x12,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x01, 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, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0e, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x07,
	0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
	0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x74,
	0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a,
	0x65, 0x63, 0x74, 0x73, 0x1a, 0x61, 0x0a, 0x0b, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x42, 0x6f, 0x78, 0x12, 0x13, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x69, 0x6e, 0x12, 0x13, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x61,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x61, 0x78, 0x12, 0x13, 0x0a,
	0x05, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, 0x4d,
	0x69, 0x6e, 0x12, 0x13, 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x04, 0x79, 0x4d, 0x61, 0x78, 0x1a, 0xec, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x74, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a,
	0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56,
	0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69,
	0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x0b,
	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74,
	0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74,
	0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x22, 0xa7, 0x03, 0x0a, 0x23, 0x56, 0x69, 0x64, 0x65, 0x6f,
	0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72,
	0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48,
	0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0e,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x80,
	0x01, 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
	0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x1a, 0x6d, 0x0a, 0x18, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43,
	0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65,
	0x22, 0xb4, 0x17, 0x0a, 0x21, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x74, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
	0x69, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70,
	0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e,
	0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x71, 0x0a, 0x0f, 0x64, 0x77,
	0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f,
	0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x2e, 0x44, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d,
	0x64, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x46, 0x0a,
	0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c,
	0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69,
	0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0xbc, 0x03, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x97,
	0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f,
	0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75,
	0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65,
	0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x2e, 0x4e, 0x6f, 0x72, 0x6d,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f,
	0x78, 0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75,
	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x5a,
	0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
	0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61,
	0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72,
	0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x72,
	0x61, 0x63, 0x6b, 0x49, 0x64, 0x1a, 0x6d, 0x0a, 0x15, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69,
	0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12,
	0x0a, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d,
	0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x1a, 0xef, 0x0c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x77,
	0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61,
	0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x63, 0x72, 0x6f, 0x73,
	0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69,
	0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x63, 0x72, 0x6f,
	0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12,
	0x7f, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x41,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x1a, 0x7f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x5a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70,
	0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74,
	0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x1a, 0xc5, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65,
	0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x70, 0x0a, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63,
	0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
	0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e,
	0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x6f, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xd3, 0x05, 0x0a, 0x11, 0x43, 0x72,
	0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x4a, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x89, 0x01, 0x0a, 0x19,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70,
	0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x17,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x19, 0x6e, 0x65, 0x67, 0x61,
	0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f,
	0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x17, 0x6e, 0x65, 0x67, 0x61,
	0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x25, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f,
	0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74,
	0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x22, 0x61,
	0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x73, 0x12, 0xab, 0x01, 0x0a, 0x25, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63,
	0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72,
	0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64,
	0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x22, 0x61, 0x63, 0x63,
	0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65,
	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a,
	0xc4, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x65, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70,
	0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x61, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x39,
	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x09,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xcb, 0x01, 0x0a, 0x0d, 0x44, 0x77,
	0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74,
	0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74,
	0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12,
	0x44, 0x0a, 0x10, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x0e, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x65,
	0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0c, 0x64, 0x77, 0x65, 0x6c, 0x6c,
	0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0b,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x72,
	0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x48, 0x00,
	0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x53, 0x0a, 0x0d,
	0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e,
	0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e,
	0x65, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e,
	0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a,
	0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x22, 0x6e, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x11, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x22, 0x70, 0x0a, 0x11, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x64, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x13, 0x6e, 0x6f, 0x72, 0x6d,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, 0x74, 0x65,
	0x78, 0x52, 0x12, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72,
	0x74, 0x69, 0x63, 0x65, 0x73, 0x22, 0x71, 0x0a, 0x12, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69,
	0x7a, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x5b, 0x0a, 0x13, 0x6e,
	0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63,
	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65,
	0x72, 0x74, 0x65, 0x78, 0x52, 0x12, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
	0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x4e, 0x6f, 0x72, 0x6d,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x0c, 0x0a, 0x01,
	0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70,
	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x82, 0x03, 0x0a, 0x1f, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x15, 0x61, 0x70, 0x70,
	0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x73, 0x0a, 0x0b,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70,
	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x72,
	0x75, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x1a, 0x86, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a,
	0x15, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f,
	0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x69, 0x6e,
	0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f,
	0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xed, 0x02, 0x0a, 0x20, 0x41,
	0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46,
	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x75, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e,
	0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64,
	0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x12, 0x46, 0x0a,
	0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73,
	0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x06, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x53, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65,
	0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x41,
	0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42,
	0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e,
	0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x2a, 0x90, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x26, 0x0a, 0x22, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41,
	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x54, 0x52, 0x45, 0x41,
	0x4d, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12,
	0x28, 0x0a, 0x24, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41,
	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x49,
	0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x42, 0xc8, 0x01, 0x0a, 0x1c, 0x63, 0x6f,
	0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x41, 0x6e, 0x6e, 0x6f,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40,
	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, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69,
	0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a,
	0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49,
	0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_cloud_visionai_v1_annotations_proto_rawDescOnce sync.Once
	file_google_cloud_visionai_v1_annotations_proto_rawDescData = file_google_cloud_visionai_v1_annotations_proto_rawDesc
)

func file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP() []byte {
	file_google_cloud_visionai_v1_annotations_proto_rawDescOnce.Do(func() {
		file_google_cloud_visionai_v1_annotations_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_annotations_proto_rawDescData)
	})
	return file_google_cloud_visionai_v1_annotations_proto_rawDescData
}

var file_google_cloud_visionai_v1_annotations_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_cloud_visionai_v1_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 43)
var file_google_cloud_visionai_v1_annotations_proto_goTypes = []interface{}{
	(StreamAnnotationType)(0),                                                     // 0: google.cloud.visionai.v1.StreamAnnotationType
	(*PersonalProtectiveEquipmentDetectionOutput)(nil),                            // 1: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput
	(*ObjectDetectionPredictionResult)(nil),                                       // 2: google.cloud.visionai.v1.ObjectDetectionPredictionResult
	(*ImageObjectDetectionPredictionResult)(nil),                                  // 3: google.cloud.visionai.v1.ImageObjectDetectionPredictionResult
	(*ClassificationPredictionResult)(nil),                                        // 4: google.cloud.visionai.v1.ClassificationPredictionResult
	(*ImageSegmentationPredictionResult)(nil),                                     // 5: google.cloud.visionai.v1.ImageSegmentationPredictionResult
	(*VideoActionRecognitionPredictionResult)(nil),                                // 6: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult
	(*VideoObjectTrackingPredictionResult)(nil),                                   // 7: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult
	(*VideoClassificationPredictionResult)(nil),                                   // 8: google.cloud.visionai.v1.VideoClassificationPredictionResult
	(*OccupancyCountingPredictionResult)(nil),                                     // 9: google.cloud.visionai.v1.OccupancyCountingPredictionResult
	(*StreamAnnotation)(nil),                                                      // 10: google.cloud.visionai.v1.StreamAnnotation
	(*StreamAnnotations)(nil),                                                     // 11: google.cloud.visionai.v1.StreamAnnotations
	(*NormalizedPolygon)(nil),                                                     // 12: google.cloud.visionai.v1.NormalizedPolygon
	(*NormalizedPolyline)(nil),                                                    // 13: google.cloud.visionai.v1.NormalizedPolyline
	(*NormalizedVertex)(nil),                                                      // 14: google.cloud.visionai.v1.NormalizedVertex
	(*AppPlatformMetadata)(nil),                                                   // 15: google.cloud.visionai.v1.AppPlatformMetadata
	(*AppPlatformCloudFunctionRequest)(nil),                                       // 16: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest
	(*AppPlatformCloudFunctionResponse)(nil),                                      // 17: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse
	(*AppPlatformEventBody)(nil),                                                  // 18: google.cloud.visionai.v1.AppPlatformEventBody
	(*PersonalProtectiveEquipmentDetectionOutput_PersonEntity)(nil),               // 19: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonEntity
	(*PersonalProtectiveEquipmentDetectionOutput_PPEEntity)(nil),                  // 20: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEEntity
	(*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox)(nil),      // 21: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox
	(*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox)(nil),        // 22: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox
	(*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox)(nil),           // 23: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox
	(*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson)(nil),             // 24: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson
	(*ObjectDetectionPredictionResult_Entity)(nil),                                // 25: google.cloud.visionai.v1.ObjectDetectionPredictionResult.Entity
	(*ObjectDetectionPredictionResult_IdentifiedBox)(nil),                         // 26: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox
	(*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox)(nil),   // 27: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.NormalizedBoundingBox
	(*VideoActionRecognitionPredictionResult_IdentifiedAction)(nil),               // 28: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.IdentifiedAction
	(*VideoObjectTrackingPredictionResult_BoundingBox)(nil),                       // 29: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.BoundingBox
	(*VideoObjectTrackingPredictionResult_DetectedObject)(nil),                    // 30: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject
	(*VideoClassificationPredictionResult_IdentifiedClassification)(nil),          // 31: google.cloud.visionai.v1.VideoClassificationPredictionResult.IdentifiedClassification
	(*OccupancyCountingPredictionResult_Entity)(nil),                              // 32: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity
	(*OccupancyCountingPredictionResult_IdentifiedBox)(nil),                       // 33: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox
	(*OccupancyCountingPredictionResult_Stats)(nil),                               // 34: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats
	(*OccupancyCountingPredictionResult_TrackInfo)(nil),                           // 35: google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo
	(*OccupancyCountingPredictionResult_DwellTimeInfo)(nil),                       // 36: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo
	(*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox)(nil), // 37: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.NormalizedBoundingBox
	(*OccupancyCountingPredictionResult_Stats_ObjectCount)(nil),                   // 38: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	(*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount)(nil),        // 39: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount
	(*OccupancyCountingPredictionResult_Stats_CrossingLineCount)(nil),             // 40: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount
	(*OccupancyCountingPredictionResult_Stats_ActiveZoneCount)(nil),               // 41: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount
	(*AppPlatformCloudFunctionRequest_StructedInputAnnotation)(nil),               // 42: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation
	(*AppPlatformCloudFunctionResponse_StructedOutputAnnotation)(nil),             // 43: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation
	(*timestamppb.Timestamp)(nil),                                                 // 44: google.protobuf.Timestamp
	(*structpb.ListValue)(nil),                                                    // 45: google.protobuf.ListValue
	(*structpb.Struct)(nil),                                                       // 46: google.protobuf.Struct
}
var file_google_cloud_visionai_v1_annotations_proto_depIdxs = []int32{
	44, // 0: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.current_time:type_name -> google.protobuf.Timestamp
	24, // 1: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.detected_persons:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson
	44, // 2: google.cloud.visionai.v1.ObjectDetectionPredictionResult.current_time:type_name -> google.protobuf.Timestamp
	26, // 3: google.cloud.visionai.v1.ObjectDetectionPredictionResult.identified_boxes:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox
	45, // 4: google.cloud.visionai.v1.ImageObjectDetectionPredictionResult.bboxes:type_name -> google.protobuf.ListValue
	44, // 5: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp
	44, // 6: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp
	28, // 7: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.actions:type_name -> google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.IdentifiedAction
	44, // 8: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp
	44, // 9: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp
	30, // 10: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.objects:type_name -> google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject
	44, // 11: google.cloud.visionai.v1.VideoClassificationPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp
	44, // 12: google.cloud.visionai.v1.VideoClassificationPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp
	31, // 13: google.cloud.visionai.v1.VideoClassificationPredictionResult.classifications:type_name -> google.cloud.visionai.v1.VideoClassificationPredictionResult.IdentifiedClassification
	44, // 14: google.cloud.visionai.v1.OccupancyCountingPredictionResult.current_time:type_name -> google.protobuf.Timestamp
	33, // 15: google.cloud.visionai.v1.OccupancyCountingPredictionResult.identified_boxes:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox
	34, // 16: google.cloud.visionai.v1.OccupancyCountingPredictionResult.stats:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats
	35, // 17: google.cloud.visionai.v1.OccupancyCountingPredictionResult.track_info:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo
	36, // 18: google.cloud.visionai.v1.OccupancyCountingPredictionResult.dwell_time_info:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo
	12, // 19: google.cloud.visionai.v1.StreamAnnotation.active_zone:type_name -> google.cloud.visionai.v1.NormalizedPolygon
	13, // 20: google.cloud.visionai.v1.StreamAnnotation.crossing_line:type_name -> google.cloud.visionai.v1.NormalizedPolyline
	0,  // 21: google.cloud.visionai.v1.StreamAnnotation.type:type_name -> google.cloud.visionai.v1.StreamAnnotationType
	10, // 22: google.cloud.visionai.v1.StreamAnnotations.stream_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation
	14, // 23: google.cloud.visionai.v1.NormalizedPolygon.normalized_vertices:type_name -> google.cloud.visionai.v1.NormalizedVertex
	14, // 24: google.cloud.visionai.v1.NormalizedPolyline.normalized_vertices:type_name -> google.cloud.visionai.v1.NormalizedVertex
	15, // 25: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.app_platform_metadata:type_name -> google.cloud.visionai.v1.AppPlatformMetadata
	42, // 26: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.annotations:type_name -> google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation
	43, // 27: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.annotations:type_name -> google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation
	18, // 28: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.events:type_name -> google.cloud.visionai.v1.AppPlatformEventBody
	46, // 29: google.cloud.visionai.v1.AppPlatformEventBody.payload:type_name -> google.protobuf.Struct
	21, // 30: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox
	19, // 31: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox.person_entity:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonEntity
	21, // 32: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox
	20, // 33: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox.ppe_entity:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEEntity
	22, // 34: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson.detected_person_identified_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox
	23, // 35: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson.detected_ppe_identified_boxes:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox
	27, // 36: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.NormalizedBoundingBox
	25, // 37: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.entity:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.Entity
	29, // 38: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject.bounding_box:type_name -> google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.BoundingBox
	37, // 39: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.NormalizedBoundingBox
	32, // 40: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.entity:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity
	38, // 41: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.full_frame_count:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	40, // 42: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.crossing_line_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount
	41, // 43: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.active_zone_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount
	44, // 44: google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo.start_time:type_name -> google.protobuf.Timestamp
	44, // 45: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo.dwell_start_time:type_name -> google.protobuf.Timestamp
	44, // 46: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo.dwell_end_time:type_name -> google.protobuf.Timestamp
	32, // 47: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount.entity:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity
	44, // 48: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount.start_time:type_name -> google.protobuf.Timestamp
	38, // 49: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount.object_count:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	10, // 50: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.annotation:type_name -> google.cloud.visionai.v1.StreamAnnotation
	38, // 51: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.positive_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	38, // 52: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.negative_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	39, // 53: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.accumulated_positive_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount
	39, // 54: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.accumulated_negative_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount
	10, // 55: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount.annotation:type_name -> google.cloud.visionai.v1.StreamAnnotation
	38, // 56: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount.counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount
	46, // 57: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation.annotation:type_name -> google.protobuf.Struct
	46, // 58: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation.annotation:type_name -> google.protobuf.Struct
	59, // [59:59] is the sub-list for method output_type
	59, // [59:59] is the sub-list for method input_type
	59, // [59:59] is the sub-list for extension type_name
	59, // [59:59] is the sub-list for extension extendee
	0,  // [0:59] is the sub-list for field type_name
}

func init() { file_google_cloud_visionai_v1_annotations_proto_init() }
func file_google_cloud_visionai_v1_annotations_proto_init() {
	if File_google_cloud_visionai_v1_annotations_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ObjectDetectionPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImageObjectDetectionPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClassificationPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImageSegmentationPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoActionRecognitionPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoObjectTrackingPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoClassificationPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamAnnotations); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalizedPolygon); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalizedPolyline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalizedVertex); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformCloudFunctionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformCloudFunctionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformEventBody); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PersonEntity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PPEEntity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ObjectDetectionPredictionResult_Entity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ObjectDetectionPredictionResult_IdentifiedBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoActionRecognitionPredictionResult_IdentifiedAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoObjectTrackingPredictionResult_BoundingBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoObjectTrackingPredictionResult_DetectedObject); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoClassificationPredictionResult_IdentifiedClassification); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Entity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_IdentifiedBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Stats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_TrackInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_DwellTimeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Stats_ObjectCount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Stats_CrossingLineCount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountingPredictionResult_Stats_ActiveZoneCount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformCloudFunctionRequest_StructedInputAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_annotations_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AppPlatformCloudFunctionResponse_StructedOutputAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_google_cloud_visionai_v1_annotations_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*StreamAnnotation_ActiveZone)(nil),
		(*StreamAnnotation_CrossingLine)(nil),
	}
	file_google_cloud_visionai_v1_annotations_proto_msgTypes[23].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_visionai_v1_annotations_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   43,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_cloud_visionai_v1_annotations_proto_goTypes,
		DependencyIndexes: file_google_cloud_visionai_v1_annotations_proto_depIdxs,
		EnumInfos:         file_google_cloud_visionai_v1_annotations_proto_enumTypes,
		MessageInfos:      file_google_cloud_visionai_v1_annotations_proto_msgTypes,
	}.Build()
	File_google_cloud_visionai_v1_annotations_proto = out.File
	file_google_cloud_visionai_v1_annotations_proto_rawDesc = nil
	file_google_cloud_visionai_v1_annotations_proto_goTypes = nil
	file_google_cloud_visionai_v1_annotations_proto_depIdxs = nil
}
