// Code generated by protoc-gen-go. DO NOT EDIT.
// source: vision.proto

package offboardvisiongrpc2

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

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

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

type FaceAttribute int32

const (
	FaceAttribute_AGE         FaceAttribute = 0
	FaceAttribute_GENDER      FaceAttribute = 1
	FaceAttribute_HEAD_POSE   FaceAttribute = 2
	FaceAttribute_SMILE       FaceAttribute = 3
	FaceAttribute_FACIAL_HAIR FaceAttribute = 4
	FaceAttribute_GLASSES     FaceAttribute = 5
	FaceAttribute_EMOTION     FaceAttribute = 6
	FaceAttribute_HAIR        FaceAttribute = 7
	FaceAttribute_MAKEUP      FaceAttribute = 8
	FaceAttribute_OCCLUSION   FaceAttribute = 9
	FaceAttribute_ACCESSORIES FaceAttribute = 10
	FaceAttribute_BLUR        FaceAttribute = 11
	FaceAttribute_EXPOSURE    FaceAttribute = 12
	FaceAttribute_NOISE       FaceAttribute = 13
)

var FaceAttribute_name = map[int32]string{
	0:  "AGE",
	1:  "GENDER",
	2:  "HEAD_POSE",
	3:  "SMILE",
	4:  "FACIAL_HAIR",
	5:  "GLASSES",
	6:  "EMOTION",
	7:  "HAIR",
	8:  "MAKEUP",
	9:  "OCCLUSION",
	10: "ACCESSORIES",
	11: "BLUR",
	12: "EXPOSURE",
	13: "NOISE",
}
var FaceAttribute_value = map[string]int32{
	"AGE":         0,
	"GENDER":      1,
	"HEAD_POSE":   2,
	"SMILE":       3,
	"FACIAL_HAIR": 4,
	"GLASSES":     5,
	"EMOTION":     6,
	"HAIR":        7,
	"MAKEUP":      8,
	"OCCLUSION":   9,
	"ACCESSORIES": 10,
	"BLUR":        11,
	"EXPOSURE":    12,
	"NOISE":       13,
}

func (x FaceAttribute) String() string {
	return proto.EnumName(FaceAttribute_name, int32(x))
}
func (FaceAttribute) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{0}
}

type VisualFeature int32

const (
	VisualFeature_ADULT       VisualFeature = 0
	VisualFeature_CATEGORIES  VisualFeature = 1
	VisualFeature_COLOR       VisualFeature = 2
	VisualFeature_DESCRIPTION VisualFeature = 3
	VisualFeature_FACES       VisualFeature = 4
	VisualFeature_IMAGE_TYPE  VisualFeature = 5
	VisualFeature_OBJECTS     VisualFeature = 6
	VisualFeature_TAGS        VisualFeature = 7
)

var VisualFeature_name = map[int32]string{
	0: "ADULT",
	1: "CATEGORIES",
	2: "COLOR",
	3: "DESCRIPTION",
	4: "FACES",
	5: "IMAGE_TYPE",
	6: "OBJECTS",
	7: "TAGS",
}
var VisualFeature_value = map[string]int32{
	"ADULT":       0,
	"CATEGORIES":  1,
	"COLOR":       2,
	"DESCRIPTION": 3,
	"FACES":       4,
	"IMAGE_TYPE":  5,
	"OBJECTS":     6,
	"TAGS":        7,
}

func (x VisualFeature) String() string {
	return proto.EnumName(VisualFeature_name, int32(x))
}
func (VisualFeature) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{1}
}

type ImageFormat int32

const (
	ImageFormat_JPG ImageFormat = 0
	ImageFormat_PNG ImageFormat = 1
	ImageFormat_GIF ImageFormat = 2
	ImageFormat_GMP ImageFormat = 3
)

var ImageFormat_name = map[int32]string{
	0: "JPG",
	1: "PNG",
	2: "GIF",
	3: "GMP",
}
var ImageFormat_value = map[string]int32{
	"JPG": 0,
	"PNG": 1,
	"GIF": 2,
	"GMP": 3,
}

func (x ImageFormat) String() string {
	return proto.EnumName(ImageFormat_name, int32(x))
}
func (ImageFormat) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{2}
}

// for CreatePerson API
type PersonStatus int32

const (
	PersonStatus_NONE         PersonStatus = 0
	PersonStatus_CREATED      PersonStatus = 1
	PersonStatus_DELETED      PersonStatus = 2
	PersonStatus_ADDED_FACE   PersonStatus = 3
	PersonStatus_DELETED_FACE PersonStatus = 4
)

var PersonStatus_name = map[int32]string{
	0: "NONE",
	1: "CREATED",
	2: "DELETED",
	3: "ADDED_FACE",
	4: "DELETED_FACE",
}
var PersonStatus_value = map[string]int32{
	"NONE":         0,
	"CREATED":      1,
	"DELETED":      2,
	"ADDED_FACE":   3,
	"DELETED_FACE": 4,
}

func (x PersonStatus) String() string {
	return proto.EnumName(PersonStatus_name, int32(x))
}
func (PersonStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{3}
}

type PersonAction int32

const (
	PersonAction_CREATE   PersonAction = 0
	PersonAction_ADD_FACE PersonAction = 1
	PersonAction_GET      PersonAction = 2
	PersonAction_LIST     PersonAction = 3
	PersonAction_DELETE   PersonAction = 4
)

var PersonAction_name = map[int32]string{
	0: "CREATE",
	1: "ADD_FACE",
	2: "GET",
	3: "LIST",
	4: "DELETE",
}
var PersonAction_value = map[string]int32{
	"CREATE":   0,
	"ADD_FACE": 1,
	"GET":      2,
	"LIST":     3,
	"DELETE":   4,
}

func (x PersonAction) String() string {
	return proto.EnumName(PersonAction_name, int32(x))
}
func (PersonAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{4}
}

type ImageConfig struct {
	// group to search for person.
	GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
	// max candidates to return for face to identify. [1, 100], default=10
	MaxCandidates int32 `protobuf:"varint,2,opt,name=max_candidates,json=maxCandidates" json:"max_candidates,omitempty"`
	// confidence for identify person, [0, 1]
	ConfidenceThreshold float64 `protobuf:"fixed64,3,opt,name=confidence_threshold,json=confidenceThreshold" json:"confidence_threshold,omitempty"`
	// list of face attributes to analyze
	// default: AGE, GENDER, HAIR, EMOTION
	FaceAttributes []FaceAttribute `protobuf:"varint,4,rep,packed,name=face_attributes,json=faceAttributes,enum=chippergrpc2.FaceAttribute" json:"face_attributes,omitempty"`
	// indicate whether to return landmarks (like nose position) for detected faces
	FaceLandmarks bool `protobuf:"varint,5,opt,name=face_landmarks,json=faceLandmarks" json:"face_landmarks,omitempty"`
	// visual features to return.
	// default: "CATEGORIES", "DESCRIPTION", "FACES" and "TAGS"
	VisualFeatures       []VisualFeature `protobuf:"varint,6,rep,packed,name=visual_features,json=visualFeatures,enum=chippergrpc2.VisualFeature" json:"visual_features,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ImageConfig) Reset()         { *m = ImageConfig{} }
func (m *ImageConfig) String() string { return proto.CompactTextString(m) }
func (*ImageConfig) ProtoMessage()    {}
func (*ImageConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{0}
}
func (m *ImageConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageConfig.Unmarshal(m, b)
}
func (m *ImageConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageConfig.Marshal(b, m, deterministic)
}
func (dst *ImageConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageConfig.Merge(dst, src)
}
func (m *ImageConfig) XXX_Size() int {
	return xxx_messageInfo_ImageConfig.Size(m)
}
func (m *ImageConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ImageConfig proto.InternalMessageInfo

func (m *ImageConfig) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *ImageConfig) GetMaxCandidates() int32 {
	if m != nil {
		return m.MaxCandidates
	}
	return 0
}

func (m *ImageConfig) GetConfidenceThreshold() float64 {
	if m != nil {
		return m.ConfidenceThreshold
	}
	return 0
}

func (m *ImageConfig) GetFaceAttributes() []FaceAttribute {
	if m != nil {
		return m.FaceAttributes
	}
	return nil
}

func (m *ImageConfig) GetFaceLandmarks() bool {
	if m != nil {
		return m.FaceLandmarks
	}
	return false
}

func (m *ImageConfig) GetVisualFeatures() []VisualFeature {
	if m != nil {
		return m.VisualFeatures
	}
	return nil
}

type ImageRequest struct {
	// Required. unique identifier
	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
	// Required. robot or device identifier
	DeviceId string `protobuf:"bytes,2,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
	// Required. timestamp in milliseconds
	TimestampMs uint32 `protobuf:"varint,3,opt,name=timestamp_ms,json=timestampMs" json:"timestamp_ms,omitempty"`
	// Required. lang for labels, default should be "en"
	Lang string `protobuf:"bytes,4,opt,name=lang" json:"lang,omitempty"`
	// Optional. payload for image data
	ImageData []byte `protobuf:"bytes,5,opt,name=image_data,json=imageData,proto3" json:"image_data,omitempty"`
	// Optional. payload image format.
	// Only supports: JPEG, PNG, GIF, BMP format, size must be less than 4MB, dimensions must be at least 50 x 50
	Format ImageFormat `protobuf:"varint,6,opt,name=format,enum=chippergrpc2.ImageFormat" json:"format,omitempty"`
	// Optional. Mode to run to be handled by server.
	Modes []string `protobuf:"bytes,7,rep,name=modes" json:"modes,omitempty"`
	// Optional. Pass an image url to analyze
	ImageUrl string `protobuf:"bytes,8,opt,name=image_url,json=imageUrl" json:"image_url,omitempty"`
	// Optional. configs for various modes. If empty, use server defaults
	Configs              *ImageConfig `protobuf:"bytes,9,opt,name=configs" json:"configs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *ImageRequest) Reset()         { *m = ImageRequest{} }
func (m *ImageRequest) String() string { return proto.CompactTextString(m) }
func (*ImageRequest) ProtoMessage()    {}
func (*ImageRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{1}
}
func (m *ImageRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageRequest.Unmarshal(m, b)
}
func (m *ImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageRequest.Marshal(b, m, deterministic)
}
func (dst *ImageRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageRequest.Merge(dst, src)
}
func (m *ImageRequest) XXX_Size() int {
	return xxx_messageInfo_ImageRequest.Size(m)
}
func (m *ImageRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ImageRequest proto.InternalMessageInfo

func (m *ImageRequest) GetSession() string {
	if m != nil {
		return m.Session
	}
	return ""
}

func (m *ImageRequest) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

func (m *ImageRequest) GetTimestampMs() uint32 {
	if m != nil {
		return m.TimestampMs
	}
	return 0
}

func (m *ImageRequest) GetLang() string {
	if m != nil {
		return m.Lang
	}
	return ""
}

func (m *ImageRequest) GetImageData() []byte {
	if m != nil {
		return m.ImageData
	}
	return nil
}

func (m *ImageRequest) GetFormat() ImageFormat {
	if m != nil {
		return m.Format
	}
	return ImageFormat_JPG
}

func (m *ImageRequest) GetModes() []string {
	if m != nil {
		return m.Modes
	}
	return nil
}

func (m *ImageRequest) GetImageUrl() string {
	if m != nil {
		return m.ImageUrl
	}
	return ""
}

func (m *ImageRequest) GetConfigs() *ImageConfig {
	if m != nil {
		return m.Configs
	}
	return nil
}

type ImageResponse struct {
	// Required. unique identifier for request
	Session string `protobuf:"bytes,1,opt,name=session" json:"session,omitempty"`
	// Required. robot or device identifier
	DeviceId string `protobuf:"bytes,2,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
	// Required. timetamp in milliseconds
	TimestampMs uint32 `protobuf:"varint,3,opt,name=timestamp_ms,json=timestampMs" json:"timestamp_ms,omitempty"`
	// Required. raw json string of output from image analyzer
	RawResult            string   `protobuf:"bytes,4,opt,name=raw_result,json=rawResult" json:"raw_result,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImageResponse) Reset()         { *m = ImageResponse{} }
func (m *ImageResponse) String() string { return proto.CompactTextString(m) }
func (*ImageResponse) ProtoMessage()    {}
func (*ImageResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{2}
}
func (m *ImageResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageResponse.Unmarshal(m, b)
}
func (m *ImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageResponse.Marshal(b, m, deterministic)
}
func (dst *ImageResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageResponse.Merge(dst, src)
}
func (m *ImageResponse) XXX_Size() int {
	return xxx_messageInfo_ImageResponse.Size(m)
}
func (m *ImageResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ImageResponse proto.InternalMessageInfo

func (m *ImageResponse) GetSession() string {
	if m != nil {
		return m.Session
	}
	return ""
}

func (m *ImageResponse) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

func (m *ImageResponse) GetTimestampMs() uint32 {
	if m != nil {
		return m.TimestampMs
	}
	return 0
}

func (m *ImageResponse) GetRawResult() string {
	if m != nil {
		return m.RawResult
	}
	return ""
}

type PersonRequest struct {
	// Optional. PersonGroup Name (used to create the group) to add this person
	// if missing, server will use the default group
	GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName" json:"group_name,omitempty"`
	// task to do
	Action PersonAction `protobuf:"varint,2,opt,name=action,enum=chippergrpc2.PersonAction" json:"action,omitempty"`
	// Required for CREATE, ADD_FACE, GET actions.
	PersonName string `protobuf:"bytes,3,opt,name=person_name,json=personName" json:"person_name,omitempty"`
	// Required for CREATE and ADD_FACE action.
	// payload for face image data. assume that there's only one face in the image
	FaceData []byte `protobuf:"bytes,4,opt,name=face_data,json=faceData,proto3" json:"face_data,omitempty"`
	// Optional. for CREATE action. Description of this person
	Description          string   `protobuf:"bytes,16,opt,name=description" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PersonRequest) Reset()         { *m = PersonRequest{} }
func (m *PersonRequest) String() string { return proto.CompactTextString(m) }
func (*PersonRequest) ProtoMessage()    {}
func (*PersonRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{3}
}
func (m *PersonRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonRequest.Unmarshal(m, b)
}
func (m *PersonRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonRequest.Marshal(b, m, deterministic)
}
func (dst *PersonRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonRequest.Merge(dst, src)
}
func (m *PersonRequest) XXX_Size() int {
	return xxx_messageInfo_PersonRequest.Size(m)
}
func (m *PersonRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonRequest.DiscardUnknown(m)
}

var xxx_messageInfo_PersonRequest proto.InternalMessageInfo

func (m *PersonRequest) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *PersonRequest) GetAction() PersonAction {
	if m != nil {
		return m.Action
	}
	return PersonAction_CREATE
}

func (m *PersonRequest) GetPersonName() string {
	if m != nil {
		return m.PersonName
	}
	return ""
}

func (m *PersonRequest) GetFaceData() []byte {
	if m != nil {
		return m.FaceData
	}
	return nil
}

func (m *PersonRequest) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

type Person struct {
	PersonId string `protobuf:"bytes,1,opt,name=person_id,json=personId" json:"person_id,omitempty"`
	// Required. name of person from the request
	PersonName string `protobuf:"bytes,2,opt,name=person_name,json=personName" json:"person_name,omitempty"`
	// Optional. Description of this person
	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
	// Optional. face_id of face image used to add this person
	PersistedFaceId      []string     `protobuf:"bytes,4,rep,name=persisted_face_id,json=persistedFaceId" json:"persisted_face_id,omitempty"`
	Status               PersonStatus `protobuf:"varint,5,opt,name=status,enum=chippergrpc2.PersonStatus" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *Person) Reset()         { *m = Person{} }
func (m *Person) String() string { return proto.CompactTextString(m) }
func (*Person) ProtoMessage()    {}
func (*Person) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{4}
}
func (m *Person) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Person.Unmarshal(m, b)
}
func (m *Person) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Person.Marshal(b, m, deterministic)
}
func (dst *Person) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Person.Merge(dst, src)
}
func (m *Person) XXX_Size() int {
	return xxx_messageInfo_Person.Size(m)
}
func (m *Person) XXX_DiscardUnknown() {
	xxx_messageInfo_Person.DiscardUnknown(m)
}

var xxx_messageInfo_Person proto.InternalMessageInfo

func (m *Person) GetPersonId() string {
	if m != nil {
		return m.PersonId
	}
	return ""
}

func (m *Person) GetPersonName() string {
	if m != nil {
		return m.PersonName
	}
	return ""
}

func (m *Person) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Person) GetPersistedFaceId() []string {
	if m != nil {
		return m.PersistedFaceId
	}
	return nil
}

func (m *Person) GetStatus() PersonStatus {
	if m != nil {
		return m.Status
	}
	return PersonStatus_NONE
}

type PersonResponse struct {
	// group that action is performed on
	GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
	// array of Person. Except for list-action, there should only be one entry
	Persons              []*Person `protobuf:"bytes,2,rep,name=persons" json:"persons,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *PersonResponse) Reset()         { *m = PersonResponse{} }
func (m *PersonResponse) String() string { return proto.CompactTextString(m) }
func (*PersonResponse) ProtoMessage()    {}
func (*PersonResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{5}
}
func (m *PersonResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonResponse.Unmarshal(m, b)
}
func (m *PersonResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonResponse.Marshal(b, m, deterministic)
}
func (dst *PersonResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonResponse.Merge(dst, src)
}
func (m *PersonResponse) XXX_Size() int {
	return xxx_messageInfo_PersonResponse.Size(m)
}
func (m *PersonResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonResponse.DiscardUnknown(m)
}

var xxx_messageInfo_PersonResponse proto.InternalMessageInfo

func (m *PersonResponse) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *PersonResponse) GetPersons() []*Person {
	if m != nil {
		return m.Persons
	}
	return nil
}

// Person Group related
type PersonGroup struct {
	// Required. Name for the group.
	// a string composed by numbers, English letters in lower case, '-', '_', and no longer than 64 characters
	GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName" json:"group_name,omitempty"`
	// Optional. Description for this group
	UserData             string   `protobuf:"bytes,2,opt,name=user_data,json=userData" json:"user_data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PersonGroup) Reset()         { *m = PersonGroup{} }
func (m *PersonGroup) String() string { return proto.CompactTextString(m) }
func (*PersonGroup) ProtoMessage()    {}
func (*PersonGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{6}
}
func (m *PersonGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonGroup.Unmarshal(m, b)
}
func (m *PersonGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonGroup.Marshal(b, m, deterministic)
}
func (dst *PersonGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonGroup.Merge(dst, src)
}
func (m *PersonGroup) XXX_Size() int {
	return xxx_messageInfo_PersonGroup.Size(m)
}
func (m *PersonGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonGroup.DiscardUnknown(m)
}

var xxx_messageInfo_PersonGroup proto.InternalMessageInfo

func (m *PersonGroup) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *PersonGroup) GetUserData() string {
	if m != nil {
		return m.UserData
	}
	return ""
}

type PersonGroupResponse struct {
	Success              bool     `protobuf:"varint,1,opt,name=success" json:"success,omitempty"`
	GroupName            string   `protobuf:"bytes,3,opt,name=group_name,json=groupName" json:"group_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PersonGroupResponse) Reset()         { *m = PersonGroupResponse{} }
func (m *PersonGroupResponse) String() string { return proto.CompactTextString(m) }
func (*PersonGroupResponse) ProtoMessage()    {}
func (*PersonGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{7}
}
func (m *PersonGroupResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonGroupResponse.Unmarshal(m, b)
}
func (m *PersonGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonGroupResponse.Marshal(b, m, deterministic)
}
func (dst *PersonGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonGroupResponse.Merge(dst, src)
}
func (m *PersonGroupResponse) XXX_Size() int {
	return xxx_messageInfo_PersonGroupResponse.Size(m)
}
func (m *PersonGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_PersonGroupResponse proto.InternalMessageInfo

func (m *PersonGroupResponse) GetSuccess() bool {
	if m != nil {
		return m.Success
	}
	return false
}

func (m *PersonGroupResponse) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

type PersonGroupList struct {
	Groups               []*PersonGroup `protobuf:"bytes,1,rep,name=groups" json:"groups,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *PersonGroupList) Reset()         { *m = PersonGroupList{} }
func (m *PersonGroupList) String() string { return proto.CompactTextString(m) }
func (*PersonGroupList) ProtoMessage()    {}
func (*PersonGroupList) Descriptor() ([]byte, []int) {
	return fileDescriptor_vision_68b7dc027c11d142, []int{8}
}
func (m *PersonGroupList) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonGroupList.Unmarshal(m, b)
}
func (m *PersonGroupList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonGroupList.Marshal(b, m, deterministic)
}
func (dst *PersonGroupList) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonGroupList.Merge(dst, src)
}
func (m *PersonGroupList) XXX_Size() int {
	return xxx_messageInfo_PersonGroupList.Size(m)
}
func (m *PersonGroupList) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonGroupList.DiscardUnknown(m)
}

var xxx_messageInfo_PersonGroupList proto.InternalMessageInfo

func (m *PersonGroupList) GetGroups() []*PersonGroup {
	if m != nil {
		return m.Groups
	}
	return nil
}

func init() {
	proto.RegisterType((*ImageConfig)(nil), "chippergrpc2.ImageConfig")
	proto.RegisterType((*ImageRequest)(nil), "chippergrpc2.ImageRequest")
	proto.RegisterType((*ImageResponse)(nil), "chippergrpc2.ImageResponse")
	proto.RegisterType((*PersonRequest)(nil), "chippergrpc2.PersonRequest")
	proto.RegisterType((*Person)(nil), "chippergrpc2.Person")
	proto.RegisterType((*PersonResponse)(nil), "chippergrpc2.PersonResponse")
	proto.RegisterType((*PersonGroup)(nil), "chippergrpc2.PersonGroup")
	proto.RegisterType((*PersonGroupResponse)(nil), "chippergrpc2.PersonGroupResponse")
	proto.RegisterType((*PersonGroupList)(nil), "chippergrpc2.PersonGroupList")
	proto.RegisterEnum("chippergrpc2.FaceAttribute", FaceAttribute_name, FaceAttribute_value)
	proto.RegisterEnum("chippergrpc2.VisualFeature", VisualFeature_name, VisualFeature_value)
	proto.RegisterEnum("chippergrpc2.ImageFormat", ImageFormat_name, ImageFormat_value)
	proto.RegisterEnum("chippergrpc2.PersonStatus", PersonStatus_name, PersonStatus_value)
	proto.RegisterEnum("chippergrpc2.PersonAction", PersonAction_name, PersonAction_value)
}

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

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

// Client API for OffboardVisionGrpc service

type OffboardVisionGrpcClient interface {
	// main elemental-box image demo
	AnalyzeImage(ctx context.Context, in *ImageRequest, opts ...grpc.CallOption) (*ImageResponse, error)
}

type offboardVisionGrpcClient struct {
	cc *grpc.ClientConn
}

func NewOffboardVisionGrpcClient(cc *grpc.ClientConn) OffboardVisionGrpcClient {
	return &offboardVisionGrpcClient{cc}
}

func (c *offboardVisionGrpcClient) AnalyzeImage(ctx context.Context, in *ImageRequest, opts ...grpc.CallOption) (*ImageResponse, error) {
	out := new(ImageResponse)
	err := grpc.Invoke(ctx, "/chippergrpc2.OffboardVisionGrpc/AnalyzeImage", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for OffboardVisionGrpc service

type OffboardVisionGrpcServer interface {
	// main elemental-box image demo
	AnalyzeImage(context.Context, *ImageRequest) (*ImageResponse, error)
}

func RegisterOffboardVisionGrpcServer(s *grpc.Server, srv OffboardVisionGrpcServer) {
	s.RegisterService(&_OffboardVisionGrpc_serviceDesc, srv)
}

func _OffboardVisionGrpc_AnalyzeImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ImageRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OffboardVisionGrpcServer).AnalyzeImage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/chippergrpc2.OffboardVisionGrpc/AnalyzeImage",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OffboardVisionGrpcServer).AnalyzeImage(ctx, req.(*ImageRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _OffboardVisionGrpc_serviceDesc = grpc.ServiceDesc{
	ServiceName: "chippergrpc2.OffboardVisionGrpc",
	HandlerType: (*OffboardVisionGrpcServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "AnalyzeImage",
			Handler:    _OffboardVisionGrpc_AnalyzeImage_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "vision.proto",
}

func init() { proto.RegisterFile("vision.proto", fileDescriptor_vision_68b7dc027c11d142) }

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