// 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/platform.proto

package visionai

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

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

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

// All the supported model types in Vision AI App Platform.
type ModelType int32

const (
	// Processor Type UNSPECIFIED.
	ModelType_MODEL_TYPE_UNSPECIFIED ModelType = 0
	// Model Type Image Classification.
	ModelType_IMAGE_CLASSIFICATION ModelType = 1
	// Model Type Object Detection.
	ModelType_OBJECT_DETECTION ModelType = 2
	// Model Type Video Classification.
	ModelType_VIDEO_CLASSIFICATION ModelType = 3
	// Model Type Object Tracking.
	ModelType_VIDEO_OBJECT_TRACKING ModelType = 4
	// Model Type Action Recognition.
	ModelType_VIDEO_ACTION_RECOGNITION ModelType = 5
	// Model Type Occupancy Counting.
	ModelType_OCCUPANCY_COUNTING ModelType = 6
	// Model Type Person Blur.
	ModelType_PERSON_BLUR ModelType = 7
	// Model Type Vertex Custom.
	ModelType_VERTEX_CUSTOM ModelType = 8
)

// Enum value maps for ModelType.
var (
	ModelType_name = map[int32]string{
		0: "MODEL_TYPE_UNSPECIFIED",
		1: "IMAGE_CLASSIFICATION",
		2: "OBJECT_DETECTION",
		3: "VIDEO_CLASSIFICATION",
		4: "VIDEO_OBJECT_TRACKING",
		5: "VIDEO_ACTION_RECOGNITION",
		6: "OCCUPANCY_COUNTING",
		7: "PERSON_BLUR",
		8: "VERTEX_CUSTOM",
	}
	ModelType_value = map[string]int32{
		"MODEL_TYPE_UNSPECIFIED":   0,
		"IMAGE_CLASSIFICATION":     1,
		"OBJECT_DETECTION":         2,
		"VIDEO_CLASSIFICATION":     3,
		"VIDEO_OBJECT_TRACKING":    4,
		"VIDEO_ACTION_RECOGNITION": 5,
		"OCCUPANCY_COUNTING":       6,
		"PERSON_BLUR":              7,
		"VERTEX_CUSTOM":            8,
	}
)

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

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

func (ModelType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[0].Descriptor()
}

func (ModelType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[0]
}

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

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

// Represents a hardware accelerator type.
type AcceleratorType int32

const (
	// Unspecified accelerator type, which means no accelerator.
	AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED AcceleratorType = 0
	// Nvidia Tesla K80 GPU.
	AcceleratorType_NVIDIA_TESLA_K80 AcceleratorType = 1
	// Nvidia Tesla P100 GPU.
	AcceleratorType_NVIDIA_TESLA_P100 AcceleratorType = 2
	// Nvidia Tesla V100 GPU.
	AcceleratorType_NVIDIA_TESLA_V100 AcceleratorType = 3
	// Nvidia Tesla P4 GPU.
	AcceleratorType_NVIDIA_TESLA_P4 AcceleratorType = 4
	// Nvidia Tesla T4 GPU.
	AcceleratorType_NVIDIA_TESLA_T4 AcceleratorType = 5
	// Nvidia Tesla A100 GPU.
	AcceleratorType_NVIDIA_TESLA_A100 AcceleratorType = 8
	// TPU v2.
	AcceleratorType_TPU_V2 AcceleratorType = 6
	// TPU v3.
	AcceleratorType_TPU_V3 AcceleratorType = 7
)

// Enum value maps for AcceleratorType.
var (
	AcceleratorType_name = map[int32]string{
		0: "ACCELERATOR_TYPE_UNSPECIFIED",
		1: "NVIDIA_TESLA_K80",
		2: "NVIDIA_TESLA_P100",
		3: "NVIDIA_TESLA_V100",
		4: "NVIDIA_TESLA_P4",
		5: "NVIDIA_TESLA_T4",
		8: "NVIDIA_TESLA_A100",
		6: "TPU_V2",
		7: "TPU_V3",
	}
	AcceleratorType_value = map[string]int32{
		"ACCELERATOR_TYPE_UNSPECIFIED": 0,
		"NVIDIA_TESLA_K80":             1,
		"NVIDIA_TESLA_P100":            2,
		"NVIDIA_TESLA_V100":            3,
		"NVIDIA_TESLA_P4":              4,
		"NVIDIA_TESLA_T4":              5,
		"NVIDIA_TESLA_A100":            8,
		"TPU_V2":                       6,
		"TPU_V3":                       7,
	}
)

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

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

func (AcceleratorType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[1].Descriptor()
}

func (AcceleratorType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[1]
}

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

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

// State of the Application
type Application_State int32

const (
	// The default value. This value is used if the state is omitted.
	Application_STATE_UNSPECIFIED Application_State = 0
	// State CREATED.
	Application_CREATED Application_State = 1
	// State DEPLOYING.
	Application_DEPLOYING Application_State = 2
	// State DEPLOYED.
	Application_DEPLOYED Application_State = 3
	// State UNDEPLOYING.
	Application_UNDEPLOYING Application_State = 4
	// State DELETED.
	Application_DELETED Application_State = 5
	// State ERROR.
	Application_ERROR Application_State = 6
	// State CREATING.
	Application_CREATING Application_State = 7
	// State Updating.
	Application_UPDATING Application_State = 8
	// State Deleting.
	Application_DELETING Application_State = 9
	// State Fixing.
	Application_FIXING Application_State = 10
)

// Enum value maps for Application_State.
var (
	Application_State_name = map[int32]string{
		0:  "STATE_UNSPECIFIED",
		1:  "CREATED",
		2:  "DEPLOYING",
		3:  "DEPLOYED",
		4:  "UNDEPLOYING",
		5:  "DELETED",
		6:  "ERROR",
		7:  "CREATING",
		8:  "UPDATING",
		9:  "DELETING",
		10: "FIXING",
	}
	Application_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"CREATED":           1,
		"DEPLOYING":         2,
		"DEPLOYED":          3,
		"UNDEPLOYING":       4,
		"DELETED":           5,
		"ERROR":             6,
		"CREATING":          7,
		"UPDATING":          8,
		"DELETING":          9,
		"FIXING":            10,
	}
)

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

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

func (Application_State) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[2].Descriptor()
}

func (Application_State) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[2]
}

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

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

// State of the Instance
type Instance_State int32

const (
	// The default value. This value is used if the state is omitted.
	Instance_STATE_UNSPECIFIED Instance_State = 0
	// State CREATING.
	Instance_CREATING Instance_State = 1
	// State CREATED.
	Instance_CREATED Instance_State = 2
	// State DEPLOYING.
	Instance_DEPLOYING Instance_State = 3
	// State DEPLOYED.
	Instance_DEPLOYED Instance_State = 4
	// State UNDEPLOYING.
	Instance_UNDEPLOYING Instance_State = 5
	// State DELETED.
	Instance_DELETED Instance_State = 6
	// State ERROR.
	Instance_ERROR Instance_State = 7
	// State Updating
	Instance_UPDATING Instance_State = 8
	// State Deleting.
	Instance_DELETING Instance_State = 9
	// State Fixing.
	Instance_FIXING Instance_State = 10
)

// Enum value maps for Instance_State.
var (
	Instance_State_name = map[int32]string{
		0:  "STATE_UNSPECIFIED",
		1:  "CREATING",
		2:  "CREATED",
		3:  "DEPLOYING",
		4:  "DEPLOYED",
		5:  "UNDEPLOYING",
		6:  "DELETED",
		7:  "ERROR",
		8:  "UPDATING",
		9:  "DELETING",
		10: "FIXING",
	}
	Instance_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"CREATING":          1,
		"CREATED":           2,
		"DEPLOYING":         3,
		"DEPLOYED":          4,
		"UNDEPLOYING":       5,
		"DELETED":           6,
		"ERROR":             7,
		"UPDATING":          8,
		"DELETING":          9,
		"FIXING":            10,
	}
)

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

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

func (Instance_State) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[3].Descriptor()
}

func (Instance_State) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[3]
}

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

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

// Type
type Processor_ProcessorType int32

const (
	// Processor Type UNSPECIFIED.
	Processor_PROCESSOR_TYPE_UNSPECIFIED Processor_ProcessorType = 0
	// Processor Type PRETRAINED.
	// Pretrained processor is developed by Vision AI App Platform with
	// state-of-the-art vision data processing functionality, like occupancy
	// counting or person blur. Pretrained processor is usually publicly
	// available.
	Processor_PRETRAINED Processor_ProcessorType = 1
	// Processor Type CUSTOM.
	// Custom processors are specialized processors which are either uploaded by
	// customers or imported from other GCP platform (for example Vertex AI).
	// Custom processor is only visible to the creator.
	Processor_CUSTOM Processor_ProcessorType = 2
	// Processor Type CONNECTOR.
	// Connector processors are special processors which perform I/O for the
	// application, they do not processing the data but either deliver the data
	// to other processors or receive data from other processors.
	Processor_CONNECTOR Processor_ProcessorType = 3
)

// Enum value maps for Processor_ProcessorType.
var (
	Processor_ProcessorType_name = map[int32]string{
		0: "PROCESSOR_TYPE_UNSPECIFIED",
		1: "PRETRAINED",
		2: "CUSTOM",
		3: "CONNECTOR",
	}
	Processor_ProcessorType_value = map[string]int32{
		"PROCESSOR_TYPE_UNSPECIFIED": 0,
		"PRETRAINED":                 1,
		"CUSTOM":                     2,
		"CONNECTOR":                  3,
	}
)

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

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

func (Processor_ProcessorType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[4].Descriptor()
}

func (Processor_ProcessorType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[4]
}

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

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

type Processor_ProcessorState int32

const (
	// Unspecified Processor state.
	Processor_PROCESSOR_STATE_UNSPECIFIED Processor_ProcessorState = 0
	// Processor is being created (not ready for use).
	Processor_CREATING Processor_ProcessorState = 1
	// Processor is and ready for use.
	Processor_ACTIVE Processor_ProcessorState = 2
	// Processor is being deleted (not ready for use).
	Processor_DELETING Processor_ProcessorState = 3
	// Processor deleted or creation failed .
	Processor_FAILED Processor_ProcessorState = 4
)

// Enum value maps for Processor_ProcessorState.
var (
	Processor_ProcessorState_name = map[int32]string{
		0: "PROCESSOR_STATE_UNSPECIFIED",
		1: "CREATING",
		2: "ACTIVE",
		3: "DELETING",
		4: "FAILED",
	}
	Processor_ProcessorState_value = map[string]int32{
		"PROCESSOR_STATE_UNSPECIFIED": 0,
		"CREATING":                    1,
		"ACTIVE":                      2,
		"DELETING":                    3,
		"FAILED":                      4,
	}
)

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

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

func (Processor_ProcessorState) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[5].Descriptor()
}

func (Processor_ProcessorState) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[5]
}

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

// Deprecated: Use Processor_ProcessorState.Descriptor instead.
func (Processor_ProcessorState) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{46, 1}
}

// High level data types supported by the processor.
type ProcessorIOSpec_DataType int32

const (
	// The default value of DataType.
	ProcessorIOSpec_DATA_TYPE_UNSPECIFIED ProcessorIOSpec_DataType = 0
	// Video data type like H264.
	ProcessorIOSpec_VIDEO ProcessorIOSpec_DataType = 1
	// Protobuf data type, usually used for general data blob.
	ProcessorIOSpec_PROTO ProcessorIOSpec_DataType = 2
)

// Enum value maps for ProcessorIOSpec_DataType.
var (
	ProcessorIOSpec_DataType_name = map[int32]string{
		0: "DATA_TYPE_UNSPECIFIED",
		1: "VIDEO",
		2: "PROTO",
	}
	ProcessorIOSpec_DataType_value = map[string]int32{
		"DATA_TYPE_UNSPECIFIED": 0,
		"VIDEO":                 1,
		"PROTO":                 2,
	}
)

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

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

func (ProcessorIOSpec_DataType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[6].Descriptor()
}

func (ProcessorIOSpec_DataType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[6]
}

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

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

// Source type of the imported custom processor.
type CustomProcessorSourceInfo_SourceType int32

const (
	// Source type unspecified.
	CustomProcessorSourceInfo_SOURCE_TYPE_UNSPECIFIED CustomProcessorSourceInfo_SourceType = 0
	// Custom processors coming from Vertex AutoML product.
	CustomProcessorSourceInfo_VERTEX_AUTOML CustomProcessorSourceInfo_SourceType = 1
	// Custom processors coming from general custom models from Vertex.
	CustomProcessorSourceInfo_VERTEX_CUSTOM CustomProcessorSourceInfo_SourceType = 2
)

// Enum value maps for CustomProcessorSourceInfo_SourceType.
var (
	CustomProcessorSourceInfo_SourceType_name = map[int32]string{
		0: "SOURCE_TYPE_UNSPECIFIED",
		1: "VERTEX_AUTOML",
		2: "VERTEX_CUSTOM",
	}
	CustomProcessorSourceInfo_SourceType_value = map[string]int32{
		"SOURCE_TYPE_UNSPECIFIED": 0,
		"VERTEX_AUTOML":           1,
		"VERTEX_CUSTOM":           2,
	}
)

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

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

func (CustomProcessorSourceInfo_SourceType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[7].Descriptor()
}

func (CustomProcessorSourceInfo_SourceType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[7]
}

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

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

// Type of Person Blur
type PersonBlurConfig_PersonBlurType int32

const (
	// PersonBlur Type UNSPECIFIED.
	PersonBlurConfig_PERSON_BLUR_TYPE_UNSPECIFIED PersonBlurConfig_PersonBlurType = 0
	// FaceBlur Type full occlusion.
	PersonBlurConfig_FULL_OCCULUSION PersonBlurConfig_PersonBlurType = 1
	// FaceBlur Type blur filter.
	PersonBlurConfig_BLUR_FILTER PersonBlurConfig_PersonBlurType = 2
)

// Enum value maps for PersonBlurConfig_PersonBlurType.
var (
	PersonBlurConfig_PersonBlurType_name = map[int32]string{
		0: "PERSON_BLUR_TYPE_UNSPECIFIED",
		1: "FULL_OCCULUSION",
		2: "BLUR_FILTER",
	}
	PersonBlurConfig_PersonBlurType_value = map[string]int32{
		"PERSON_BLUR_TYPE_UNSPECIFIED": 0,
		"FULL_OCCULUSION":              1,
		"BLUR_FILTER":                  2,
	}
)

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

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

func (PersonBlurConfig_PersonBlurType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_visionai_v1_platform_proto_enumTypes[8].Descriptor()
}

func (PersonBlurConfig_PersonBlurType) Type() protoreflect.EnumType {
	return &file_google_cloud_visionai_v1_platform_proto_enumTypes[8]
}

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

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

// Message for DeleteApplicationInstance Response.
type DeleteApplicationInstancesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DeleteApplicationInstancesResponse) ProtoMessage() {}

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

// Message for CreateApplicationInstance Response.
type CreateApplicationInstancesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*CreateApplicationInstancesResponse) ProtoMessage() {}

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

// Message for UpdateApplicationInstances Response.
type UpdateApplicationInstancesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*UpdateApplicationInstancesResponse) ProtoMessage() {}

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

// Message for adding stream input to an Application.
type CreateApplicationInstancesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The resources being created.
	ApplicationInstances []*ApplicationInstance `protobuf:"bytes,2,rep,name=application_instances,json=applicationInstances,proto3" json:"application_instances,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*CreateApplicationInstancesRequest) ProtoMessage() {}

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

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

func (x *CreateApplicationInstancesRequest) GetApplicationInstances() []*ApplicationInstance {
	if x != nil {
		return x.ApplicationInstances
	}
	return nil
}

func (x *CreateApplicationInstancesRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for removing stream input from an Application.
type DeleteApplicationInstancesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Id of the requesting object.
	InstanceIds []string `protobuf:"bytes,2,rep,name=instance_ids,json=instanceIds,proto3" json:"instance_ids,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*DeleteApplicationInstancesRequest) ProtoMessage() {}

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

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

func (x *DeleteApplicationInstancesRequest) GetInstanceIds() []string {
	if x != nil {
		return x.InstanceIds
	}
	return nil
}

func (x *DeleteApplicationInstancesRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// RPC Request Messages.
// Message for DeployApplication Response.
type DeployApplicationResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DeployApplicationResponse) ProtoMessage() {}

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

// Message for UndeployApplication Response.
type UndeployApplicationResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*UndeployApplicationResponse) ProtoMessage() {}

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

// Message for RemoveApplicationStreamInput Response.
type RemoveApplicationStreamInputResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*RemoveApplicationStreamInputResponse) ProtoMessage() {}

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

// Message for AddApplicationStreamInput Response.
type AddApplicationStreamInputResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*AddApplicationStreamInputResponse) ProtoMessage() {}

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

// Message for AddApplicationStreamInput Response.
type UpdateApplicationStreamInputResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*UpdateApplicationStreamInputResponse) ProtoMessage() {}

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

// Message for requesting list of Applications.
type ListApplicationsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Parent value for ListApplicationsRequest.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Requested page size. Server may return fewer items than requested.
	// If unspecified, server will pick an appropriate default.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A token identifying a page of results the server should return.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Filtering results.
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// Hint for how to order the results.
	OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
}

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

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

func (*ListApplicationsRequest) ProtoMessage() {}

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

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

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

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

func (x *ListApplicationsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListApplicationsRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

// Message for response to listing Applications.
type ListApplicationsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Application.
	Applications []*Application `protobuf:"bytes,1,rep,name=applications,proto3" json:"applications,omitempty"`
	// A token identifying a page of results the server should return.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Locations that could not be reached.
	Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
}

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

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

func (*ListApplicationsResponse) ProtoMessage() {}

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

func (x *ListApplicationsResponse) GetApplications() []*Application {
	if x != nil {
		return x.Applications
	}
	return nil
}

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

func (x *ListApplicationsResponse) GetUnreachable() []string {
	if x != nil {
		return x.Unreachable
	}
	return nil
}

// Message for getting a Application.
type GetApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*GetApplicationRequest) ProtoMessage() {}

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

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

// Message for creating a Application.
type CreateApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Value for parent.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Id of the requesting object.
	ApplicationId string `protobuf:"bytes,2,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
	// Required. The resource being created.
	Application *Application `protobuf:"bytes,3,opt,name=application,proto3" json:"application,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*CreateApplicationRequest) ProtoMessage() {}

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

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

func (x *CreateApplicationRequest) GetApplicationId() string {
	if x != nil {
		return x.ApplicationId
	}
	return ""
}

func (x *CreateApplicationRequest) GetApplication() *Application {
	if x != nil {
		return x.Application
	}
	return nil
}

func (x *CreateApplicationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for updating an Application.
type UpdateApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Field mask is used to specify the fields to be overwritten in the
	// Application resource by the update.
	// The fields specified in the update_mask are relative to the resource, not
	// the full request. A field will be overwritten if it is in the mask. If the
	// user does not provide a mask then all fields will be overwritten.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The resource being updated.
	Application *Application `protobuf:"bytes,2,opt,name=application,proto3" json:"application,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*UpdateApplicationRequest) ProtoMessage() {}

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

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

func (x *UpdateApplicationRequest) GetApplication() *Application {
	if x != nil {
		return x.Application
	}
	return nil
}

func (x *UpdateApplicationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for deleting an Application.
type DeleteApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes after the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Optional. If set to true, any instances and drafts from this application will also be
	// deleted. (Otherwise, the request will only work if the application has no
	// instances and drafts.)
	Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
}

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

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

func (*DeleteApplicationRequest) ProtoMessage() {}

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

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

func (x *DeleteApplicationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *DeleteApplicationRequest) GetForce() bool {
	if x != nil {
		return x.Force
	}
	return false
}

// Message for deploying an Application.
type DeployApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// If set, validate the request and preview the application graph, but do not
	// actually deploy it.
	ValidateOnly bool `protobuf:"varint,2,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Optional. Whether or not to enable monitoring for the application on deployment.
	EnableMonitoring bool `protobuf:"varint,4,opt,name=enable_monitoring,json=enableMonitoring,proto3" json:"enable_monitoring,omitempty"`
}

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

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

func (*DeployApplicationRequest) ProtoMessage() {}

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

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

func (x *DeployApplicationRequest) GetValidateOnly() bool {
	if x != nil {
		return x.ValidateOnly
	}
	return false
}

func (x *DeployApplicationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *DeployApplicationRequest) GetEnableMonitoring() bool {
	if x != nil {
		return x.EnableMonitoring
	}
	return false
}

// Message for undeploying an Application.
type UndeployApplicationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*UndeployApplicationRequest) ProtoMessage() {}

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

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

func (x *UndeployApplicationRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message about a single stream input config.
type ApplicationStreamInput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StreamWithAnnotation *StreamWithAnnotation `protobuf:"bytes,1,opt,name=stream_with_annotation,json=streamWithAnnotation,proto3" json:"stream_with_annotation,omitempty"`
}

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

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

func (*ApplicationStreamInput) ProtoMessage() {}

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

func (x *ApplicationStreamInput) GetStreamWithAnnotation() *StreamWithAnnotation {
	if x != nil {
		return x.StreamWithAnnotation
	}
	return nil
}

// Message for adding stream input to an Application.
type AddApplicationStreamInputRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The stream inputs to add, the stream resource name is the key of each
	// StreamInput, and it must be unique within each application.
	ApplicationStreamInputs []*ApplicationStreamInput `protobuf:"bytes,2,rep,name=application_stream_inputs,json=applicationStreamInputs,proto3" json:"application_stream_inputs,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*AddApplicationStreamInputRequest) ProtoMessage() {}

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

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

func (x *AddApplicationStreamInputRequest) GetApplicationStreamInputs() []*ApplicationStreamInput {
	if x != nil {
		return x.ApplicationStreamInputs
	}
	return nil
}

func (x *AddApplicationStreamInputRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for updating stream input to an Application.
type UpdateApplicationStreamInputRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The stream inputs to update, the stream resource name is the key of each
	// StreamInput, and it must be unique within each application.
	ApplicationStreamInputs []*ApplicationStreamInput `protobuf:"bytes,2,rep,name=application_stream_inputs,json=applicationStreamInputs,proto3" json:"application_stream_inputs,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// If true, UpdateApplicationStreamInput will insert stream input to
	// application even if the target stream is not included in the application.
	AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
}

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

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

func (*UpdateApplicationStreamInputRequest) ProtoMessage() {}

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

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

func (x *UpdateApplicationStreamInputRequest) GetApplicationStreamInputs() []*ApplicationStreamInput {
	if x != nil {
		return x.ApplicationStreamInputs
	}
	return nil
}

func (x *UpdateApplicationStreamInputRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *UpdateApplicationStreamInputRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Message for removing stream input from an Application.
type RemoveApplicationStreamInputRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The target stream to remove.
	TargetStreamInputs []*RemoveApplicationStreamInputRequest_TargetStreamInput `protobuf:"bytes,2,rep,name=target_stream_inputs,json=targetStreamInputs,proto3" json:"target_stream_inputs,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*RemoveApplicationStreamInputRequest) ProtoMessage() {}

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

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

func (x *RemoveApplicationStreamInputRequest) GetTargetStreamInputs() []*RemoveApplicationStreamInputRequest_TargetStreamInput {
	if x != nil {
		return x.TargetStreamInputs
	}
	return nil
}

func (x *RemoveApplicationStreamInputRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for requesting list of Instances.
type ListInstancesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Parent value for ListInstancesRequest.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Requested page size. Server may return fewer items than requested.
	// If unspecified, server will pick an appropriate default.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A token identifying a page of results the server should return.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Filtering results.
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// Hint for how to order the results.
	OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
}

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

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

func (*ListInstancesRequest) ProtoMessage() {}

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

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

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

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

func (x *ListInstancesRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListInstancesRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

// Message for response to listing Instances.
type ListInstancesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Instance.
	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
	// A token identifying a page of results the server should return.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Locations that could not be reached.
	Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
}

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

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

func (*ListInstancesResponse) ProtoMessage() {}

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

func (x *ListInstancesResponse) GetInstances() []*Instance {
	if x != nil {
		return x.Instances
	}
	return nil
}

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

func (x *ListInstancesResponse) GetUnreachable() []string {
	if x != nil {
		return x.Unreachable
	}
	return nil
}

// Message for getting a Instance.
type GetInstanceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*GetInstanceRequest) ProtoMessage() {}

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

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

// Message for requesting list of Drafts.
type ListDraftsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Parent value for ListDraftsRequest.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Requested page size. Server may return fewer items than requested.
	// If unspecified, server will pick an appropriate default.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A token identifying a page of results the server should return.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Filtering results.
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// Hint for how to order the results.
	OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
}

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

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

func (*ListDraftsRequest) ProtoMessage() {}

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

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

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

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

func (x *ListDraftsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListDraftsRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

// Message for response to listing Drafts.
type ListDraftsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Draft.
	Drafts []*Draft `protobuf:"bytes,1,rep,name=drafts,proto3" json:"drafts,omitempty"`
	// A token identifying a page of results the server should return.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Locations that could not be reached.
	Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
}

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

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

func (*ListDraftsResponse) ProtoMessage() {}

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

func (x *ListDraftsResponse) GetDrafts() []*Draft {
	if x != nil {
		return x.Drafts
	}
	return nil
}

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

func (x *ListDraftsResponse) GetUnreachable() []string {
	if x != nil {
		return x.Unreachable
	}
	return nil
}

// Message for getting a Draft.
type GetDraftRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*GetDraftRequest) ProtoMessage() {}

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

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

// Message for creating a Draft.
type CreateDraftRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Value for parent.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Id of the requesting object.
	DraftId string `protobuf:"bytes,2,opt,name=draft_id,json=draftId,proto3" json:"draft_id,omitempty"`
	// Required. The resource being created.
	Draft *Draft `protobuf:"bytes,3,opt,name=draft,proto3" json:"draft,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*CreateDraftRequest) ProtoMessage() {}

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

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

func (x *CreateDraftRequest) GetDraftId() string {
	if x != nil {
		return x.DraftId
	}
	return ""
}

func (x *CreateDraftRequest) GetDraft() *Draft {
	if x != nil {
		return x.Draft
	}
	return nil
}

func (x *CreateDraftRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for updating an Draft.
type UpdateDraftRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Field mask is used to specify the fields to be overwritten in the
	// Draft resource by the update.
	// The fields specified in the update_mask are relative to the resource, not
	// the full request. A field will be overwritten if it is in the mask. If the
	// user does not provide a mask then all fields will be overwritten.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The resource being updated.
	Draft *Draft `protobuf:"bytes,2,opt,name=draft,proto3" json:"draft,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// If true, UpdateDraftRequest will create one resource if the target resource
	// doesn't exist, this time, the field_mask will be ignored.
	AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
}

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

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

func (*UpdateDraftRequest) ProtoMessage() {}

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

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

func (x *UpdateDraftRequest) GetDraft() *Draft {
	if x != nil {
		return x.Draft
	}
	return nil
}

func (x *UpdateDraftRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *UpdateDraftRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Message for updating an ApplicationInstance.
type UpdateApplicationInstancesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. the name of the application to retrieve.
	// Format:
	// "projects/{project}/locations/{location}/applications/{application}"
	Name                 string                                                         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ApplicationInstances []*UpdateApplicationInstancesRequest_UpdateApplicationInstance `protobuf:"bytes,2,rep,name=application_instances,json=applicationInstances,proto3" json:"application_instances,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// If true, Update Request will create one resource if the target resource
	// doesn't exist, this time, the field_mask will be ignored.
	AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
}

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

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

func (*UpdateApplicationInstancesRequest) ProtoMessage() {}

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

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

func (x *UpdateApplicationInstancesRequest) GetApplicationInstances() []*UpdateApplicationInstancesRequest_UpdateApplicationInstance {
	if x != nil {
		return x.ApplicationInstances
	}
	return nil
}

func (x *UpdateApplicationInstancesRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *UpdateApplicationInstancesRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Message for deleting an Draft.
type DeleteDraftRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes after the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*DeleteDraftRequest) ProtoMessage() {}

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

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

func (x *DeleteDraftRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for requesting list of Processors.
type ListProcessorsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Parent value for ListProcessorsRequest.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Requested page size. Server may return fewer items than requested.
	// If unspecified, server will pick an appropriate default.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A token identifying a page of results the server should return.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Filtering results.
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// Hint for how to order the results.
	OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
}

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

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

func (*ListProcessorsRequest) ProtoMessage() {}

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

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

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

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

func (x *ListProcessorsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListProcessorsRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

// Message for response to listing Processors.
type ListProcessorsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Processor.
	Processors []*Processor `protobuf:"bytes,1,rep,name=processors,proto3" json:"processors,omitempty"`
	// A token identifying a page of results the server should return.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Locations that could not be reached.
	Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
}

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

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

func (*ListProcessorsResponse) ProtoMessage() {}

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

func (x *ListProcessorsResponse) GetProcessors() []*Processor {
	if x != nil {
		return x.Processors
	}
	return nil
}

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

func (x *ListProcessorsResponse) GetUnreachable() []string {
	if x != nil {
		return x.Unreachable
	}
	return nil
}

// Request Message for listing Prebuilt Processors.
type ListPrebuiltProcessorsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Parent path.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
}

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

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

func (*ListPrebuiltProcessorsRequest) ProtoMessage() {}

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

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

// Response Message for listing Prebuilt Processors.
type ListPrebuiltProcessorsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Processor.
	Processors []*Processor `protobuf:"bytes,1,rep,name=processors,proto3" json:"processors,omitempty"`
}

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

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

func (*ListPrebuiltProcessorsResponse) ProtoMessage() {}

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

func (x *ListPrebuiltProcessorsResponse) GetProcessors() []*Processor {
	if x != nil {
		return x.Processors
	}
	return nil
}

// Message for getting a Processor.
type GetProcessorRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*GetProcessorRequest) ProtoMessage() {}

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

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

// Message for creating a Processor.
type CreateProcessorRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Value for parent.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Id of the requesting object.
	ProcessorId string `protobuf:"bytes,2,opt,name=processor_id,json=processorId,proto3" json:"processor_id,omitempty"`
	// Required. The resource being created.
	Processor *Processor `protobuf:"bytes,3,opt,name=processor,proto3" json:"processor,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*CreateProcessorRequest) ProtoMessage() {}

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

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

func (x *CreateProcessorRequest) GetProcessorId() string {
	if x != nil {
		return x.ProcessorId
	}
	return ""
}

func (x *CreateProcessorRequest) GetProcessor() *Processor {
	if x != nil {
		return x.Processor
	}
	return nil
}

func (x *CreateProcessorRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for updating a Processor.
type UpdateProcessorRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Field mask is used to specify the fields to be overwritten in the
	// Processor resource by the update.
	// The fields specified in the update_mask are relative to the resource, not
	// the full request. A field will be overwritten if it is in the mask. If the
	// user does not provide a mask then all fields will be overwritten.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The resource being updated.
	Processor *Processor `protobuf:"bytes,2,opt,name=processor,proto3" json:"processor,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes since the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*UpdateProcessorRequest) ProtoMessage() {}

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

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

func (x *UpdateProcessorRequest) GetProcessor() *Processor {
	if x != nil {
		return x.Processor
	}
	return nil
}

func (x *UpdateProcessorRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message for deleting a Processor.
type DeleteProcessorRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Name of the resource
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. An optional request ID to identify requests. Specify a unique request ID
	// so that if you must retry your request, the server will know to ignore
	// the request if it has already been completed. The server will guarantee
	// that for at least 60 minutes after the first request.
	//
	// For example, consider a situation where you make an initial request and t
	// he request times out. If you make the request again with the same request
	// ID, the server can check if original operation with the same request ID
	// was received, and if so, will ignore the second request. This prevents
	// clients from accidentally creating duplicate commitments.
	//
	// The request ID must be a valid UUID with the exception that zero UUID is
	// not supported (00000000-0000-0000-0000-000000000000).
	RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}

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

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

func (*DeleteProcessorRequest) ProtoMessage() {}

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

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

func (x *DeleteProcessorRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// Message describing Application object
type Application struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name of resource
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. [Output only] Create timestamp
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. [Output only] Update timestamp
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// Labels as key value pairs
	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. A user friendly display name for the solution.
	DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A description for this application.
	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// Application graph configuration.
	ApplicationConfigs *ApplicationConfigs `protobuf:"bytes,7,opt,name=application_configs,json=applicationConfigs,proto3" json:"application_configs,omitempty"`
	// Output only. Application graph runtime info. Only exists when application state equals
	// to DEPLOYED.
	RuntimeInfo *Application_ApplicationRuntimeInfo `protobuf:"bytes,8,opt,name=runtime_info,json=runtimeInfo,proto3" json:"runtime_info,omitempty"`
	// Output only. State of the application.
	State Application_State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.visionai.v1.Application_State" json:"state,omitempty"`
}

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

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

func (*Application) ProtoMessage() {}

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

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

func (x *Application) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Application) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

func (x *Application) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

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

func (x *Application) GetApplicationConfigs() *ApplicationConfigs {
	if x != nil {
		return x.ApplicationConfigs
	}
	return nil
}

func (x *Application) GetRuntimeInfo() *Application_ApplicationRuntimeInfo {
	if x != nil {
		return x.RuntimeInfo
	}
	return nil
}

func (x *Application) GetState() Application_State {
	if x != nil {
		return x.State
	}
	return Application_STATE_UNSPECIFIED
}

// Message storing the graph of the application.
type ApplicationConfigs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A list of nodes  in the application graph.
	Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
	// Event-related configuration for this application.
	EventDeliveryConfig *ApplicationConfigs_EventDeliveryConfig `protobuf:"bytes,3,opt,name=event_delivery_config,json=eventDeliveryConfig,proto3" json:"event_delivery_config,omitempty"`
}

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

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

func (*ApplicationConfigs) ProtoMessage() {}

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

func (x *ApplicationConfigs) GetNodes() []*Node {
	if x != nil {
		return x.Nodes
	}
	return nil
}

func (x *ApplicationConfigs) GetEventDeliveryConfig() *ApplicationConfigs_EventDeliveryConfig {
	if x != nil {
		return x.EventDeliveryConfig
	}
	return nil
}

// Message describing node object.
type Node struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to StreamOutputConfig:
	//
	//	*Node_OutputAllOutputChannelsToStream
	StreamOutputConfig isNode_StreamOutputConfig `protobuf_oneof:"stream_output_config"`
	// Required. A unique name for the node.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A user friendly display name for the node.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Node config.
	NodeConfig *ProcessorConfig `protobuf:"bytes,3,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"`
	// Processor name refer to the chosen processor resource.
	Processor string `protobuf:"bytes,4,opt,name=processor,proto3" json:"processor,omitempty"`
	// Parent node. Input node should not have parent node. For V1 Alpha1/Beta
	// only media warehouse node can have multiple parents, other types of nodes
	// will only have one parent.
	Parents []*Node_InputEdge `protobuf:"bytes,5,rep,name=parents,proto3" json:"parents,omitempty"`
}

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

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

func (*Node) ProtoMessage() {}

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

func (m *Node) GetStreamOutputConfig() isNode_StreamOutputConfig {
	if m != nil {
		return m.StreamOutputConfig
	}
	return nil
}

func (x *Node) GetOutputAllOutputChannelsToStream() bool {
	if x, ok := x.GetStreamOutputConfig().(*Node_OutputAllOutputChannelsToStream); ok {
		return x.OutputAllOutputChannelsToStream
	}
	return false
}

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

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

func (x *Node) GetNodeConfig() *ProcessorConfig {
	if x != nil {
		return x.NodeConfig
	}
	return nil
}

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

func (x *Node) GetParents() []*Node_InputEdge {
	if x != nil {
		return x.Parents
	}
	return nil
}

type isNode_StreamOutputConfig interface {
	isNode_StreamOutputConfig()
}

type Node_OutputAllOutputChannelsToStream struct {
	// By default, the output of the node will only be available to downstream
	// nodes. To consume the direct output from the application node, the output
	// must be sent to Vision AI Streams at first.
	//
	// By setting output_all_output_channels_to_stream to true, App Platform
	// will automatically send all the outputs of the current node to Vision AI
	// Stream resources (one stream per output channel). The output stream
	// resource will be created by App Platform automatically during deployment
	// and deleted after application un-deployment.
	// Note that this config applies to all the Application Instances.
	//
	// The output stream can be override at instance level by
	// configuring the `output_resources` section of Instance resource.
	// `producer_node` should be current node, `output_resource_binding` should
	// be the output channel name (or leave it blank if there is only 1 output
	// channel of the processor) and `output_resource` should be the target
	// output stream.
	OutputAllOutputChannelsToStream bool `protobuf:"varint,6,opt,name=output_all_output_channels_to_stream,json=outputAllOutputChannelsToStream,proto3,oneof"`
}

func (*Node_OutputAllOutputChannelsToStream) isNode_StreamOutputConfig() {}

// Message describing Draft object
type Draft struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name of resource
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. [Output only] Create timestamp
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. [Output only] Create timestamp
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// Labels as key value pairs
	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. A user friendly display name for the solution.
	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A description for this application.
	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// The draft application configs which haven't been updated to an application.
	DraftApplicationConfigs *ApplicationConfigs `protobuf:"bytes,6,opt,name=draft_application_configs,json=draftApplicationConfigs,proto3" json:"draft_application_configs,omitempty"`
}

func (x *Draft) Reset() {
	*x = Draft{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Draft) ProtoMessage() {}

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

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

func (x *Draft) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Draft) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

func (x *Draft) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

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

func (x *Draft) GetDraftApplicationConfigs() *ApplicationConfigs {
	if x != nil {
		return x.DraftApplicationConfigs
	}
	return nil
}

// Message describing Instance object
type Instance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. name of resource
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. [Output only] Create timestamp
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. [Output only] Update timestamp
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// Labels as key value pairs
	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. A user friendly display name for the solution.
	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A description for this application.
	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// The input resources for the current application instance.
	// For example:
	// input_resources:
	// visionai.googleapis.com/v1/projects/123/locations/us-central1/clusters/456/streams/stream-a
	InputResources []*Instance_InputResource `protobuf:"bytes,6,rep,name=input_resources,json=inputResources,proto3" json:"input_resources,omitempty"`
	// All the output resources associated to one application instance.
	OutputResources []*Instance_OutputResource `protobuf:"bytes,7,rep,name=output_resources,json=outputResources,proto3" json:"output_resources,omitempty"`
	// State of the instance.
	State Instance_State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.visionai.v1.Instance_State" json:"state,omitempty"`
}

func (x *Instance) Reset() {
	*x = Instance{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Instance) ProtoMessage() {}

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

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

func (x *Instance) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Instance) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

func (x *Instance) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

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

func (x *Instance) GetInputResources() []*Instance_InputResource {
	if x != nil {
		return x.InputResources
	}
	return nil
}

func (x *Instance) GetOutputResources() []*Instance_OutputResource {
	if x != nil {
		return x.OutputResources
	}
	return nil
}

func (x *Instance) GetState() Instance_State {
	if x != nil {
		return x.State
	}
	return Instance_STATE_UNSPECIFIED
}

// Message for creating a Instance.
type ApplicationInstance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Id of the requesting object.
	InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// Required. The resource being created.
	Instance *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
}

func (x *ApplicationInstance) Reset() {
	*x = ApplicationInstance{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplicationInstance) ProtoMessage() {}

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

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

func (x *ApplicationInstance) GetInstance() *Instance {
	if x != nil {
		return x.Instance
	}
	return nil
}

// Message describing Processor object.
// Next ID: 18
type Processor struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name of resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. [Output only] Create timestamp.
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. [Output only] Update timestamp.
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// Labels as key value pairs.
	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. A user friendly display name for the processor.
	DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Illustrative sentences for describing the functionality of the processor.
	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
	// Output only. Processor Type.
	ProcessorType Processor_ProcessorType `protobuf:"varint,6,opt,name=processor_type,json=processorType,proto3,enum=google.cloud.visionai.v1.Processor_ProcessorType" json:"processor_type,omitempty"`
	// Model Type.
	ModelType ModelType `protobuf:"varint,13,opt,name=model_type,json=modelType,proto3,enum=google.cloud.visionai.v1.ModelType" json:"model_type,omitempty"`
	// Source info for customer created processor.
	CustomProcessorSourceInfo *CustomProcessorSourceInfo `protobuf:"bytes,7,opt,name=custom_processor_source_info,json=customProcessorSourceInfo,proto3" json:"custom_processor_source_info,omitempty"`
	// Output only. State of the Processor.
	State Processor_ProcessorState `protobuf:"varint,8,opt,name=state,proto3,enum=google.cloud.visionai.v1.Processor_ProcessorState" json:"state,omitempty"`
	// Output only. [Output only] The input / output specifications of a processor, each type
	// of processor has fixed input / output specs which cannot be altered by
	// customer.
	ProcessorIoSpec *ProcessorIOSpec `protobuf:"bytes,11,opt,name=processor_io_spec,json=processorIoSpec,proto3" json:"processor_io_spec,omitempty"`
	// Output only. The corresponding configuration can be used in the Application to customize
	// the behavior of the processor.
	ConfigurationTypeurl     string                 `protobuf:"bytes,14,opt,name=configuration_typeurl,json=configurationTypeurl,proto3" json:"configuration_typeurl,omitempty"`
	SupportedAnnotationTypes []StreamAnnotationType `protobuf:"varint,15,rep,packed,name=supported_annotation_types,json=supportedAnnotationTypes,proto3,enum=google.cloud.visionai.v1.StreamAnnotationType" json:"supported_annotation_types,omitempty"`
	// Indicates if the processor supports post processing.
	SupportsPostProcessing bool `protobuf:"varint,17,opt,name=supports_post_processing,json=supportsPostProcessing,proto3" json:"supports_post_processing,omitempty"`
}

func (x *Processor) Reset() {
	*x = Processor{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Processor) ProtoMessage() {}

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

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

func (x *Processor) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *Processor) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

func (x *Processor) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

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

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

func (x *Processor) GetProcessorType() Processor_ProcessorType {
	if x != nil {
		return x.ProcessorType
	}
	return Processor_PROCESSOR_TYPE_UNSPECIFIED
}

func (x *Processor) GetModelType() ModelType {
	if x != nil {
		return x.ModelType
	}
	return ModelType_MODEL_TYPE_UNSPECIFIED
}

func (x *Processor) GetCustomProcessorSourceInfo() *CustomProcessorSourceInfo {
	if x != nil {
		return x.CustomProcessorSourceInfo
	}
	return nil
}

func (x *Processor) GetState() Processor_ProcessorState {
	if x != nil {
		return x.State
	}
	return Processor_PROCESSOR_STATE_UNSPECIFIED
}

func (x *Processor) GetProcessorIoSpec() *ProcessorIOSpec {
	if x != nil {
		return x.ProcessorIoSpec
	}
	return nil
}

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

func (x *Processor) GetSupportedAnnotationTypes() []StreamAnnotationType {
	if x != nil {
		return x.SupportedAnnotationTypes
	}
	return nil
}

func (x *Processor) GetSupportsPostProcessing() bool {
	if x != nil {
		return x.SupportsPostProcessing
	}
	return false
}

// Message describing the input / output specifications of a processor.
type ProcessorIOSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// For processors with input_channel_specs, the processor must be explicitly
	// connected to another processor.
	GraphInputChannelSpecs []*ProcessorIOSpec_GraphInputChannelSpec `protobuf:"bytes,3,rep,name=graph_input_channel_specs,json=graphInputChannelSpecs,proto3" json:"graph_input_channel_specs,omitempty"`
	// The output artifact specifications for the current processor.
	GraphOutputChannelSpecs []*ProcessorIOSpec_GraphOutputChannelSpec `protobuf:"bytes,4,rep,name=graph_output_channel_specs,json=graphOutputChannelSpecs,proto3" json:"graph_output_channel_specs,omitempty"`
	// The input resource that needs to be fed from the application instance.
	InstanceResourceInputBindingSpecs []*ProcessorIOSpec_InstanceResourceInputBindingSpec `protobuf:"bytes,5,rep,name=instance_resource_input_binding_specs,json=instanceResourceInputBindingSpecs,proto3" json:"instance_resource_input_binding_specs,omitempty"`
	// The output resource that the processor will generate per instance.
	// Other than the explicitly listed output bindings here, all the processors'
	// GraphOutputChannels can be binded to stream resource. The bind name then is
	// the same as the GraphOutputChannel's name.
	InstanceResourceOutputBindingSpecs []*ProcessorIOSpec_InstanceResourceOutputBindingSpec `protobuf:"bytes,6,rep,name=instance_resource_output_binding_specs,json=instanceResourceOutputBindingSpecs,proto3" json:"instance_resource_output_binding_specs,omitempty"`
}

func (x *ProcessorIOSpec) Reset() {
	*x = ProcessorIOSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorIOSpec) ProtoMessage() {}

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

func (x *ProcessorIOSpec) GetGraphInputChannelSpecs() []*ProcessorIOSpec_GraphInputChannelSpec {
	if x != nil {
		return x.GraphInputChannelSpecs
	}
	return nil
}

func (x *ProcessorIOSpec) GetGraphOutputChannelSpecs() []*ProcessorIOSpec_GraphOutputChannelSpec {
	if x != nil {
		return x.GraphOutputChannelSpecs
	}
	return nil
}

func (x *ProcessorIOSpec) GetInstanceResourceInputBindingSpecs() []*ProcessorIOSpec_InstanceResourceInputBindingSpec {
	if x != nil {
		return x.InstanceResourceInputBindingSpecs
	}
	return nil
}

func (x *ProcessorIOSpec) GetInstanceResourceOutputBindingSpecs() []*ProcessorIOSpec_InstanceResourceOutputBindingSpec {
	if x != nil {
		return x.InstanceResourceOutputBindingSpecs
	}
	return nil
}

// Describes the source info for a custom processor.
type CustomProcessorSourceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The path where App Platform loads the artifacts for the custom processor.
	//
	// Types that are assignable to ArtifactPath:
	//
	//	*CustomProcessorSourceInfo_VertexModel
	ArtifactPath isCustomProcessorSourceInfo_ArtifactPath `protobuf_oneof:"artifact_path"`
	// The original product which holds the custom processor's functionality.
	SourceType CustomProcessorSourceInfo_SourceType `protobuf:"varint,1,opt,name=source_type,json=sourceType,proto3,enum=google.cloud.visionai.v1.CustomProcessorSourceInfo_SourceType" json:"source_type,omitempty"`
	// Output only. Additional info related to the imported custom processor.
	// Data is filled in by app platform during the processor creation.
	AdditionalInfo map[string]string `protobuf:"bytes,4,rep,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Model schema files which specifies the signature of the model.
	// For VERTEX_CUSTOM models, instances schema is required.
	// If instances schema is not specified during the processor creation,
	// VisionAI Platform will try to get it from Vertex, if it doesn't exist, the
	// creation will fail.
	ModelSchema *CustomProcessorSourceInfo_ModelSchema `protobuf:"bytes,5,opt,name=model_schema,json=modelSchema,proto3" json:"model_schema,omitempty"`
}

func (x *CustomProcessorSourceInfo) Reset() {
	*x = CustomProcessorSourceInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CustomProcessorSourceInfo) ProtoMessage() {}

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

func (m *CustomProcessorSourceInfo) GetArtifactPath() isCustomProcessorSourceInfo_ArtifactPath {
	if m != nil {
		return m.ArtifactPath
	}
	return nil
}

func (x *CustomProcessorSourceInfo) GetVertexModel() string {
	if x, ok := x.GetArtifactPath().(*CustomProcessorSourceInfo_VertexModel); ok {
		return x.VertexModel
	}
	return ""
}

func (x *CustomProcessorSourceInfo) GetSourceType() CustomProcessorSourceInfo_SourceType {
	if x != nil {
		return x.SourceType
	}
	return CustomProcessorSourceInfo_SOURCE_TYPE_UNSPECIFIED
}

func (x *CustomProcessorSourceInfo) GetAdditionalInfo() map[string]string {
	if x != nil {
		return x.AdditionalInfo
	}
	return nil
}

func (x *CustomProcessorSourceInfo) GetModelSchema() *CustomProcessorSourceInfo_ModelSchema {
	if x != nil {
		return x.ModelSchema
	}
	return nil
}

type isCustomProcessorSourceInfo_ArtifactPath interface {
	isCustomProcessorSourceInfo_ArtifactPath()
}

type CustomProcessorSourceInfo_VertexModel struct {
	// The resource name original model hosted in the vertex AI platform.
	VertexModel string `protobuf:"bytes,2,opt,name=vertex_model,json=vertexModel,proto3,oneof"`
}

func (*CustomProcessorSourceInfo_VertexModel) isCustomProcessorSourceInfo_ArtifactPath() {}

// Next ID: 24
type ProcessorConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to ProcessorConfig:
	//
	//	*ProcessorConfig_VideoStreamInputConfig
	//	*ProcessorConfig_AiEnabledDevicesInputConfig
	//	*ProcessorConfig_MediaWarehouseConfig
	//	*ProcessorConfig_PersonBlurConfig
	//	*ProcessorConfig_OccupancyCountConfig
	//	*ProcessorConfig_PersonVehicleDetectionConfig
	//	*ProcessorConfig_VertexAutomlVisionConfig
	//	*ProcessorConfig_VertexAutomlVideoConfig
	//	*ProcessorConfig_VertexCustomConfig
	//	*ProcessorConfig_GeneralObjectDetectionConfig
	//	*ProcessorConfig_BigQueryConfig
	//	*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig
	ProcessorConfig isProcessorConfig_ProcessorConfig `protobuf_oneof:"processor_config"`
}

func (x *ProcessorConfig) Reset() {
	*x = ProcessorConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorConfig) ProtoMessage() {}

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

func (m *ProcessorConfig) GetProcessorConfig() isProcessorConfig_ProcessorConfig {
	if m != nil {
		return m.ProcessorConfig
	}
	return nil
}

func (x *ProcessorConfig) GetVideoStreamInputConfig() *VideoStreamInputConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VideoStreamInputConfig); ok {
		return x.VideoStreamInputConfig
	}
	return nil
}

func (x *ProcessorConfig) GetAiEnabledDevicesInputConfig() *AIEnabledDevicesInputConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_AiEnabledDevicesInputConfig); ok {
		return x.AiEnabledDevicesInputConfig
	}
	return nil
}

func (x *ProcessorConfig) GetMediaWarehouseConfig() *MediaWarehouseConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_MediaWarehouseConfig); ok {
		return x.MediaWarehouseConfig
	}
	return nil
}

func (x *ProcessorConfig) GetPersonBlurConfig() *PersonBlurConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonBlurConfig); ok {
		return x.PersonBlurConfig
	}
	return nil
}

func (x *ProcessorConfig) GetOccupancyCountConfig() *OccupancyCountConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_OccupancyCountConfig); ok {
		return x.OccupancyCountConfig
	}
	return nil
}

func (x *ProcessorConfig) GetPersonVehicleDetectionConfig() *PersonVehicleDetectionConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonVehicleDetectionConfig); ok {
		return x.PersonVehicleDetectionConfig
	}
	return nil
}

func (x *ProcessorConfig) GetVertexAutomlVisionConfig() *VertexAutoMLVisionConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexAutomlVisionConfig); ok {
		return x.VertexAutomlVisionConfig
	}
	return nil
}

func (x *ProcessorConfig) GetVertexAutomlVideoConfig() *VertexAutoMLVideoConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexAutomlVideoConfig); ok {
		return x.VertexAutomlVideoConfig
	}
	return nil
}

func (x *ProcessorConfig) GetVertexCustomConfig() *VertexCustomConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexCustomConfig); ok {
		return x.VertexCustomConfig
	}
	return nil
}

func (x *ProcessorConfig) GetGeneralObjectDetectionConfig() *GeneralObjectDetectionConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_GeneralObjectDetectionConfig); ok {
		return x.GeneralObjectDetectionConfig
	}
	return nil
}

func (x *ProcessorConfig) GetBigQueryConfig() *BigQueryConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_BigQueryConfig); ok {
		return x.BigQueryConfig
	}
	return nil
}

func (x *ProcessorConfig) GetPersonalProtectiveEquipmentDetectionConfig() *PersonalProtectiveEquipmentDetectionConfig {
	if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig); ok {
		return x.PersonalProtectiveEquipmentDetectionConfig
	}
	return nil
}

type isProcessorConfig_ProcessorConfig interface {
	isProcessorConfig_ProcessorConfig()
}

type ProcessorConfig_VideoStreamInputConfig struct {
	// Configs of stream input processor.
	VideoStreamInputConfig *VideoStreamInputConfig `protobuf:"bytes,9,opt,name=video_stream_input_config,json=videoStreamInputConfig,proto3,oneof"`
}

type ProcessorConfig_AiEnabledDevicesInputConfig struct {
	// Config of AI-enabled input devices.
	AiEnabledDevicesInputConfig *AIEnabledDevicesInputConfig `protobuf:"bytes,20,opt,name=ai_enabled_devices_input_config,json=aiEnabledDevicesInputConfig,proto3,oneof"`
}

type ProcessorConfig_MediaWarehouseConfig struct {
	// Configs of media warehouse processor.
	MediaWarehouseConfig *MediaWarehouseConfig `protobuf:"bytes,10,opt,name=media_warehouse_config,json=mediaWarehouseConfig,proto3,oneof"`
}

type ProcessorConfig_PersonBlurConfig struct {
	// Configs of person blur processor.
	PersonBlurConfig *PersonBlurConfig `protobuf:"bytes,11,opt,name=person_blur_config,json=personBlurConfig,proto3,oneof"`
}

type ProcessorConfig_OccupancyCountConfig struct {
	// Configs of occupancy count processor.
	OccupancyCountConfig *OccupancyCountConfig `protobuf:"bytes,12,opt,name=occupancy_count_config,json=occupancyCountConfig,proto3,oneof"`
}

type ProcessorConfig_PersonVehicleDetectionConfig struct {
	// Configs of Person Vehicle Detection processor.
	PersonVehicleDetectionConfig *PersonVehicleDetectionConfig `protobuf:"bytes,15,opt,name=person_vehicle_detection_config,json=personVehicleDetectionConfig,proto3,oneof"`
}

type ProcessorConfig_VertexAutomlVisionConfig struct {
	// Configs of Vertex AutoML vision processor.
	VertexAutomlVisionConfig *VertexAutoMLVisionConfig `protobuf:"bytes,13,opt,name=vertex_automl_vision_config,json=vertexAutomlVisionConfig,proto3,oneof"`
}

type ProcessorConfig_VertexAutomlVideoConfig struct {
	// Configs of Vertex AutoML video processor.
	VertexAutomlVideoConfig *VertexAutoMLVideoConfig `protobuf:"bytes,14,opt,name=vertex_automl_video_config,json=vertexAutomlVideoConfig,proto3,oneof"`
}

type ProcessorConfig_VertexCustomConfig struct {
	// Configs of Vertex Custom processor.
	VertexCustomConfig *VertexCustomConfig `protobuf:"bytes,17,opt,name=vertex_custom_config,json=vertexCustomConfig,proto3,oneof"`
}

type ProcessorConfig_GeneralObjectDetectionConfig struct {
	// Configs of General Object Detection processor.
	GeneralObjectDetectionConfig *GeneralObjectDetectionConfig `protobuf:"bytes,18,opt,name=general_object_detection_config,json=generalObjectDetectionConfig,proto3,oneof"`
}

type ProcessorConfig_BigQueryConfig struct {
	// Configs of BigQuery processor.
	BigQueryConfig *BigQueryConfig `protobuf:"bytes,19,opt,name=big_query_config,json=bigQueryConfig,proto3,oneof"`
}

type ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig struct {
	// Configs of personal_protective_equipment_detection_config
	PersonalProtectiveEquipmentDetectionConfig *PersonalProtectiveEquipmentDetectionConfig `protobuf:"bytes,22,opt,name=personal_protective_equipment_detection_config,json=personalProtectiveEquipmentDetectionConfig,proto3,oneof"`
}

func (*ProcessorConfig_VideoStreamInputConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_AiEnabledDevicesInputConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_MediaWarehouseConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_PersonBlurConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_OccupancyCountConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_PersonVehicleDetectionConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_VertexAutomlVisionConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_VertexAutomlVideoConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_VertexCustomConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_GeneralObjectDetectionConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_BigQueryConfig) isProcessorConfig_ProcessorConfig() {}

func (*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig) isProcessorConfig_ProcessorConfig() {
}

// Message describing Vision AI stream with application specific annotations.
// All the StreamAnnotation object inside this message MUST have unique id.
type StreamWithAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Vision AI Stream resource name.
	Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"`
	// Annotations that will be applied to the whole application.
	ApplicationAnnotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=application_annotations,json=applicationAnnotations,proto3" json:"application_annotations,omitempty"`
	// Annotations that will be applied to the specific node of the application.
	// If the same type of the annotations is applied to both application and
	// node, the node annotation will be added in addition to the global
	// application one.
	// For example, if there is one active zone annotation for the whole
	// application and one active zone annotation for the Occupancy Analytic
	// processor, then the Occupancy Analytic processor will have two active zones
	// defined.
	NodeAnnotations []*StreamWithAnnotation_NodeAnnotation `protobuf:"bytes,3,rep,name=node_annotations,json=nodeAnnotations,proto3" json:"node_annotations,omitempty"`
}

func (x *StreamWithAnnotation) Reset() {
	*x = StreamWithAnnotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StreamWithAnnotation) ProtoMessage() {}

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

func (x *StreamWithAnnotation) GetStream() string {
	if x != nil {
		return x.Stream
	}
	return ""
}

func (x *StreamWithAnnotation) GetApplicationAnnotations() []*StreamAnnotation {
	if x != nil {
		return x.ApplicationAnnotations
	}
	return nil
}

func (x *StreamWithAnnotation) GetNodeAnnotations() []*StreamWithAnnotation_NodeAnnotation {
	if x != nil {
		return x.NodeAnnotations
	}
	return nil
}

// Message describing annotations specific to application node.
// This message is a duplication of StreamWithAnnotation.NodeAnnotation.
type ApplicationNodeAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The node name of the application graph.
	Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	// The node specific stream annotations.
	Annotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"`
}

func (x *ApplicationNodeAnnotation) Reset() {
	*x = ApplicationNodeAnnotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplicationNodeAnnotation) ProtoMessage() {}

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

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

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

// Message describing general annotation for resources.
type ResourceAnnotations struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Annotations that will be applied to the whole application.
	ApplicationAnnotations []*StreamAnnotation `protobuf:"bytes,1,rep,name=application_annotations,json=applicationAnnotations,proto3" json:"application_annotations,omitempty"`
	// Annotations that will be applied to the specific node of the application.
	// If the same type of the annotations is applied to both application and
	// node, the node annotation will be added in addition to the global
	// application one.
	// For example, if there is one active zone annotation for the whole
	// application and one active zone annotation for the Occupancy Analytic
	// processor, then the Occupancy Analytic processor will have two active zones
	// defined.
	NodeAnnotations []*ApplicationNodeAnnotation `protobuf:"bytes,2,rep,name=node_annotations,json=nodeAnnotations,proto3" json:"node_annotations,omitempty"`
}

func (x *ResourceAnnotations) Reset() {
	*x = ResourceAnnotations{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ResourceAnnotations) ProtoMessage() {}

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

func (x *ResourceAnnotations) GetApplicationAnnotations() []*StreamAnnotation {
	if x != nil {
		return x.ApplicationAnnotations
	}
	return nil
}

func (x *ResourceAnnotations) GetNodeAnnotations() []*ApplicationNodeAnnotation {
	if x != nil {
		return x.NodeAnnotations
	}
	return nil
}

// Message describing Video Stream Input Config.
// This message should only be used as a placeholder for builtin:stream-input
// processor, actual stream binding should be specified using corresponding
// API.
type VideoStreamInputConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Deprecated: Do not use.
	Streams []string `protobuf:"bytes,1,rep,name=streams,proto3" json:"streams,omitempty"`
	// Deprecated: Do not use.
	StreamsWithAnnotation []*StreamWithAnnotation `protobuf:"bytes,2,rep,name=streams_with_annotation,json=streamsWithAnnotation,proto3" json:"streams_with_annotation,omitempty"`
}

func (x *VideoStreamInputConfig) Reset() {
	*x = VideoStreamInputConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VideoStreamInputConfig) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *VideoStreamInputConfig) GetStreams() []string {
	if x != nil {
		return x.Streams
	}
	return nil
}

// Deprecated: Do not use.
func (x *VideoStreamInputConfig) GetStreamsWithAnnotation() []*StreamWithAnnotation {
	if x != nil {
		return x.StreamsWithAnnotation
	}
	return nil
}

// Message describing AI-enabled Devices Input Config.
type AIEnabledDevicesInputConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AIEnabledDevicesInputConfig) Reset() {
	*x = AIEnabledDevicesInputConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AIEnabledDevicesInputConfig) ProtoMessage() {}

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

// Message describing MediaWarehouseConfig.
type MediaWarehouseConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Resource name of the Media Warehouse corpus.
	// Format:
	// projects/${project_id}/locations/${location_id}/corpora/${corpus_id}
	Corpus string `protobuf:"bytes,1,opt,name=corpus,proto3" json:"corpus,omitempty"`
	// Deprecated.
	//
	// Deprecated: Do not use.
	Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
	// The duration for which all media assets, associated metadata, and search
	// documents can exist.
	Ttl *durationpb.Duration `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
}

func (x *MediaWarehouseConfig) Reset() {
	*x = MediaWarehouseConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MediaWarehouseConfig) ProtoMessage() {}

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

func (x *MediaWarehouseConfig) GetCorpus() string {
	if x != nil {
		return x.Corpus
	}
	return ""
}

// Deprecated: Do not use.
func (x *MediaWarehouseConfig) GetRegion() string {
	if x != nil {
		return x.Region
	}
	return ""
}

func (x *MediaWarehouseConfig) GetTtl() *durationpb.Duration {
	if x != nil {
		return x.Ttl
	}
	return nil
}

// Message describing FaceBlurConfig.
type PersonBlurConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Person blur type.
	PersonBlurType PersonBlurConfig_PersonBlurType `protobuf:"varint,1,opt,name=person_blur_type,json=personBlurType,proto3,enum=google.cloud.visionai.v1.PersonBlurConfig_PersonBlurType" json:"person_blur_type,omitempty"`
	// Whether only blur faces other than the whole object in the processor.
	FacesOnly bool `protobuf:"varint,2,opt,name=faces_only,json=facesOnly,proto3" json:"faces_only,omitempty"`
}

func (x *PersonBlurConfig) Reset() {
	*x = PersonBlurConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonBlurConfig) ProtoMessage() {}

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

func (x *PersonBlurConfig) GetPersonBlurType() PersonBlurConfig_PersonBlurType {
	if x != nil {
		return x.PersonBlurType
	}
	return PersonBlurConfig_PERSON_BLUR_TYPE_UNSPECIFIED
}

func (x *PersonBlurConfig) GetFacesOnly() bool {
	if x != nil {
		return x.FacesOnly
	}
	return false
}

// Message describing OccupancyCountConfig.
type OccupancyCountConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Whether to count the appearances of people, output counts have 'people' as
	// the key.
	EnablePeopleCounting bool `protobuf:"varint,1,opt,name=enable_people_counting,json=enablePeopleCounting,proto3" json:"enable_people_counting,omitempty"`
	// Whether to count the appearances of vehicles, output counts will have
	// 'vehicle' as the key.
	EnableVehicleCounting bool `protobuf:"varint,2,opt,name=enable_vehicle_counting,json=enableVehicleCounting,proto3" json:"enable_vehicle_counting,omitempty"`
	// Whether to track each invidual object's loitering time inside the scene or
	// specific zone.
	EnableDwellingTimeTracking bool `protobuf:"varint,3,opt,name=enable_dwelling_time_tracking,json=enableDwellingTimeTracking,proto3" json:"enable_dwelling_time_tracking,omitempty"`
}

func (x *OccupancyCountConfig) Reset() {
	*x = OccupancyCountConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OccupancyCountConfig) ProtoMessage() {}

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

func (x *OccupancyCountConfig) GetEnablePeopleCounting() bool {
	if x != nil {
		return x.EnablePeopleCounting
	}
	return false
}

func (x *OccupancyCountConfig) GetEnableVehicleCounting() bool {
	if x != nil {
		return x.EnableVehicleCounting
	}
	return false
}

func (x *OccupancyCountConfig) GetEnableDwellingTimeTracking() bool {
	if x != nil {
		return x.EnableDwellingTimeTracking
	}
	return false
}

// Message describing PersonVehicleDetectionConfig.
type PersonVehicleDetectionConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// At least one of enable_people_counting and enable_vehicle_counting fields
	// must be set to true.
	// Whether to count the appearances of people, output counts have 'people' as
	// the key.
	EnablePeopleCounting bool `protobuf:"varint,1,opt,name=enable_people_counting,json=enablePeopleCounting,proto3" json:"enable_people_counting,omitempty"`
	// Whether to count the appearances of vehicles, output counts will have
	// 'vehicle' as the key.
	EnableVehicleCounting bool `protobuf:"varint,2,opt,name=enable_vehicle_counting,json=enableVehicleCounting,proto3" json:"enable_vehicle_counting,omitempty"`
}

func (x *PersonVehicleDetectionConfig) Reset() {
	*x = PersonVehicleDetectionConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonVehicleDetectionConfig) ProtoMessage() {}

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

func (x *PersonVehicleDetectionConfig) GetEnablePeopleCounting() bool {
	if x != nil {
		return x.EnablePeopleCounting
	}
	return false
}

func (x *PersonVehicleDetectionConfig) GetEnableVehicleCounting() bool {
	if x != nil {
		return x.EnableVehicleCounting
	}
	return false
}

// Message describing PersonalProtectiveEquipmentDetectionConfig.
type PersonalProtectiveEquipmentDetectionConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Whether to enable face coverage detection.
	EnableFaceCoverageDetection bool `protobuf:"varint,1,opt,name=enable_face_coverage_detection,json=enableFaceCoverageDetection,proto3" json:"enable_face_coverage_detection,omitempty"`
	// Whether to enable head coverage detection.
	EnableHeadCoverageDetection bool `protobuf:"varint,2,opt,name=enable_head_coverage_detection,json=enableHeadCoverageDetection,proto3" json:"enable_head_coverage_detection,omitempty"`
	// Whether to enable hands coverage detection.
	EnableHandsCoverageDetection bool `protobuf:"varint,3,opt,name=enable_hands_coverage_detection,json=enableHandsCoverageDetection,proto3" json:"enable_hands_coverage_detection,omitempty"`
}

func (x *PersonalProtectiveEquipmentDetectionConfig) Reset() {
	*x = PersonalProtectiveEquipmentDetectionConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PersonalProtectiveEquipmentDetectionConfig) ProtoMessage() {}

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

func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableFaceCoverageDetection() bool {
	if x != nil {
		return x.EnableFaceCoverageDetection
	}
	return false
}

func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableHeadCoverageDetection() bool {
	if x != nil {
		return x.EnableHeadCoverageDetection
	}
	return false
}

func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableHandsCoverageDetection() bool {
	if x != nil {
		return x.EnableHandsCoverageDetection
	}
	return false
}

// Message of configurations for General Object Detection processor.
type GeneralObjectDetectionConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GeneralObjectDetectionConfig) Reset() {
	*x = GeneralObjectDetectionConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GeneralObjectDetectionConfig) ProtoMessage() {}

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

// Message of configurations for BigQuery processor.
type BigQueryConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// BigQuery table resource for Vision AI Platform to ingest annotations to.
	Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
	// Data Schema
	// By default, Vision AI Application will try to write annotations to the
	// target BigQuery table using the following schema:
	//
	// ingestion_time: TIMESTAMP, the ingestion time of the original data.
	//
	// application: STRING, name of the application which produces the annotation.
	//
	// instance: STRING, Id of the instance which produces the annotation.
	//
	// node: STRING, name of the application graph node which produces the
	// annotation.
	//
	// annotation: STRING or JSON, the actual annotation protobuf will be
	// converted to json string with bytes field as 64 encoded string. It can be
	// written to both String or Json type column.
	//
	// To forward annotation data to an existing BigQuery table, customer needs to
	// make sure the compatibility of the schema.
	// The map maps application node name to its corresponding cloud function
	// endpoint to transform the annotations directly to the
	// google.cloud.bigquery.storage.v1.AppendRowsRequest (only avro_rows or
	// proto_rows should be set). If configured, annotations produced by
	// corresponding application node will sent to the Cloud Function at first
	// before be forwarded to BigQuery.
	//
	// If the default table schema doesn't fit, customer is able to transform the
	// annotation output from Vision AI Application to arbitrary BigQuery table
	// schema with CloudFunction.
	// * The cloud function will receive AppPlatformCloudFunctionRequest where
	// the annotations field will be the json format of Vision AI annotation.
	// * The cloud function should return AppPlatformCloudFunctionResponse with
	// AppendRowsRequest stored in the annotations field.
	// * To drop the annotation, simply clear the annotations field in the
	// returned AppPlatformCloudFunctionResponse.
	CloudFunctionMapping map[string]string `protobuf:"bytes,2,rep,name=cloud_function_mapping,json=cloudFunctionMapping,proto3" json:"cloud_function_mapping,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// If true, App Platform will create the BigQuery DataSet and the
	// BigQuery Table with default schema if the specified table doesn't exist.
	// This doesn't work if any cloud function customized schema is specified
	// since the system doesn't know your desired schema.
	// JSON column will be used in the default table created by App Platform.
	CreateDefaultTableIfNotExists bool `protobuf:"varint,3,opt,name=create_default_table_if_not_exists,json=createDefaultTableIfNotExists,proto3" json:"create_default_table_if_not_exists,omitempty"`
}

func (x *BigQueryConfig) Reset() {
	*x = BigQueryConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BigQueryConfig) ProtoMessage() {}

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

func (x *BigQueryConfig) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *BigQueryConfig) GetCloudFunctionMapping() map[string]string {
	if x != nil {
		return x.CloudFunctionMapping
	}
	return nil
}

func (x *BigQueryConfig) GetCreateDefaultTableIfNotExists() bool {
	if x != nil {
		return x.CreateDefaultTableIfNotExists
	}
	return false
}

// Message of configurations of Vertex AutoML Vision Processors.
type VertexAutoMLVisionConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Only entities with higher score than the threshold will be returned.
	// Value 0.0 means to return all the detected entities.
	ConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"`
	// At most this many predictions will be returned per output frame.
	// Value 0 means to return all the detected entities.
	MaxPredictions int32 `protobuf:"varint,2,opt,name=max_predictions,json=maxPredictions,proto3" json:"max_predictions,omitempty"`
}

func (x *VertexAutoMLVisionConfig) Reset() {
	*x = VertexAutoMLVisionConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VertexAutoMLVisionConfig) ProtoMessage() {}

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

func (x *VertexAutoMLVisionConfig) GetConfidenceThreshold() float32 {
	if x != nil {
		return x.ConfidenceThreshold
	}
	return 0
}

func (x *VertexAutoMLVisionConfig) GetMaxPredictions() int32 {
	if x != nil {
		return x.MaxPredictions
	}
	return 0
}

// Message describing VertexAutoMLVideoConfig.
type VertexAutoMLVideoConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Only entities with higher score than the threshold will be returned.
	// Value 0.0 means returns all the detected entities.
	ConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"`
	// Labels specified in this field won't be returned.
	BlockedLabels []string `protobuf:"bytes,2,rep,name=blocked_labels,json=blockedLabels,proto3" json:"blocked_labels,omitempty"`
	// At most this many predictions will be returned per output frame.
	// Value 0 means to return all the detected entities.
	MaxPredictions int32 `protobuf:"varint,3,opt,name=max_predictions,json=maxPredictions,proto3" json:"max_predictions,omitempty"`
	// Only Bounding Box whose size is larger than this limit will be returned.
	// Object Tracking only.
	// Value 0.0 means to return all the detected entities.
	BoundingBoxSizeLimit float32 `protobuf:"fixed32,4,opt,name=bounding_box_size_limit,json=boundingBoxSizeLimit,proto3" json:"bounding_box_size_limit,omitempty"`
}

func (x *VertexAutoMLVideoConfig) Reset() {
	*x = VertexAutoMLVideoConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VertexAutoMLVideoConfig) ProtoMessage() {}

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

func (x *VertexAutoMLVideoConfig) GetConfidenceThreshold() float32 {
	if x != nil {
		return x.ConfidenceThreshold
	}
	return 0
}

func (x *VertexAutoMLVideoConfig) GetBlockedLabels() []string {
	if x != nil {
		return x.BlockedLabels
	}
	return nil
}

func (x *VertexAutoMLVideoConfig) GetMaxPredictions() int32 {
	if x != nil {
		return x.MaxPredictions
	}
	return 0
}

func (x *VertexAutoMLVideoConfig) GetBoundingBoxSizeLimit() float32 {
	if x != nil {
		return x.BoundingBoxSizeLimit
	}
	return 0
}

// Message describing VertexCustomConfig.
type VertexCustomConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The max prediction frame per second. This attribute sets how fast the
	// operator sends prediction requests to Vertex AI endpoint. Default value is
	// 0, which means there is no max prediction fps limit. The operator sends
	// prediction requests at input fps.
	MaxPredictionFps int32 `protobuf:"varint,1,opt,name=max_prediction_fps,json=maxPredictionFps,proto3" json:"max_prediction_fps,omitempty"`
	// A description of resources that are dedicated to the DeployedModel, and
	// that need a higher degree of manual configuration.
	DedicatedResources *DedicatedResources `protobuf:"bytes,2,opt,name=dedicated_resources,json=dedicatedResources,proto3" json:"dedicated_resources,omitempty"`
	// If not empty, the prediction result will be sent to the specified cloud
	// function for post processing.
	// * The cloud function will receive AppPlatformCloudFunctionRequest where
	// the annotations field will be the json format of proto PredictResponse.
	// * The cloud function should return AppPlatformCloudFunctionResponse with
	// PredictResponse stored in the annotations field.
	// * To drop the prediction output, simply clear the payload field in the
	// returned AppPlatformCloudFunctionResponse.
	PostProcessingCloudFunction string `protobuf:"bytes,3,opt,name=post_processing_cloud_function,json=postProcessingCloudFunction,proto3" json:"post_processing_cloud_function,omitempty"`
	// If true, the prediction request received by custom model will also contain
	// metadata with the following schema:
	//
	//	'appPlatformMetadata': {
	//	      'ingestionTime': DOUBLE; (UNIX timestamp)
	//	      'application': STRING;
	//	      'instanceId': STRING;
	//	      'node': STRING;
	//	      'processor': STRING;
	//	 }
	AttachApplicationMetadata bool `protobuf:"varint,4,opt,name=attach_application_metadata,json=attachApplicationMetadata,proto3" json:"attach_application_metadata,omitempty"`
}

func (x *VertexCustomConfig) Reset() {
	*x = VertexCustomConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*VertexCustomConfig) ProtoMessage() {}

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

func (x *VertexCustomConfig) GetMaxPredictionFps() int32 {
	if x != nil {
		return x.MaxPredictionFps
	}
	return 0
}

func (x *VertexCustomConfig) GetDedicatedResources() *DedicatedResources {
	if x != nil {
		return x.DedicatedResources
	}
	return nil
}

func (x *VertexCustomConfig) GetPostProcessingCloudFunction() string {
	if x != nil {
		return x.PostProcessingCloudFunction
	}
	return ""
}

func (x *VertexCustomConfig) GetAttachApplicationMetadata() bool {
	if x != nil {
		return x.AttachApplicationMetadata
	}
	return false
}

// Specification of a single machine.
type MachineSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Immutable. The type of the machine.
	//
	// See the [list of machine types supported for
	// prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)
	//
	// See the [list of machine types supported for custom
	// training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
	//
	// For [DeployedModel][] this field is optional, and the default
	// value is `n1-standard-2`. For [BatchPredictionJob][] or as part of
	// [WorkerPoolSpec][] this field is required.
	MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
	// Immutable. The type of accelerator(s) that may be attached to the machine as per
	// [accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count].
	AcceleratorType AcceleratorType `protobuf:"varint,2,opt,name=accelerator_type,json=acceleratorType,proto3,enum=google.cloud.visionai.v1.AcceleratorType" json:"accelerator_type,omitempty"`
	// The number of accelerators to attach to the machine.
	AcceleratorCount int32 `protobuf:"varint,3,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
}

func (x *MachineSpec) Reset() {
	*x = MachineSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MachineSpec) ProtoMessage() {}

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

func (x *MachineSpec) GetMachineType() string {
	if x != nil {
		return x.MachineType
	}
	return ""
}

func (x *MachineSpec) GetAcceleratorType() AcceleratorType {
	if x != nil {
		return x.AcceleratorType
	}
	return AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED
}

func (x *MachineSpec) GetAcceleratorCount() int32 {
	if x != nil {
		return x.AcceleratorCount
	}
	return 0
}

// The metric specification that defines the target resource utilization
// (CPU utilization, accelerator's duty cycle, and so on) for calculating the
// desired replica count.
type AutoscalingMetricSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource metric name.
	// Supported metrics:
	//
	// * For Online Prediction:
	// * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle`
	// * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
	MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
	// The target resource utilization in percentage (1% - 100%) for the given
	// metric; once the real usage deviates from the target by a certain
	// percentage, the machine replicas change. The default value is 60
	// (representing 60%) if not provided.
	Target int32 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"`
}

func (x *AutoscalingMetricSpec) Reset() {
	*x = AutoscalingMetricSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AutoscalingMetricSpec) ProtoMessage() {}

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

func (x *AutoscalingMetricSpec) GetMetricName() string {
	if x != nil {
		return x.MetricName
	}
	return ""
}

func (x *AutoscalingMetricSpec) GetTarget() int32 {
	if x != nil {
		return x.Target
	}
	return 0
}

// A description of resources that are dedicated to a DeployedModel, and
// that need a higher degree of manual configuration.
type DedicatedResources struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Immutable. The specification of a single machine used by the prediction.
	MachineSpec *MachineSpec `protobuf:"bytes,1,opt,name=machine_spec,json=machineSpec,proto3" json:"machine_spec,omitempty"`
	// Required. Immutable. The minimum number of machine replicas this DeployedModel will be always
	// deployed on. This value must be greater than or equal to 1.
	//
	// If traffic against the DeployedModel increases, it may dynamically be
	// deployed onto more replicas, and as traffic decreases, some of these extra
	// replicas may be freed.
	MinReplicaCount int32 `protobuf:"varint,2,opt,name=min_replica_count,json=minReplicaCount,proto3" json:"min_replica_count,omitempty"`
	// Immutable. The maximum number of replicas this DeployedModel may be deployed on when
	// the traffic against it increases. If the requested value is too large,
	// the deployment will error, but if deployment succeeds then the ability
	// to scale the model to that many replicas is guaranteed (barring service
	// outages). If traffic against the DeployedModel increases beyond what its
	// replicas at maximum may handle, a portion of the traffic will be dropped.
	// If this value is not provided, will use [min_replica_count][google.cloud.visionai.v1.DedicatedResources.min_replica_count] as the
	// default value.
	//
	// The value of this field impacts the charge against Vertex CPU and GPU
	// quotas. Specifically, you will be charged for max_replica_count *
	// number of cores in the selected machine type) and (max_replica_count *
	// number of GPUs per replica in the selected machine type).
	MaxReplicaCount int32 `protobuf:"varint,3,opt,name=max_replica_count,json=maxReplicaCount,proto3" json:"max_replica_count,omitempty"`
	// Immutable. The metric specifications that overrides a resource
	// utilization metric (CPU utilization, accelerator's duty cycle, and so on)
	// target value (default to 60 if not set). At most one entry is allowed per
	// metric.
	//
	// If [machine_spec.accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count] is
	// above 0, the autoscaling will be based on both CPU utilization and
	// accelerator's duty cycle metrics and scale up when either metrics exceeds
	// its target value while scale down if both metrics are under their target
	// value. The default target value is 60 for both metrics.
	//
	// If [machine_spec.accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count] is
	// 0, the autoscaling will be based on CPU utilization metric only with
	// default target value 60 if not explicitly set.
	//
	// For example, in the case of Online Prediction, if you want to override
	// target CPU utilization to 80, you should set
	// [autoscaling_metric_specs.metric_name][google.cloud.visionai.v1.AutoscalingMetricSpec.metric_name]
	// to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and
	// [autoscaling_metric_specs.target][google.cloud.visionai.v1.AutoscalingMetricSpec.target] to `80`.
	AutoscalingMetricSpecs []*AutoscalingMetricSpec `protobuf:"bytes,4,rep,name=autoscaling_metric_specs,json=autoscalingMetricSpecs,proto3" json:"autoscaling_metric_specs,omitempty"`
}

func (x *DedicatedResources) Reset() {
	*x = DedicatedResources{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DedicatedResources) ProtoMessage() {}

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

func (x *DedicatedResources) GetMachineSpec() *MachineSpec {
	if x != nil {
		return x.MachineSpec
	}
	return nil
}

func (x *DedicatedResources) GetMinReplicaCount() int32 {
	if x != nil {
		return x.MinReplicaCount
	}
	return 0
}

func (x *DedicatedResources) GetMaxReplicaCount() int32 {
	if x != nil {
		return x.MaxReplicaCount
	}
	return 0
}

func (x *DedicatedResources) GetAutoscalingMetricSpecs() []*AutoscalingMetricSpec {
	if x != nil {
		return x.AutoscalingMetricSpecs
	}
	return nil
}

// Message about target streamInput to remove.
type RemoveApplicationStreamInputRequest_TargetStreamInput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"`
}

func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) Reset() {
	*x = RemoveApplicationStreamInputRequest_TargetStreamInput{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RemoveApplicationStreamInputRequest_TargetStreamInput) ProtoMessage() {}

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

func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) GetStream() string {
	if x != nil {
		return x.Stream
	}
	return ""
}

type UpdateApplicationInstancesRequest_UpdateApplicationInstance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Field mask is used to specify the fields to be overwritten in the
	// Draft resource by the update.
	// The fields specified in the update_mask are relative to the resource, not
	// the full request. A field will be overwritten if it is in the mask. If
	// the user does not provide a mask then all fields will be overwritten.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The resource being updated.
	Instance *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
	// Required. The id of the instance.
	InstanceId string `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
}

func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) Reset() {
	*x = UpdateApplicationInstancesRequest_UpdateApplicationInstance{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdateApplicationInstancesRequest_UpdateApplicationInstance) ProtoMessage() {}

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

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

func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) GetInstance() *Instance {
	if x != nil {
		return x.Instance
	}
	return nil
}

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

// Message storing the runtime information of the application.
type Application_ApplicationRuntimeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Timestamp when the engine be deployed
	DeployTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=deploy_time,json=deployTime,proto3" json:"deploy_time,omitempty"`
	// Globally created resources like warehouse dataschemas.
	GlobalOutputResources []*Application_ApplicationRuntimeInfo_GlobalOutputResource `protobuf:"bytes,3,rep,name=global_output_resources,json=globalOutputResources,proto3" json:"global_output_resources,omitempty"`
	// Monitoring-related configuration for this application.
	MonitoringConfig *Application_ApplicationRuntimeInfo_MonitoringConfig `protobuf:"bytes,4,opt,name=monitoring_config,json=monitoringConfig,proto3" json:"monitoring_config,omitempty"`
}

func (x *Application_ApplicationRuntimeInfo) Reset() {
	*x = Application_ApplicationRuntimeInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Application_ApplicationRuntimeInfo) ProtoMessage() {}

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

func (x *Application_ApplicationRuntimeInfo) GetDeployTime() *timestamppb.Timestamp {
	if x != nil {
		return x.DeployTime
	}
	return nil
}

func (x *Application_ApplicationRuntimeInfo) GetGlobalOutputResources() []*Application_ApplicationRuntimeInfo_GlobalOutputResource {
	if x != nil {
		return x.GlobalOutputResources
	}
	return nil
}

func (x *Application_ApplicationRuntimeInfo) GetMonitoringConfig() *Application_ApplicationRuntimeInfo_MonitoringConfig {
	if x != nil {
		return x.MonitoringConfig
	}
	return nil
}

// Message about output resources from application.
type Application_ApplicationRuntimeInfo_GlobalOutputResource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The full resource name of the outputted resources.
	OutputResource string `protobuf:"bytes,1,opt,name=output_resource,json=outputResource,proto3" json:"output_resource,omitempty"`
	// The name of graph node who produces the output resource name.
	// For example:
	// output_resource:
	// /projects/123/locations/us-central1/corpora/my-corpus/dataSchemas/my-schema
	// producer_node: occupancy-count
	ProducerNode string `protobuf:"bytes,2,opt,name=producer_node,json=producerNode,proto3" json:"producer_node,omitempty"`
	// The key of the output resource, it has to be unique within the same
	// producer node. One producer node can output several output resources,
	// the key can be used to match corresponding output resources.
	Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
}

func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) Reset() {
	*x = Application_ApplicationRuntimeInfo_GlobalOutputResource{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Application_ApplicationRuntimeInfo_GlobalOutputResource) ProtoMessage() {}

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

func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetOutputResource() string {
	if x != nil {
		return x.OutputResource
	}
	return ""
}

func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetProducerNode() string {
	if x != nil {
		return x.ProducerNode
	}
	return ""
}

func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

// Monitoring-related configuration for an application.
type Application_ApplicationRuntimeInfo_MonitoringConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Whether this application has monitoring enabled.
	Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) Reset() {
	*x = Application_ApplicationRuntimeInfo_MonitoringConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Application_ApplicationRuntimeInfo_MonitoringConfig) ProtoMessage() {}

func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[73]
	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 Application_ApplicationRuntimeInfo_MonitoringConfig.ProtoReflect.Descriptor instead.
func (*Application_ApplicationRuntimeInfo_MonitoringConfig) Descriptor() ([]byte, []int) {
	return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 0, 1}
}

func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

// message storing the config for event delivery
type ApplicationConfigs_EventDeliveryConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The delivery channel for the event notification, only pub/sub topic is
	// supported now.
	// Example channel:
	// [//pubsub.googleapis.com/projects/visionai-testing-stable/topics/test-topic]
	Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
	// The expected delivery interval for the same event. The same event won't
	// be notified multiple times during this internal event that it is
	// happening multiple times during the period of time.The same event is
	// identified by <event_id, app_platform_metadata>.
	MinimalDeliveryInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=minimal_delivery_interval,json=minimalDeliveryInterval,proto3" json:"minimal_delivery_interval,omitempty"`
}

func (x *ApplicationConfigs_EventDeliveryConfig) Reset() {
	*x = ApplicationConfigs_EventDeliveryConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplicationConfigs_EventDeliveryConfig) ProtoMessage() {}

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

func (x *ApplicationConfigs_EventDeliveryConfig) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *ApplicationConfigs_EventDeliveryConfig) GetMinimalDeliveryInterval() *durationpb.Duration {
	if x != nil {
		return x.MinimalDeliveryInterval
	}
	return nil
}

// Message describing one edge pointing into a node.
type Node_InputEdge struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the parent node.
	ParentNode string `protobuf:"bytes,1,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"`
	// The connected output artifact of the parent node.
	// It can be omitted if target processor only has 1 output artifact.
	ParentOutputChannel string `protobuf:"bytes,2,opt,name=parent_output_channel,json=parentOutputChannel,proto3" json:"parent_output_channel,omitempty"`
	// The connected input channel of the current node's processor.
	// It can be omitted if target processor only has 1 input channel.
	ConnectedInputChannel string `protobuf:"bytes,3,opt,name=connected_input_channel,json=connectedInputChannel,proto3" json:"connected_input_channel,omitempty"`
}

func (x *Node_InputEdge) Reset() {
	*x = Node_InputEdge{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Node_InputEdge) ProtoMessage() {}

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

func (x *Node_InputEdge) GetParentNode() string {
	if x != nil {
		return x.ParentNode
	}
	return ""
}

func (x *Node_InputEdge) GetParentOutputChannel() string {
	if x != nil {
		return x.ParentOutputChannel
	}
	return ""
}

func (x *Node_InputEdge) GetConnectedInputChannel() string {
	if x != nil {
		return x.ConnectedInputChannel
	}
	return ""
}

// Message of input resource used in one application instance.
type Instance_InputResource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Specify the input to the application instance.
	//
	// Types that are assignable to InputResourceInformation:
	//
	//	*Instance_InputResource_InputResource
	//	*Instance_InputResource_AnnotatedStream
	InputResourceInformation isInstance_InputResource_InputResourceInformation `protobuf_oneof:"input_resource_information"`
	// The name of graph node who receives the input resource.
	// For example:
	// input_resource:
	// visionai.googleapis.com/v1/projects/123/locations/us-central1/clusters/456/streams/input-stream-a
	// consumer_node: stream-input
	ConsumerNode string `protobuf:"bytes,2,opt,name=consumer_node,json=consumerNode,proto3" json:"consumer_node,omitempty"`
	// The specific input resource binding which will consume the current Input
	// Resource, can be ignored is there is only 1 input binding.
	InputResourceBinding string `protobuf:"bytes,3,opt,name=input_resource_binding,json=inputResourceBinding,proto3" json:"input_resource_binding,omitempty"`
	// Contains resource annotations.
	Annotations *ResourceAnnotations `protobuf:"bytes,5,opt,name=annotations,proto3" json:"annotations,omitempty"`
}

func (x *Instance_InputResource) Reset() {
	*x = Instance_InputResource{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Instance_InputResource) ProtoMessage() {}

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

func (m *Instance_InputResource) GetInputResourceInformation() isInstance_InputResource_InputResourceInformation {
	if m != nil {
		return m.InputResourceInformation
	}
	return nil
}

func (x *Instance_InputResource) GetInputResource() string {
	if x, ok := x.GetInputResourceInformation().(*Instance_InputResource_InputResource); ok {
		return x.InputResource
	}
	return ""
}

// Deprecated: Do not use.
func (x *Instance_InputResource) GetAnnotatedStream() *StreamWithAnnotation {
	if x, ok := x.GetInputResourceInformation().(*Instance_InputResource_AnnotatedStream); ok {
		return x.AnnotatedStream
	}
	return nil
}

func (x *Instance_InputResource) GetConsumerNode() string {
	if x != nil {
		return x.ConsumerNode
	}
	return ""
}

func (x *Instance_InputResource) GetInputResourceBinding() string {
	if x != nil {
		return x.InputResourceBinding
	}
	return ""
}

func (x *Instance_InputResource) GetAnnotations() *ResourceAnnotations {
	if x != nil {
		return x.Annotations
	}
	return nil
}

type isInstance_InputResource_InputResourceInformation interface {
	isInstance_InputResource_InputResourceInformation()
}

type Instance_InputResource_InputResource struct {
	// The direct input resource name.
	InputResource string `protobuf:"bytes,1,opt,name=input_resource,json=inputResource,proto3,oneof"`
}

type Instance_InputResource_AnnotatedStream struct {
	// If the input resource is VisionAI Stream, the associated annotations
	// can be specified using annotated_stream instead.
	//
	// Deprecated: Do not use.
	AnnotatedStream *StreamWithAnnotation `protobuf:"bytes,4,opt,name=annotated_stream,json=annotatedStream,proto3,oneof"`
}

func (*Instance_InputResource_InputResource) isInstance_InputResource_InputResourceInformation() {}

func (*Instance_InputResource_AnnotatedStream) isInstance_InputResource_InputResourceInformation() {}

// Message of output resource used in one application instance.
type Instance_OutputResource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The output resource name for the current application instance.
	OutputResource string `protobuf:"bytes,1,opt,name=output_resource,json=outputResource,proto3" json:"output_resource,omitempty"`
	// The name of graph node who produces the output resource name.
	// For example:
	// output_resource:
	// /projects/123/locations/us-central1/clusters/456/streams/output-application-789-stream-a-occupancy-counting
	// producer_node: occupancy-counting
	ProducerNode string `protobuf:"bytes,2,opt,name=producer_node,json=producerNode,proto3" json:"producer_node,omitempty"`
	// The specific output resource binding which produces the current
	// OutputResource.
	OutputResourceBinding string `protobuf:"bytes,4,opt,name=output_resource_binding,json=outputResourceBinding,proto3" json:"output_resource_binding,omitempty"`
	// Output only. Whether the output resource is temporary which means the resource is
	// generated during the deployment of the application.
	// Temporary resource will be deleted during the undeployment of the
	// application.
	IsTemporary bool `protobuf:"varint,3,opt,name=is_temporary,json=isTemporary,proto3" json:"is_temporary,omitempty"`
	// Output only. Whether the output resource is created automatically by the Vision AI App
	// Platform.
	Autogen bool `protobuf:"varint,5,opt,name=autogen,proto3" json:"autogen,omitempty"`
}

func (x *Instance_OutputResource) Reset() {
	*x = Instance_OutputResource{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Instance_OutputResource) ProtoMessage() {}

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

func (x *Instance_OutputResource) GetOutputResource() string {
	if x != nil {
		return x.OutputResource
	}
	return ""
}

func (x *Instance_OutputResource) GetProducerNode() string {
	if x != nil {
		return x.ProducerNode
	}
	return ""
}

func (x *Instance_OutputResource) GetOutputResourceBinding() string {
	if x != nil {
		return x.OutputResourceBinding
	}
	return ""
}

func (x *Instance_OutputResource) GetIsTemporary() bool {
	if x != nil {
		return x.IsTemporary
	}
	return false
}

func (x *Instance_OutputResource) GetAutogen() bool {
	if x != nil {
		return x.Autogen
	}
	return false
}

// Message for input channel specification.
type ProcessorIOSpec_GraphInputChannelSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the current input channel.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The data types of the current input channel.
	// When this field has more than 1 value, it means this input channel can be
	// connected to either of these different data types.
	DataType ProcessorIOSpec_DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=google.cloud.visionai.v1.ProcessorIOSpec_DataType" json:"data_type,omitempty"`
	// If specified, only those detailed data types can be connected to the
	// processor. For example, jpeg stream for MEDIA, or PredictionResult proto
	// for PROTO type. If unspecified, then any proto is accepted.
	AcceptedDataTypeUris []string `protobuf:"bytes,5,rep,name=accepted_data_type_uris,json=acceptedDataTypeUris,proto3" json:"accepted_data_type_uris,omitempty"`
	// Whether the current input channel is required by the processor.
	// For example, for a processor with required video input and optional audio
	// input, if video input is missing, the application will be rejected while
	// the audio input can be missing as long as the video input exists.
	Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
	// How many input edges can be connected to this input channel. 0 means
	// unlimited.
	MaxConnectionAllowed int64 `protobuf:"varint,4,opt,name=max_connection_allowed,json=maxConnectionAllowed,proto3" json:"max_connection_allowed,omitempty"`
}

func (x *ProcessorIOSpec_GraphInputChannelSpec) Reset() {
	*x = ProcessorIOSpec_GraphInputChannelSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorIOSpec_GraphInputChannelSpec) ProtoMessage() {}

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

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

func (x *ProcessorIOSpec_GraphInputChannelSpec) GetDataType() ProcessorIOSpec_DataType {
	if x != nil {
		return x.DataType
	}
	return ProcessorIOSpec_DATA_TYPE_UNSPECIFIED
}

func (x *ProcessorIOSpec_GraphInputChannelSpec) GetAcceptedDataTypeUris() []string {
	if x != nil {
		return x.AcceptedDataTypeUris
	}
	return nil
}

func (x *ProcessorIOSpec_GraphInputChannelSpec) GetRequired() bool {
	if x != nil {
		return x.Required
	}
	return false
}

func (x *ProcessorIOSpec_GraphInputChannelSpec) GetMaxConnectionAllowed() int64 {
	if x != nil {
		return x.MaxConnectionAllowed
	}
	return 0
}

// Message for output channel specification.
type ProcessorIOSpec_GraphOutputChannelSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the current output channel.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The data type of the current output channel.
	DataType    ProcessorIOSpec_DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=google.cloud.visionai.v1.ProcessorIOSpec_DataType" json:"data_type,omitempty"`
	DataTypeUri string                   `protobuf:"bytes,3,opt,name=data_type_uri,json=dataTypeUri,proto3" json:"data_type_uri,omitempty"`
}

func (x *ProcessorIOSpec_GraphOutputChannelSpec) Reset() {
	*x = ProcessorIOSpec_GraphOutputChannelSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorIOSpec_GraphOutputChannelSpec) ProtoMessage() {}

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

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

func (x *ProcessorIOSpec_GraphOutputChannelSpec) GetDataType() ProcessorIOSpec_DataType {
	if x != nil {
		return x.DataType
	}
	return ProcessorIOSpec_DATA_TYPE_UNSPECIFIED
}

func (x *ProcessorIOSpec_GraphOutputChannelSpec) GetDataTypeUri() string {
	if x != nil {
		return x.DataTypeUri
	}
	return ""
}

// Message for instance resource channel specification.
// External resources are virtual nodes which are not expressed in the
// application graph. Each processor expresses its out-graph spec, so customer
// is able to override the external source or destinations to the
type ProcessorIOSpec_InstanceResourceInputBindingSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to ResourceType:
	//
	//	*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri
	//	*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri
	ResourceType isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType `protobuf_oneof:"resource_type"`
	// Name of the input binding, unique within the processor.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) Reset() {
	*x = ProcessorIOSpec_InstanceResourceInputBindingSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorIOSpec_InstanceResourceInputBindingSpec) ProtoMessage() {}

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

func (m *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetResourceType() isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType {
	if m != nil {
		return m.ResourceType
	}
	return nil
}

func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetConfigTypeUri() string {
	if x, ok := x.GetResourceType().(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri); ok {
		return x.ConfigTypeUri
	}
	return ""
}

func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetResourceTypeUri() string {
	if x, ok := x.GetResourceType().(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri); ok {
		return x.ResourceTypeUri
	}
	return ""
}

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

type isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType interface {
	isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType()
}

type ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri struct {
	// The configuration proto that includes the Googleapis resources. I.e.
	// type.googleapis.com/google.cloud.vision.v1.StreamWithAnnotation
	ConfigTypeUri string `protobuf:"bytes,2,opt,name=config_type_uri,json=configTypeUri,proto3,oneof"`
}

type ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri struct {
	// The direct type url of Googleapis resource. i.e.
	// type.googleapis.com/google.cloud.vision.v1.Asset
	ResourceTypeUri string `protobuf:"bytes,3,opt,name=resource_type_uri,json=resourceTypeUri,proto3,oneof"`
}

func (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri) isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType() {
}

func (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri) isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType() {
}

type ProcessorIOSpec_InstanceResourceOutputBindingSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the output binding, unique within the processor.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The resource type uri of the acceptable output resource.
	ResourceTypeUri string `protobuf:"bytes,2,opt,name=resource_type_uri,json=resourceTypeUri,proto3" json:"resource_type_uri,omitempty"`
	// Whether the output resource needs to be explicitly set in the instance.
	// If it is false, the processor will automatically generate it if required.
	Explicit bool `protobuf:"varint,3,opt,name=explicit,proto3" json:"explicit,omitempty"`
}

func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) Reset() {
	*x = ProcessorIOSpec_InstanceResourceOutputBindingSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProcessorIOSpec_InstanceResourceOutputBindingSpec) ProtoMessage() {}

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

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

func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) GetResourceTypeUri() string {
	if x != nil {
		return x.ResourceTypeUri
	}
	return ""
}

func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) GetExplicit() bool {
	if x != nil {
		return x.Explicit
	}
	return false
}

// The schema is defined as an OpenAPI 3.0.2 [Schema
// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).
type CustomProcessorSourceInfo_ModelSchema struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Cloud Storage location to a YAML file that defines the format of a single
	// instance used in prediction and explanation requests.
	InstancesSchema *GcsSource `protobuf:"bytes,1,opt,name=instances_schema,json=instancesSchema,proto3" json:"instances_schema,omitempty"`
	// Cloud Storage location to a YAML file that defines the prediction and
	// explanation parameters.
	ParametersSchema *GcsSource `protobuf:"bytes,2,opt,name=parameters_schema,json=parametersSchema,proto3" json:"parameters_schema,omitempty"`
	// Cloud Storage location to a YAML file that defines the format of a single
	// prediction or explanation.
	PredictionsSchema *GcsSource `protobuf:"bytes,3,opt,name=predictions_schema,json=predictionsSchema,proto3" json:"predictions_schema,omitempty"`
}

func (x *CustomProcessorSourceInfo_ModelSchema) Reset() {
	*x = CustomProcessorSourceInfo_ModelSchema{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CustomProcessorSourceInfo_ModelSchema) ProtoMessage() {}

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

func (x *CustomProcessorSourceInfo_ModelSchema) GetInstancesSchema() *GcsSource {
	if x != nil {
		return x.InstancesSchema
	}
	return nil
}

func (x *CustomProcessorSourceInfo_ModelSchema) GetParametersSchema() *GcsSource {
	if x != nil {
		return x.ParametersSchema
	}
	return nil
}

func (x *CustomProcessorSourceInfo_ModelSchema) GetPredictionsSchema() *GcsSource {
	if x != nil {
		return x.PredictionsSchema
	}
	return nil
}

// Message describing annotations specific to application node.
type StreamWithAnnotation_NodeAnnotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The node name of the application graph.
	Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	// The node specific stream annotations.
	Annotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"`
}

func (x *StreamWithAnnotation_NodeAnnotation) Reset() {
	*x = StreamWithAnnotation_NodeAnnotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StreamWithAnnotation_NodeAnnotation) ProtoMessage() {}

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

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

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

var File_google_cloud_visionai_v1_platform_proto protoreflect.FileDescriptor

var file_google_cloud_visionai_v1_platform_proto_rawDesc = []byte{
	0x0a, 0x27, 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, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 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, 0x61, 0x70, 0x69, 0x2f,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 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, 0x1a, 0x25, 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, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
	0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x22, 0x24, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x0a,
	0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a,
	0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x15, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02,
	0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b,
	0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69,
	0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0b,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22,
	0x1b, 0x0a, 0x19, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x1b,
	0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0xcd, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41,
	0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d,
	0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62,
	0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79,
	0x22, 0xaf, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a,
	0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x25, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74,
	0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62,
	0x6c, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41,
	0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xfd, 0x01, 0x0a,
	0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41,
	0x25, 0x12, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2a,
	0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x25, 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, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a,
	0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4c, 0x0a, 0x0b, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x25, 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, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x01,
	0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25,
	0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12,
	0x19, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x44,
	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x22, 0x0a,
	0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
	0x64, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x12, 0x64, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x74, 0x68,
	0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 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, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x14, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a,
	0x19, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x30, 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, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x52, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22,
	0x9d, 0x02, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69,
	0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x17, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c,
	0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22,
	0xe0, 0x02, 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 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, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64,
	0x1a, 0x50, 0x0a, 0x11, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69,
	0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x22, 0xc7, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70,
	0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02,
	0xfa, 0x41, 0x22, 0x12, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a,
	0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61,
	0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa3, 0x01, 0x0a,
	0x15, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 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, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74,
	0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62,
	0x6c, 0x65, 0x22, 0x52, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20,
	0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44,
	0x72, 0x61, 0x66, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41,
	0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72,
	0x61, 0x66, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
	0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65,
	0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61,
	0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
	0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x97, 0x01, 0x0a, 0x12, 0x4c,
	0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x37, 0x0a, 0x06, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1f, 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, 0x44, 0x72, 0x61,
	0x66, 0x74, 0x52, 0x06, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
	0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c,
	0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68,
	0x61, 0x62, 0x6c, 0x65, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61,
	0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41,
	0x1f, 0x12, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74,
	0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x66,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x07, 0x64, 0x72, 0x61, 0x66, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 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, 0x44, 0x72, 0x61, 0x66, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x64,
	0x72, 0x61, 0x66, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xdb, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73,
	0x6b, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 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, 0x44, 0x72, 0x61, 0x66,
	0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, 0x22, 0x0a,
	0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49,
	0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69,
	0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d,
	0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x8a, 0x01,
	0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23,
	0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73,
	0x69, 0x6e, 0x67, 0x1a, 0xc8, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
	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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61,
	0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
	0x61, 0x73, 0x6b, 0x12, 0x43, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 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, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x73,
	0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69,
	0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x49, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a,
	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0,
	0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a,
	0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22,
	0xa7, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
	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, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12,
	0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61,
	0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61,
	0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e,
	0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x62, 0x0a, 0x1d, 0x4c, 0x69, 0x73,
	0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x23, 0x12, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x65, 0x0a,
	0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x23, 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,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x73, 0x22, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41,
	0x23, 0x0a, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x16, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x64,
	0x12, 0x46, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x23, 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,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a,
	0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46,
	0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 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, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0,
	0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22,
	0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x49, 0x64, 0x22, 0xa3, 0x0b, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x6c, 0x61,
	0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x5d, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x07, 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, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x64,
	0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0e, 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, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x83, 0x04, 0x0a,
	0x16, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6e, 0x74,
	0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f,
	0x79, 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, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x17, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f,
	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61,
	0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
	0x12, 0x7a, 0x0a, 0x11, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 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, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75,
	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
	0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x76, 0x0a, 0x14,
	0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, 0x0a,
	0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x6f,
	0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x1a, 0x2c, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
	0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x01,
	0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45,
	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b,
	0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44,
	0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45,
	0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x44, 0x45,
	0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c,
	0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
	0x06, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12,
	0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0c, 0x0a,
	0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x46,
	0x49, 0x58, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x3a, 0x6f, 0xea, 0x41, 0x6c, 0x0a, 0x23, 0x76, 0x69,
	0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x42, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f,
	0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
	0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x52, 0x01, 0x01, 0x22, 0xc9, 0x02, 0x0a, 0x12, 0x41, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12,
	0x34, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
	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, 0x64, 0x65, 0x52, 0x05,
	0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x15, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64,
	0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03,
	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,
	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c,
	0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x86, 0x01, 0x0a, 0x13,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x55, 0x0a,
	0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72,
	0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x6d, 0x69, 0x6e,
	0x69, 0x6d, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65,
	0x72, 0x76, 0x61, 0x6c, 0x22, 0xf4, 0x03, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x4f, 0x0a,
	0x24, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1f, 0x6f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x4a, 0x0a, 0x0b, 0x6e, 0x6f,
	0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x29, 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, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18,
	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 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, 0x64, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x64, 0x67, 0x65, 0x52,
	0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x98, 0x01, 0x0a, 0x09, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x45, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x63,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x6f,
	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xcd, 0x04, 0x0a, 0x05,
	0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a,
	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 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, 0x44, 0x72, 0x61, 0x66, 0x74, 0x2e, 0x4c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64,
	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x19,
	0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 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, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x17, 0x64,
	0x72, 0x61, 0x66, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x3a, 0x78, 0xea, 0x41, 0x75, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
	0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73,
	0x2f, 0x7b, 0x64, 0x72, 0x61, 0x66, 0x74, 0x7d, 0x52, 0x01, 0x01, 0x22, 0xe1, 0x0b, 0x0a, 0x08,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x08, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
	0x03, 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, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x30, 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, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
	0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
	0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x28, 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, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x1a, 0xe3, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x61,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18,
	0x04, 0x20, 0x01, 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, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x4e, 0x6f, 0x64,
	0x65, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x14, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 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, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x69, 0x6e, 0x70, 0x75,
	0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72,
	0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xdd, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6e,
	0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75,
	0x63, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69,
	0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12,
	0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x69, 0x73, 0x54, 0x65,
	0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x67,
	0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x61,
	0x75, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0xa7, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53,
	0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01,
	0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a,
	0x09, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08,
	0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e,
	0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x44,
	0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f,
	0x52, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10,
	0x08, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12,
	0x0a, 0x0a, 0x06, 0x46, 0x49, 0x58, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x3a, 0x81, 0x01, 0xea, 0x41,
	0x7e, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x12, 0x57, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x52, 0x01, 0x01, 0x22,
	0x80, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a,
	0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x22, 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, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x22, 0xca, 0x0a, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 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, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x4c, 0x61,
	0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c,
	0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69,
	0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0e, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x31, 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,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23,
	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, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x74,
	0x0a, 0x1c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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,
	0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x19, 0x63, 0x75, 0x73, 0x74, 0x6f,
	0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x32, 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,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x5f, 0x69, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
	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, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f,
	0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x12,
	0x38, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x75, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x75, 0x72, 0x6c, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x75, 0x70,
	0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 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, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18,
	0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16,
	0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0x5a, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x4f, 0x52, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x45, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44,
	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x0d,
	0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x65, 0x0a,
	0x0e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x1f, 0x0a, 0x1b, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a,
	0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45,
	0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c,
	0x45, 0x44, 0x10, 0x04, 0x3a, 0x69, 0xea, 0x41, 0x66, 0x0a, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f,
	0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x3e, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73,
	0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x7d, 0x52, 0x01, 0x01, 0x22,
	0xd9, 0x0a, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53,
	0x70, 0x65, 0x63, 0x12, 0x7a, 0x0a, 0x19, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 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, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65,
	0x63, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x52, 0x16, 0x67, 0x72, 0x61, 0x70, 0x68, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12,
	0x7d, 0x0a, 0x1a, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20,
	0x03, 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, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47,
	0x72, 0x61, 0x70, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x53, 0x70, 0x65, 0x63, 0x52, 0x17, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x9c,
	0x01, 0x0a, 0x25, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69,
	0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a,
	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, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42,
	0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x21, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x9f, 0x01,
	0x0a, 0x26, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69,
	0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b,
	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, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x22, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a,
	0x85, 0x02, 0x0a, 0x15, 0x47, 0x72, 0x61, 0x70, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a,
	0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x32, 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, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35,
	0x0a, 0x17, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x14, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
	0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x61, 0x70,
	0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70,
	0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 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, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f,
	0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64,
	0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x1a, 0x9f, 0x01, 0x0a, 0x20,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63,
	0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f,
	0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x7f, 0x0a,
	0x21, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70,
	0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x55,
	0x72, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x22, 0x3b,
	0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41,
	0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x01,
	0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, 0x02, 0x22, 0xa7, 0x06, 0x0a, 0x19,
	0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x65, 0x72,
	0x74, 0x65, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x00, 0x52, 0x0b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x5f,
	0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x3e, 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, 0x43,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x75, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e,
	0x66, 0x6f, 0x18, 0x04, 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, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x64,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x62, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f,
	0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 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, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0b, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x83, 0x02, 0x0a, 0x0b, 0x4d,
	0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4e, 0x0a, 0x10, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 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,
	0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x50, 0x0a, 0x11, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 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, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x52, 0x0a, 0x12,
	0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 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, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x70,
	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
	0x1a, 0x41, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e,
	0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11,
	0x0a, 0x0d, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10,
	0x01, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x43, 0x55, 0x53, 0x54,
	0x4f, 0x4d, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x8d, 0x0b, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6d, 0x0a, 0x19, 0x76, 0x69, 0x64,
	0x65, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00,
	0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7d, 0x0a, 0x1f, 0x61, 0x69, 0x5f, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x69,
	0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x35, 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, 0x49, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1b, 0x61, 0x69, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x16, 0x6d, 0x65, 0x64, 0x69, 0x61,
	0x5f, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x0a, 0x20, 0x01, 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, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x65, 0x64, 0x69, 0x61,
	0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x5a, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x75, 0x72, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 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, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x70, 0x65, 0x72, 0x73, 0x6f,
	0x6e, 0x42, 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x16, 0x6f,
	0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 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, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6f,
	0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x7f, 0x0a, 0x1f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0x73, 0x0a, 0x1b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x61,
	0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d,
	0x4c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
	0x18, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x56, 0x69, 0x73,
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x1a, 0x76, 0x65, 0x72,
	0x74, 0x65, 0x78, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41,
	0x75, 0x74, 0x6f, 0x4d, 0x4c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x48, 0x00, 0x52, 0x17, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x6c,
	0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x14, 0x76,
	0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x11, 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, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x75, 0x73, 0x74, 0x6f,
	0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x12, 0x76, 0x65, 0x72, 0x74, 0x65,
	0x78, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7f, 0x0a,
	0x1f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f,
	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00,
	0x52, 0x1c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54,
	0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 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, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0xaa, 0x01, 0x0a, 0x2e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61,
	0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x71, 0x75,
	0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 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, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x2a, 0x70, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x42, 0x12, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x96, 0x03, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b,
	0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23,
	0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x63, 0x0a, 0x17, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 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, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x12, 0x68, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 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, 0x57, 0x69, 0x74, 0x68,
	0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x72, 0x0a, 0x0e, 0x4e, 0x6f,
	0x64, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65,
	0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x02, 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, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7d,
	0x0a, 0x19, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64,
	0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12,
	0x4c, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
	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, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xda, 0x01,
	0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 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, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x6e, 0x6f,
	0x64, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x41,
	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x16, 0x56,
	0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x73, 0x12, 0x6a, 0x0a, 0x17, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x77,
	0x69, 0x74, 0x68, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
	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,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x73, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x1d, 0x0a, 0x1b, 0x41, 0x49, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x77,
	0x0a, 0x14, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x1a,
	0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02,
	0x18, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0xf0, 0x01, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x73,
	0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x10,
	0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x75, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 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, 0x42, 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79,
	0x22, 0x58, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x55,
	0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
	0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4f, 0x43, 0x43,
	0x55, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x4c, 0x55,
	0x52, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x02, 0x22, 0xc7, 0x01, 0x0a, 0x14, 0x4f,
	0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65,
	0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x6f, 0x70, 0x6c,
	0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e,
	0x67, 0x12, 0x41, 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x77, 0x65, 0x6c,
	0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69,
	0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x44, 0x77, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x63,
	0x6b, 0x69, 0x6e, 0x67, 0x22, 0x8c, 0x01, 0x0a, 0x1c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56,
	0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f,
	0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x6f,
	0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x69, 0x6e, 0x67, 0x22, 0xfd, 0x01, 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, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x12, 0x43, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63,
	0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x46, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f,
	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72,
	0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x1f,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x6e,
	0x64, 0x73, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x22, 0xb4, 0x02, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x78, 0x0a, 0x16,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d,
	0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x03, 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, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x14, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
	0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69,
	0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x1d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
	0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74,
	0x73, 0x1a, 0x47, 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x76, 0x0a, 0x18, 0x56, 0x65,
	0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x4c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64,
	0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65,
	0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78,
	0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74,
	0x6f, 0x4d, 0x4c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31,
	0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72,
	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
	0x64, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62,
	0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f,
	0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x35, 0x0a, 0x17, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f,
	0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x14, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x53,
	0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa6, 0x02, 0x0a, 0x12, 0x56, 0x65, 0x72,
	0x74, 0x65, 0x78, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x66, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x61, 0x78,
	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x70, 0x73, 0x12, 0x5d, 0x0a,
	0x13, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 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, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x1e,
	0x70, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x70, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x3e, 0x0a, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x22, 0xbd, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61,
	0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x63, 0x63,
	0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x29, 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,
	0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x05, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x22, 0x55, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67,
	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xbb, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x64,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12,
	0x50, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41,
	0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x32, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x06, 0xe0, 0x41,
	0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6e, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63,
	0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65,
	0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 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, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d,
	0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16,
	0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69,
	0x63, 0x53, 0x70, 0x65, 0x63, 0x73, 0x2a, 0xe6, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59,
	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x18, 0x0a, 0x14, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49,
	0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42,
	0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02,
	0x12, 0x18, 0x0a, 0x14, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49,
	0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x49,
	0x44, 0x45, 0x4f, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b,
	0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x41,
	0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x54, 0x49, 0x4f,
	0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59,
	0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50,
	0x45, 0x52, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x55, 0x52, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d,
	0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x08, 0x2a,
	0xd0, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, 0x43, 0x45, 0x4c, 0x45, 0x52, 0x41, 0x54,
	0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f,
	0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x4b, 0x38, 0x30, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4e,
	0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x50, 0x31, 0x30, 0x30,
	0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53,
	0x4c, 0x41, 0x5f, 0x56, 0x31, 0x30, 0x30, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x56, 0x49,
	0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x50, 0x34, 0x10, 0x04, 0x12, 0x13,
	0x0a, 0x0f, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x54,
	0x34, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45,
	0x53, 0x4c, 0x41, 0x5f, 0x41, 0x31, 0x30, 0x30, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x50,
	0x55, 0x5f, 0x56, 0x32, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x50, 0x55, 0x5f, 0x56, 0x33,
	0x10, 0x07, 0x32, 0xea, 0x2d, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 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, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 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, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c,
	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 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,
	0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 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, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe5, 0x01,
	0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x32, 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, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x22, 0x30,
	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x3a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x12,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xf7, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e,
	0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8e,
	0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x32, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0xda, 0x41, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x20, 0x0a,
	0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
	0xd4, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 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, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32,
	0x2a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
	0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe2, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x6c, 0x6f,
	0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 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, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75,
	0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x7a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
	0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
	0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2e, 0x0a, 0x19, 0x44,
	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xea, 0x01, 0x0a, 0x13,
	0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x34, 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, 0x55,
	0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e,
	0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
	0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x30, 0x0a, 0x1b, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c,
	0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x83, 0x02, 0x0a, 0x19, 0x41, 0x64, 0x64,
	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3a, 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, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x8a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f,
	0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a,
	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64,
	0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x36, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x8f,
	0x02, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12,
	0x3d, 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, 0x52, 0x65, 0x6d, 0x6f, 0x76,
	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e,
	0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x90, 0x01,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x39, 0x0a, 0x24, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x8f, 0x02, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x12, 0x3d, 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, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75,
	0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x90, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e,
	0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c,
	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0xda,
	0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x39, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x12, 0xbf, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x73, 0x12, 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,
	0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 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,
	0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f,
	0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
	0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x12, 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,
	0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x22, 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, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c,
	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x92, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x73, 0x12, 0x3b, 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, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e,
	0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x97,
	0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
	0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41,
	0x37, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xf7, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3b, 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, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x22, 0x4b, 0x2f, 0x76, 0x31,
	0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
	0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12,
	0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x12, 0xa9, 0x02, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x73, 0x12, 0x3b, 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, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e,
	0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1b, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x73, 0xca, 0x41, 0x37, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb3,
	0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x12, 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, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61,
	0x66, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b,
	0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x12, 0xa0, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x44, 0x72, 0x61, 0x66,
	0x74, 0x12, 0x29, 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, 0x47, 0x65, 0x74,
	0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 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, 0x44, 0x72, 0x61, 0x66, 0x74, 0x22, 0x48, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
	0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x2f, 0x2a, 0x7d,
	0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd9, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x39, 0x2f, 0x76,
	0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d,
	0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x3a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0xda, 0x41,
	0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x72, 0x61, 0x66, 0x74, 0x2c, 0x64, 0x72,
	0x61, 0x66, 0x74, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x44, 0x72, 0x61, 0x66, 0x74,
	0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x12, 0xdb, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x72,
	0x61, 0x66, 0x74, 0x12, 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, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72,
	0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64,
	0x72, 0x61, 0x66, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f,
	0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74,
	0xda, 0x41, 0x11, 0x64, 0x72, 0x61, 0x66, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
	0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x11,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x12, 0xd1, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66,
	0x74, 0x12, 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, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e,
	0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
	0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x2f, 0x2a,
	0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb4, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x2f, 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, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 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, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xd8, 0x01, 0x0a,
	0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x37, 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, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x38, 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, 0x4c, 0x69, 0x73, 0x74,
	0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x3c, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41,
	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 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, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 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, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x3d, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x0f,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12,
	0x30, 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, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72,
	0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
	0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x3a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0xda, 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe9, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x30, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
	0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x45, 0x32, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f,
	0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x09, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0xda, 0x41, 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
	0xca, 0x41, 0x1e, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x11,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x12, 0xce, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x30, 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, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x2a, 0x2e,
	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a,
	0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
	0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41,
	0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68,
	0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42,
	0xc5, 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, 0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 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_platform_proto_rawDescOnce sync.Once
	file_google_cloud_visionai_v1_platform_proto_rawDescData = file_google_cloud_visionai_v1_platform_proto_rawDesc
)

func file_google_cloud_visionai_v1_platform_proto_rawDescGZIP() []byte {
	file_google_cloud_visionai_v1_platform_proto_rawDescOnce.Do(func() {
		file_google_cloud_visionai_v1_platform_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_platform_proto_rawDescData)
	})
	return file_google_cloud_visionai_v1_platform_proto_rawDescData
}

var file_google_cloud_visionai_v1_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
var file_google_cloud_visionai_v1_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 89)
var file_google_cloud_visionai_v1_platform_proto_goTypes = []interface{}{
	(ModelType)(0),                                                      // 0: google.cloud.visionai.v1.ModelType
	(AcceleratorType)(0),                                                // 1: google.cloud.visionai.v1.AcceleratorType
	(Application_State)(0),                                              // 2: google.cloud.visionai.v1.Application.State
	(Instance_State)(0),                                                 // 3: google.cloud.visionai.v1.Instance.State
	(Processor_ProcessorType)(0),                                        // 4: google.cloud.visionai.v1.Processor.ProcessorType
	(Processor_ProcessorState)(0),                                       // 5: google.cloud.visionai.v1.Processor.ProcessorState
	(ProcessorIOSpec_DataType)(0),                                       // 6: google.cloud.visionai.v1.ProcessorIOSpec.DataType
	(CustomProcessorSourceInfo_SourceType)(0),                           // 7: google.cloud.visionai.v1.CustomProcessorSourceInfo.SourceType
	(PersonBlurConfig_PersonBlurType)(0),                                // 8: google.cloud.visionai.v1.PersonBlurConfig.PersonBlurType
	(*DeleteApplicationInstancesResponse)(nil),                          // 9: google.cloud.visionai.v1.DeleteApplicationInstancesResponse
	(*CreateApplicationInstancesResponse)(nil),                          // 10: google.cloud.visionai.v1.CreateApplicationInstancesResponse
	(*UpdateApplicationInstancesResponse)(nil),                          // 11: google.cloud.visionai.v1.UpdateApplicationInstancesResponse
	(*CreateApplicationInstancesRequest)(nil),                           // 12: google.cloud.visionai.v1.CreateApplicationInstancesRequest
	(*DeleteApplicationInstancesRequest)(nil),                           // 13: google.cloud.visionai.v1.DeleteApplicationInstancesRequest
	(*DeployApplicationResponse)(nil),                                   // 14: google.cloud.visionai.v1.DeployApplicationResponse
	(*UndeployApplicationResponse)(nil),                                 // 15: google.cloud.visionai.v1.UndeployApplicationResponse
	(*RemoveApplicationStreamInputResponse)(nil),                        // 16: google.cloud.visionai.v1.RemoveApplicationStreamInputResponse
	(*AddApplicationStreamInputResponse)(nil),                           // 17: google.cloud.visionai.v1.AddApplicationStreamInputResponse
	(*UpdateApplicationStreamInputResponse)(nil),                        // 18: google.cloud.visionai.v1.UpdateApplicationStreamInputResponse
	(*ListApplicationsRequest)(nil),                                     // 19: google.cloud.visionai.v1.ListApplicationsRequest
	(*ListApplicationsResponse)(nil),                                    // 20: google.cloud.visionai.v1.ListApplicationsResponse
	(*GetApplicationRequest)(nil),                                       // 21: google.cloud.visionai.v1.GetApplicationRequest
	(*CreateApplicationRequest)(nil),                                    // 22: google.cloud.visionai.v1.CreateApplicationRequest
	(*UpdateApplicationRequest)(nil),                                    // 23: google.cloud.visionai.v1.UpdateApplicationRequest
	(*DeleteApplicationRequest)(nil),                                    // 24: google.cloud.visionai.v1.DeleteApplicationRequest
	(*DeployApplicationRequest)(nil),                                    // 25: google.cloud.visionai.v1.DeployApplicationRequest
	(*UndeployApplicationRequest)(nil),                                  // 26: google.cloud.visionai.v1.UndeployApplicationRequest
	(*ApplicationStreamInput)(nil),                                      // 27: google.cloud.visionai.v1.ApplicationStreamInput
	(*AddApplicationStreamInputRequest)(nil),                            // 28: google.cloud.visionai.v1.AddApplicationStreamInputRequest
	(*UpdateApplicationStreamInputRequest)(nil),                         // 29: google.cloud.visionai.v1.UpdateApplicationStreamInputRequest
	(*RemoveApplicationStreamInputRequest)(nil),                         // 30: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest
	(*ListInstancesRequest)(nil),                                        // 31: google.cloud.visionai.v1.ListInstancesRequest
	(*ListInstancesResponse)(nil),                                       // 32: google.cloud.visionai.v1.ListInstancesResponse
	(*GetInstanceRequest)(nil),                                          // 33: google.cloud.visionai.v1.GetInstanceRequest
	(*ListDraftsRequest)(nil),                                           // 34: google.cloud.visionai.v1.ListDraftsRequest
	(*ListDraftsResponse)(nil),                                          // 35: google.cloud.visionai.v1.ListDraftsResponse
	(*GetDraftRequest)(nil),                                             // 36: google.cloud.visionai.v1.GetDraftRequest
	(*CreateDraftRequest)(nil),                                          // 37: google.cloud.visionai.v1.CreateDraftRequest
	(*UpdateDraftRequest)(nil),                                          // 38: google.cloud.visionai.v1.UpdateDraftRequest
	(*UpdateApplicationInstancesRequest)(nil),                           // 39: google.cloud.visionai.v1.UpdateApplicationInstancesRequest
	(*DeleteDraftRequest)(nil),                                          // 40: google.cloud.visionai.v1.DeleteDraftRequest
	(*ListProcessorsRequest)(nil),                                       // 41: google.cloud.visionai.v1.ListProcessorsRequest
	(*ListProcessorsResponse)(nil),                                      // 42: google.cloud.visionai.v1.ListProcessorsResponse
	(*ListPrebuiltProcessorsRequest)(nil),                               // 43: google.cloud.visionai.v1.ListPrebuiltProcessorsRequest
	(*ListPrebuiltProcessorsResponse)(nil),                              // 44: google.cloud.visionai.v1.ListPrebuiltProcessorsResponse
	(*GetProcessorRequest)(nil),                                         // 45: google.cloud.visionai.v1.GetProcessorRequest
	(*CreateProcessorRequest)(nil),                                      // 46: google.cloud.visionai.v1.CreateProcessorRequest
	(*UpdateProcessorRequest)(nil),                                      // 47: google.cloud.visionai.v1.UpdateProcessorRequest
	(*DeleteProcessorRequest)(nil),                                      // 48: google.cloud.visionai.v1.DeleteProcessorRequest
	(*Application)(nil),                                                 // 49: google.cloud.visionai.v1.Application
	(*ApplicationConfigs)(nil),                                          // 50: google.cloud.visionai.v1.ApplicationConfigs
	(*Node)(nil),                                                        // 51: google.cloud.visionai.v1.Node
	(*Draft)(nil),                                                       // 52: google.cloud.visionai.v1.Draft
	(*Instance)(nil),                                                    // 53: google.cloud.visionai.v1.Instance
	(*ApplicationInstance)(nil),                                         // 54: google.cloud.visionai.v1.ApplicationInstance
	(*Processor)(nil),                                                   // 55: google.cloud.visionai.v1.Processor
	(*ProcessorIOSpec)(nil),                                             // 56: google.cloud.visionai.v1.ProcessorIOSpec
	(*CustomProcessorSourceInfo)(nil),                                   // 57: google.cloud.visionai.v1.CustomProcessorSourceInfo
	(*ProcessorConfig)(nil),                                             // 58: google.cloud.visionai.v1.ProcessorConfig
	(*StreamWithAnnotation)(nil),                                        // 59: google.cloud.visionai.v1.StreamWithAnnotation
	(*ApplicationNodeAnnotation)(nil),                                   // 60: google.cloud.visionai.v1.ApplicationNodeAnnotation
	(*ResourceAnnotations)(nil),                                         // 61: google.cloud.visionai.v1.ResourceAnnotations
	(*VideoStreamInputConfig)(nil),                                      // 62: google.cloud.visionai.v1.VideoStreamInputConfig
	(*AIEnabledDevicesInputConfig)(nil),                                 // 63: google.cloud.visionai.v1.AIEnabledDevicesInputConfig
	(*MediaWarehouseConfig)(nil),                                        // 64: google.cloud.visionai.v1.MediaWarehouseConfig
	(*PersonBlurConfig)(nil),                                            // 65: google.cloud.visionai.v1.PersonBlurConfig
	(*OccupancyCountConfig)(nil),                                        // 66: google.cloud.visionai.v1.OccupancyCountConfig
	(*PersonVehicleDetectionConfig)(nil),                                // 67: google.cloud.visionai.v1.PersonVehicleDetectionConfig
	(*PersonalProtectiveEquipmentDetectionConfig)(nil),                  // 68: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionConfig
	(*GeneralObjectDetectionConfig)(nil),                                // 69: google.cloud.visionai.v1.GeneralObjectDetectionConfig
	(*BigQueryConfig)(nil),                                              // 70: google.cloud.visionai.v1.BigQueryConfig
	(*VertexAutoMLVisionConfig)(nil),                                    // 71: google.cloud.visionai.v1.VertexAutoMLVisionConfig
	(*VertexAutoMLVideoConfig)(nil),                                     // 72: google.cloud.visionai.v1.VertexAutoMLVideoConfig
	(*VertexCustomConfig)(nil),                                          // 73: google.cloud.visionai.v1.VertexCustomConfig
	(*MachineSpec)(nil),                                                 // 74: google.cloud.visionai.v1.MachineSpec
	(*AutoscalingMetricSpec)(nil),                                       // 75: google.cloud.visionai.v1.AutoscalingMetricSpec
	(*DedicatedResources)(nil),                                          // 76: google.cloud.visionai.v1.DedicatedResources
	(*RemoveApplicationStreamInputRequest_TargetStreamInput)(nil),       // 77: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.TargetStreamInput
	(*UpdateApplicationInstancesRequest_UpdateApplicationInstance)(nil), // 78: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance
	(*Application_ApplicationRuntimeInfo)(nil),                          // 79: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo
	nil, // 80: google.cloud.visionai.v1.Application.LabelsEntry
	(*Application_ApplicationRuntimeInfo_GlobalOutputResource)(nil), // 81: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.GlobalOutputResource
	(*Application_ApplicationRuntimeInfo_MonitoringConfig)(nil),     // 82: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.MonitoringConfig
	(*ApplicationConfigs_EventDeliveryConfig)(nil),                  // 83: google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig
	(*Node_InputEdge)(nil),          // 84: google.cloud.visionai.v1.Node.InputEdge
	nil,                             // 85: google.cloud.visionai.v1.Draft.LabelsEntry
	(*Instance_InputResource)(nil),  // 86: google.cloud.visionai.v1.Instance.InputResource
	(*Instance_OutputResource)(nil), // 87: google.cloud.visionai.v1.Instance.OutputResource
	nil,                             // 88: google.cloud.visionai.v1.Instance.LabelsEntry
	nil,                             // 89: google.cloud.visionai.v1.Processor.LabelsEntry
	(*ProcessorIOSpec_GraphInputChannelSpec)(nil),             // 90: google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec
	(*ProcessorIOSpec_GraphOutputChannelSpec)(nil),            // 91: google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec
	(*ProcessorIOSpec_InstanceResourceInputBindingSpec)(nil),  // 92: google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceInputBindingSpec
	(*ProcessorIOSpec_InstanceResourceOutputBindingSpec)(nil), // 93: google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceOutputBindingSpec
	(*CustomProcessorSourceInfo_ModelSchema)(nil),             // 94: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema
	nil, // 95: google.cloud.visionai.v1.CustomProcessorSourceInfo.AdditionalInfoEntry
	(*StreamWithAnnotation_NodeAnnotation)(nil), // 96: google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation
	nil,                           // 97: google.cloud.visionai.v1.BigQueryConfig.CloudFunctionMappingEntry
	(*fieldmaskpb.FieldMask)(nil), // 98: google.protobuf.FieldMask
	(*timestamppb.Timestamp)(nil), // 99: google.protobuf.Timestamp
	(StreamAnnotationType)(0),     // 100: google.cloud.visionai.v1.StreamAnnotationType
	(*StreamAnnotation)(nil),      // 101: google.cloud.visionai.v1.StreamAnnotation
	(*durationpb.Duration)(nil),   // 102: google.protobuf.Duration
	(*GcsSource)(nil),             // 103: google.cloud.visionai.v1.GcsSource
	(*longrunning.Operation)(nil), // 104: google.longrunning.Operation
}
var file_google_cloud_visionai_v1_platform_proto_depIdxs = []int32{
	54,  // 0: google.cloud.visionai.v1.CreateApplicationInstancesRequest.application_instances:type_name -> google.cloud.visionai.v1.ApplicationInstance
	49,  // 1: google.cloud.visionai.v1.ListApplicationsResponse.applications:type_name -> google.cloud.visionai.v1.Application
	49,  // 2: google.cloud.visionai.v1.CreateApplicationRequest.application:type_name -> google.cloud.visionai.v1.Application
	98,  // 3: google.cloud.visionai.v1.UpdateApplicationRequest.update_mask:type_name -> google.protobuf.FieldMask
	49,  // 4: google.cloud.visionai.v1.UpdateApplicationRequest.application:type_name -> google.cloud.visionai.v1.Application
	59,  // 5: google.cloud.visionai.v1.ApplicationStreamInput.stream_with_annotation:type_name -> google.cloud.visionai.v1.StreamWithAnnotation
	27,  // 6: google.cloud.visionai.v1.AddApplicationStreamInputRequest.application_stream_inputs:type_name -> google.cloud.visionai.v1.ApplicationStreamInput
	27,  // 7: google.cloud.visionai.v1.UpdateApplicationStreamInputRequest.application_stream_inputs:type_name -> google.cloud.visionai.v1.ApplicationStreamInput
	77,  // 8: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.target_stream_inputs:type_name -> google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.TargetStreamInput
	53,  // 9: google.cloud.visionai.v1.ListInstancesResponse.instances:type_name -> google.cloud.visionai.v1.Instance
	52,  // 10: google.cloud.visionai.v1.ListDraftsResponse.drafts:type_name -> google.cloud.visionai.v1.Draft
	52,  // 11: google.cloud.visionai.v1.CreateDraftRequest.draft:type_name -> google.cloud.visionai.v1.Draft
	98,  // 12: google.cloud.visionai.v1.UpdateDraftRequest.update_mask:type_name -> google.protobuf.FieldMask
	52,  // 13: google.cloud.visionai.v1.UpdateDraftRequest.draft:type_name -> google.cloud.visionai.v1.Draft
	78,  // 14: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.application_instances:type_name -> google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance
	55,  // 15: google.cloud.visionai.v1.ListProcessorsResponse.processors:type_name -> google.cloud.visionai.v1.Processor
	55,  // 16: google.cloud.visionai.v1.ListPrebuiltProcessorsResponse.processors:type_name -> google.cloud.visionai.v1.Processor
	55,  // 17: google.cloud.visionai.v1.CreateProcessorRequest.processor:type_name -> google.cloud.visionai.v1.Processor
	98,  // 18: google.cloud.visionai.v1.UpdateProcessorRequest.update_mask:type_name -> google.protobuf.FieldMask
	55,  // 19: google.cloud.visionai.v1.UpdateProcessorRequest.processor:type_name -> google.cloud.visionai.v1.Processor
	99,  // 20: google.cloud.visionai.v1.Application.create_time:type_name -> google.protobuf.Timestamp
	99,  // 21: google.cloud.visionai.v1.Application.update_time:type_name -> google.protobuf.Timestamp
	80,  // 22: google.cloud.visionai.v1.Application.labels:type_name -> google.cloud.visionai.v1.Application.LabelsEntry
	50,  // 23: google.cloud.visionai.v1.Application.application_configs:type_name -> google.cloud.visionai.v1.ApplicationConfigs
	79,  // 24: google.cloud.visionai.v1.Application.runtime_info:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo
	2,   // 25: google.cloud.visionai.v1.Application.state:type_name -> google.cloud.visionai.v1.Application.State
	51,  // 26: google.cloud.visionai.v1.ApplicationConfigs.nodes:type_name -> google.cloud.visionai.v1.Node
	83,  // 27: google.cloud.visionai.v1.ApplicationConfigs.event_delivery_config:type_name -> google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig
	58,  // 28: google.cloud.visionai.v1.Node.node_config:type_name -> google.cloud.visionai.v1.ProcessorConfig
	84,  // 29: google.cloud.visionai.v1.Node.parents:type_name -> google.cloud.visionai.v1.Node.InputEdge
	99,  // 30: google.cloud.visionai.v1.Draft.create_time:type_name -> google.protobuf.Timestamp
	99,  // 31: google.cloud.visionai.v1.Draft.update_time:type_name -> google.protobuf.Timestamp
	85,  // 32: google.cloud.visionai.v1.Draft.labels:type_name -> google.cloud.visionai.v1.Draft.LabelsEntry
	50,  // 33: google.cloud.visionai.v1.Draft.draft_application_configs:type_name -> google.cloud.visionai.v1.ApplicationConfigs
	99,  // 34: google.cloud.visionai.v1.Instance.create_time:type_name -> google.protobuf.Timestamp
	99,  // 35: google.cloud.visionai.v1.Instance.update_time:type_name -> google.protobuf.Timestamp
	88,  // 36: google.cloud.visionai.v1.Instance.labels:type_name -> google.cloud.visionai.v1.Instance.LabelsEntry
	86,  // 37: google.cloud.visionai.v1.Instance.input_resources:type_name -> google.cloud.visionai.v1.Instance.InputResource
	87,  // 38: google.cloud.visionai.v1.Instance.output_resources:type_name -> google.cloud.visionai.v1.Instance.OutputResource
	3,   // 39: google.cloud.visionai.v1.Instance.state:type_name -> google.cloud.visionai.v1.Instance.State
	53,  // 40: google.cloud.visionai.v1.ApplicationInstance.instance:type_name -> google.cloud.visionai.v1.Instance
	99,  // 41: google.cloud.visionai.v1.Processor.create_time:type_name -> google.protobuf.Timestamp
	99,  // 42: google.cloud.visionai.v1.Processor.update_time:type_name -> google.protobuf.Timestamp
	89,  // 43: google.cloud.visionai.v1.Processor.labels:type_name -> google.cloud.visionai.v1.Processor.LabelsEntry
	4,   // 44: google.cloud.visionai.v1.Processor.processor_type:type_name -> google.cloud.visionai.v1.Processor.ProcessorType
	0,   // 45: google.cloud.visionai.v1.Processor.model_type:type_name -> google.cloud.visionai.v1.ModelType
	57,  // 46: google.cloud.visionai.v1.Processor.custom_processor_source_info:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo
	5,   // 47: google.cloud.visionai.v1.Processor.state:type_name -> google.cloud.visionai.v1.Processor.ProcessorState
	56,  // 48: google.cloud.visionai.v1.Processor.processor_io_spec:type_name -> google.cloud.visionai.v1.ProcessorIOSpec
	100, // 49: google.cloud.visionai.v1.Processor.supported_annotation_types:type_name -> google.cloud.visionai.v1.StreamAnnotationType
	90,  // 50: google.cloud.visionai.v1.ProcessorIOSpec.graph_input_channel_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec
	91,  // 51: google.cloud.visionai.v1.ProcessorIOSpec.graph_output_channel_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec
	92,  // 52: google.cloud.visionai.v1.ProcessorIOSpec.instance_resource_input_binding_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceInputBindingSpec
	93,  // 53: google.cloud.visionai.v1.ProcessorIOSpec.instance_resource_output_binding_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceOutputBindingSpec
	7,   // 54: google.cloud.visionai.v1.CustomProcessorSourceInfo.source_type:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.SourceType
	95,  // 55: google.cloud.visionai.v1.CustomProcessorSourceInfo.additional_info:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.AdditionalInfoEntry
	94,  // 56: google.cloud.visionai.v1.CustomProcessorSourceInfo.model_schema:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema
	62,  // 57: google.cloud.visionai.v1.ProcessorConfig.video_stream_input_config:type_name -> google.cloud.visionai.v1.VideoStreamInputConfig
	63,  // 58: google.cloud.visionai.v1.ProcessorConfig.ai_enabled_devices_input_config:type_name -> google.cloud.visionai.v1.AIEnabledDevicesInputConfig
	64,  // 59: google.cloud.visionai.v1.ProcessorConfig.media_warehouse_config:type_name -> google.cloud.visionai.v1.MediaWarehouseConfig
	65,  // 60: google.cloud.visionai.v1.ProcessorConfig.person_blur_config:type_name -> google.cloud.visionai.v1.PersonBlurConfig
	66,  // 61: google.cloud.visionai.v1.ProcessorConfig.occupancy_count_config:type_name -> google.cloud.visionai.v1.OccupancyCountConfig
	67,  // 62: google.cloud.visionai.v1.ProcessorConfig.person_vehicle_detection_config:type_name -> google.cloud.visionai.v1.PersonVehicleDetectionConfig
	71,  // 63: google.cloud.visionai.v1.ProcessorConfig.vertex_automl_vision_config:type_name -> google.cloud.visionai.v1.VertexAutoMLVisionConfig
	72,  // 64: google.cloud.visionai.v1.ProcessorConfig.vertex_automl_video_config:type_name -> google.cloud.visionai.v1.VertexAutoMLVideoConfig
	73,  // 65: google.cloud.visionai.v1.ProcessorConfig.vertex_custom_config:type_name -> google.cloud.visionai.v1.VertexCustomConfig
	69,  // 66: google.cloud.visionai.v1.ProcessorConfig.general_object_detection_config:type_name -> google.cloud.visionai.v1.GeneralObjectDetectionConfig
	70,  // 67: google.cloud.visionai.v1.ProcessorConfig.big_query_config:type_name -> google.cloud.visionai.v1.BigQueryConfig
	68,  // 68: google.cloud.visionai.v1.ProcessorConfig.personal_protective_equipment_detection_config:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionConfig
	101, // 69: google.cloud.visionai.v1.StreamWithAnnotation.application_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation
	96,  // 70: google.cloud.visionai.v1.StreamWithAnnotation.node_annotations:type_name -> google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation
	101, // 71: google.cloud.visionai.v1.ApplicationNodeAnnotation.annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation
	101, // 72: google.cloud.visionai.v1.ResourceAnnotations.application_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation
	60,  // 73: google.cloud.visionai.v1.ResourceAnnotations.node_annotations:type_name -> google.cloud.visionai.v1.ApplicationNodeAnnotation
	59,  // 74: google.cloud.visionai.v1.VideoStreamInputConfig.streams_with_annotation:type_name -> google.cloud.visionai.v1.StreamWithAnnotation
	102, // 75: google.cloud.visionai.v1.MediaWarehouseConfig.ttl:type_name -> google.protobuf.Duration
	8,   // 76: google.cloud.visionai.v1.PersonBlurConfig.person_blur_type:type_name -> google.cloud.visionai.v1.PersonBlurConfig.PersonBlurType
	97,  // 77: google.cloud.visionai.v1.BigQueryConfig.cloud_function_mapping:type_name -> google.cloud.visionai.v1.BigQueryConfig.CloudFunctionMappingEntry
	76,  // 78: google.cloud.visionai.v1.VertexCustomConfig.dedicated_resources:type_name -> google.cloud.visionai.v1.DedicatedResources
	1,   // 79: google.cloud.visionai.v1.MachineSpec.accelerator_type:type_name -> google.cloud.visionai.v1.AcceleratorType
	74,  // 80: google.cloud.visionai.v1.DedicatedResources.machine_spec:type_name -> google.cloud.visionai.v1.MachineSpec
	75,  // 81: google.cloud.visionai.v1.DedicatedResources.autoscaling_metric_specs:type_name -> google.cloud.visionai.v1.AutoscalingMetricSpec
	98,  // 82: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance.update_mask:type_name -> google.protobuf.FieldMask
	53,  // 83: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance.instance:type_name -> google.cloud.visionai.v1.Instance
	99,  // 84: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.deploy_time:type_name -> google.protobuf.Timestamp
	81,  // 85: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.global_output_resources:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.GlobalOutputResource
	82,  // 86: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.monitoring_config:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.MonitoringConfig
	102, // 87: google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig.minimal_delivery_interval:type_name -> google.protobuf.Duration
	59,  // 88: google.cloud.visionai.v1.Instance.InputResource.annotated_stream:type_name -> google.cloud.visionai.v1.StreamWithAnnotation
	61,  // 89: google.cloud.visionai.v1.Instance.InputResource.annotations:type_name -> google.cloud.visionai.v1.ResourceAnnotations
	6,   // 90: google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec.data_type:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.DataType
	6,   // 91: google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec.data_type:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.DataType
	103, // 92: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.instances_schema:type_name -> google.cloud.visionai.v1.GcsSource
	103, // 93: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.parameters_schema:type_name -> google.cloud.visionai.v1.GcsSource
	103, // 94: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.predictions_schema:type_name -> google.cloud.visionai.v1.GcsSource
	101, // 95: google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation.annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation
	19,  // 96: google.cloud.visionai.v1.AppPlatform.ListApplications:input_type -> google.cloud.visionai.v1.ListApplicationsRequest
	21,  // 97: google.cloud.visionai.v1.AppPlatform.GetApplication:input_type -> google.cloud.visionai.v1.GetApplicationRequest
	22,  // 98: google.cloud.visionai.v1.AppPlatform.CreateApplication:input_type -> google.cloud.visionai.v1.CreateApplicationRequest
	23,  // 99: google.cloud.visionai.v1.AppPlatform.UpdateApplication:input_type -> google.cloud.visionai.v1.UpdateApplicationRequest
	24,  // 100: google.cloud.visionai.v1.AppPlatform.DeleteApplication:input_type -> google.cloud.visionai.v1.DeleteApplicationRequest
	25,  // 101: google.cloud.visionai.v1.AppPlatform.DeployApplication:input_type -> google.cloud.visionai.v1.DeployApplicationRequest
	26,  // 102: google.cloud.visionai.v1.AppPlatform.UndeployApplication:input_type -> google.cloud.visionai.v1.UndeployApplicationRequest
	28,  // 103: google.cloud.visionai.v1.AppPlatform.AddApplicationStreamInput:input_type -> google.cloud.visionai.v1.AddApplicationStreamInputRequest
	30,  // 104: google.cloud.visionai.v1.AppPlatform.RemoveApplicationStreamInput:input_type -> google.cloud.visionai.v1.RemoveApplicationStreamInputRequest
	29,  // 105: google.cloud.visionai.v1.AppPlatform.UpdateApplicationStreamInput:input_type -> google.cloud.visionai.v1.UpdateApplicationStreamInputRequest
	31,  // 106: google.cloud.visionai.v1.AppPlatform.ListInstances:input_type -> google.cloud.visionai.v1.ListInstancesRequest
	33,  // 107: google.cloud.visionai.v1.AppPlatform.GetInstance:input_type -> google.cloud.visionai.v1.GetInstanceRequest
	12,  // 108: google.cloud.visionai.v1.AppPlatform.CreateApplicationInstances:input_type -> google.cloud.visionai.v1.CreateApplicationInstancesRequest
	13,  // 109: google.cloud.visionai.v1.AppPlatform.DeleteApplicationInstances:input_type -> google.cloud.visionai.v1.DeleteApplicationInstancesRequest
	39,  // 110: google.cloud.visionai.v1.AppPlatform.UpdateApplicationInstances:input_type -> google.cloud.visionai.v1.UpdateApplicationInstancesRequest
	34,  // 111: google.cloud.visionai.v1.AppPlatform.ListDrafts:input_type -> google.cloud.visionai.v1.ListDraftsRequest
	36,  // 112: google.cloud.visionai.v1.AppPlatform.GetDraft:input_type -> google.cloud.visionai.v1.GetDraftRequest
	37,  // 113: google.cloud.visionai.v1.AppPlatform.CreateDraft:input_type -> google.cloud.visionai.v1.CreateDraftRequest
	38,  // 114: google.cloud.visionai.v1.AppPlatform.UpdateDraft:input_type -> google.cloud.visionai.v1.UpdateDraftRequest
	40,  // 115: google.cloud.visionai.v1.AppPlatform.DeleteDraft:input_type -> google.cloud.visionai.v1.DeleteDraftRequest
	41,  // 116: google.cloud.visionai.v1.AppPlatform.ListProcessors:input_type -> google.cloud.visionai.v1.ListProcessorsRequest
	43,  // 117: google.cloud.visionai.v1.AppPlatform.ListPrebuiltProcessors:input_type -> google.cloud.visionai.v1.ListPrebuiltProcessorsRequest
	45,  // 118: google.cloud.visionai.v1.AppPlatform.GetProcessor:input_type -> google.cloud.visionai.v1.GetProcessorRequest
	46,  // 119: google.cloud.visionai.v1.AppPlatform.CreateProcessor:input_type -> google.cloud.visionai.v1.CreateProcessorRequest
	47,  // 120: google.cloud.visionai.v1.AppPlatform.UpdateProcessor:input_type -> google.cloud.visionai.v1.UpdateProcessorRequest
	48,  // 121: google.cloud.visionai.v1.AppPlatform.DeleteProcessor:input_type -> google.cloud.visionai.v1.DeleteProcessorRequest
	20,  // 122: google.cloud.visionai.v1.AppPlatform.ListApplications:output_type -> google.cloud.visionai.v1.ListApplicationsResponse
	49,  // 123: google.cloud.visionai.v1.AppPlatform.GetApplication:output_type -> google.cloud.visionai.v1.Application
	104, // 124: google.cloud.visionai.v1.AppPlatform.CreateApplication:output_type -> google.longrunning.Operation
	104, // 125: google.cloud.visionai.v1.AppPlatform.UpdateApplication:output_type -> google.longrunning.Operation
	104, // 126: google.cloud.visionai.v1.AppPlatform.DeleteApplication:output_type -> google.longrunning.Operation
	104, // 127: google.cloud.visionai.v1.AppPlatform.DeployApplication:output_type -> google.longrunning.Operation
	104, // 128: google.cloud.visionai.v1.AppPlatform.UndeployApplication:output_type -> google.longrunning.Operation
	104, // 129: google.cloud.visionai.v1.AppPlatform.AddApplicationStreamInput:output_type -> google.longrunning.Operation
	104, // 130: google.cloud.visionai.v1.AppPlatform.RemoveApplicationStreamInput:output_type -> google.longrunning.Operation
	104, // 131: google.cloud.visionai.v1.AppPlatform.UpdateApplicationStreamInput:output_type -> google.longrunning.Operation
	32,  // 132: google.cloud.visionai.v1.AppPlatform.ListInstances:output_type -> google.cloud.visionai.v1.ListInstancesResponse
	53,  // 133: google.cloud.visionai.v1.AppPlatform.GetInstance:output_type -> google.cloud.visionai.v1.Instance
	104, // 134: google.cloud.visionai.v1.AppPlatform.CreateApplicationInstances:output_type -> google.longrunning.Operation
	104, // 135: google.cloud.visionai.v1.AppPlatform.DeleteApplicationInstances:output_type -> google.longrunning.Operation
	104, // 136: google.cloud.visionai.v1.AppPlatform.UpdateApplicationInstances:output_type -> google.longrunning.Operation
	35,  // 137: google.cloud.visionai.v1.AppPlatform.ListDrafts:output_type -> google.cloud.visionai.v1.ListDraftsResponse
	52,  // 138: google.cloud.visionai.v1.AppPlatform.GetDraft:output_type -> google.cloud.visionai.v1.Draft
	104, // 139: google.cloud.visionai.v1.AppPlatform.CreateDraft:output_type -> google.longrunning.Operation
	104, // 140: google.cloud.visionai.v1.AppPlatform.UpdateDraft:output_type -> google.longrunning.Operation
	104, // 141: google.cloud.visionai.v1.AppPlatform.DeleteDraft:output_type -> google.longrunning.Operation
	42,  // 142: google.cloud.visionai.v1.AppPlatform.ListProcessors:output_type -> google.cloud.visionai.v1.ListProcessorsResponse
	44,  // 143: google.cloud.visionai.v1.AppPlatform.ListPrebuiltProcessors:output_type -> google.cloud.visionai.v1.ListPrebuiltProcessorsResponse
	55,  // 144: google.cloud.visionai.v1.AppPlatform.GetProcessor:output_type -> google.cloud.visionai.v1.Processor
	104, // 145: google.cloud.visionai.v1.AppPlatform.CreateProcessor:output_type -> google.longrunning.Operation
	104, // 146: google.cloud.visionai.v1.AppPlatform.UpdateProcessor:output_type -> google.longrunning.Operation
	104, // 147: google.cloud.visionai.v1.AppPlatform.DeleteProcessor:output_type -> google.longrunning.Operation
	122, // [122:148] is the sub-list for method output_type
	96,  // [96:122] is the sub-list for method input_type
	96,  // [96:96] is the sub-list for extension type_name
	96,  // [96:96] is the sub-list for extension extendee
	0,   // [0:96] is the sub-list for field type_name
}

func init() { file_google_cloud_visionai_v1_platform_proto_init() }
func file_google_cloud_visionai_v1_platform_proto_init() {
	if File_google_cloud_visionai_v1_platform_proto != nil {
		return
	}
	file_google_cloud_visionai_v1_annotations_proto_init()
	file_google_cloud_visionai_v1_common_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_google_cloud_visionai_v1_platform_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteApplicationInstancesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateApplicationInstancesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationInstancesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateApplicationInstancesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteApplicationInstancesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeployApplicationResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UndeployApplicationResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemoveApplicationStreamInputResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddApplicationStreamInputResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationStreamInputResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListApplicationsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListApplicationsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeployApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UndeployApplicationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplicationStreamInput); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddApplicationStreamInputRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationStreamInputRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemoveApplicationStreamInputRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListInstancesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListInstancesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInstanceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDraftsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListDraftsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetDraftRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateDraftRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateDraftRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationInstancesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteDraftRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProcessorsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProcessorsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPrebuiltProcessorsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPrebuiltProcessorsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProcessorRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateProcessorRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateProcessorRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProcessorRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Application); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplicationConfigs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Node); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Draft); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Instance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplicationInstance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Processor); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorIOSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CustomProcessorSourceInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamWithAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplicationNodeAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceAnnotations); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VideoStreamInputConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AIEnabledDevicesInputConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MediaWarehouseConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonBlurConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OccupancyCountConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonVehicleDetectionConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PersonalProtectiveEquipmentDetectionConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GeneralObjectDetectionConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BigQueryConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VertexAutoMLVisionConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VertexAutoMLVideoConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VertexCustomConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MachineSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AutoscalingMetricSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DedicatedResources); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemoveApplicationStreamInputRequest_TargetStreamInput); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateApplicationInstancesRequest_UpdateApplicationInstance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Application_ApplicationRuntimeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Application_ApplicationRuntimeInfo_GlobalOutputResource); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Application_ApplicationRuntimeInfo_MonitoringConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplicationConfigs_EventDeliveryConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Node_InputEdge); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Instance_InputResource); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Instance_OutputResource); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorIOSpec_GraphInputChannelSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorIOSpec_GraphOutputChannelSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorIOSpec_InstanceResourceInputBindingSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProcessorIOSpec_InstanceResourceOutputBindingSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CustomProcessorSourceInfo_ModelSchema); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_visionai_v1_platform_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StreamWithAnnotation_NodeAnnotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_google_cloud_visionai_v1_platform_proto_msgTypes[42].OneofWrappers = []interface{}{
		(*Node_OutputAllOutputChannelsToStream)(nil),
	}
	file_google_cloud_visionai_v1_platform_proto_msgTypes[48].OneofWrappers = []interface{}{
		(*CustomProcessorSourceInfo_VertexModel)(nil),
	}
	file_google_cloud_visionai_v1_platform_proto_msgTypes[49].OneofWrappers = []interface{}{
		(*ProcessorConfig_VideoStreamInputConfig)(nil),
		(*ProcessorConfig_AiEnabledDevicesInputConfig)(nil),
		(*ProcessorConfig_MediaWarehouseConfig)(nil),
		(*ProcessorConfig_PersonBlurConfig)(nil),
		(*ProcessorConfig_OccupancyCountConfig)(nil),
		(*ProcessorConfig_PersonVehicleDetectionConfig)(nil),
		(*ProcessorConfig_VertexAutomlVisionConfig)(nil),
		(*ProcessorConfig_VertexAutomlVideoConfig)(nil),
		(*ProcessorConfig_VertexCustomConfig)(nil),
		(*ProcessorConfig_GeneralObjectDetectionConfig)(nil),
		(*ProcessorConfig_BigQueryConfig)(nil),
		(*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig)(nil),
	}
	file_google_cloud_visionai_v1_platform_proto_msgTypes[77].OneofWrappers = []interface{}{
		(*Instance_InputResource_InputResource)(nil),
		(*Instance_InputResource_AnnotatedStream)(nil),
	}
	file_google_cloud_visionai_v1_platform_proto_msgTypes[83].OneofWrappers = []interface{}{
		(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri)(nil),
		(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_visionai_v1_platform_proto_rawDesc,
			NumEnums:      9,
			NumMessages:   89,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_visionai_v1_platform_proto_goTypes,
		DependencyIndexes: file_google_cloud_visionai_v1_platform_proto_depIdxs,
		EnumInfos:         file_google_cloud_visionai_v1_platform_proto_enumTypes,
		MessageInfos:      file_google_cloud_visionai_v1_platform_proto_msgTypes,
	}.Build()
	File_google_cloud_visionai_v1_platform_proto = out.File
	file_google_cloud_visionai_v1_platform_proto_rawDesc = nil
	file_google_cloud_visionai_v1_platform_proto_goTypes = nil
	file_google_cloud_visionai_v1_platform_proto_depIdxs = nil
}

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

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

// AppPlatformClient is the client API for AppPlatform service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AppPlatformClient interface {
	// Lists Applications in a given project and location.
	ListApplications(ctx context.Context, in *ListApplicationsRequest, opts ...grpc.CallOption) (*ListApplicationsResponse, error)
	// Gets details of a single Application.
	GetApplication(ctx context.Context, in *GetApplicationRequest, opts ...grpc.CallOption) (*Application, error)
	// Creates a new Application in a given project and location.
	CreateApplication(ctx context.Context, in *CreateApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates the parameters of a single Application.
	UpdateApplication(ctx context.Context, in *UpdateApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a single Application.
	DeleteApplication(ctx context.Context, in *DeleteApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deploys a single Application.
	DeployApplication(ctx context.Context, in *DeployApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Undeploys a single Application.
	UndeployApplication(ctx context.Context, in *UndeployApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	AddApplicationStreamInput(ctx context.Context, in *AddApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Remove target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deleted. If the stream
	// is not in the Application, the RPC will fail.
	RemoveApplicationStreamInput(ctx context.Context, in *RemoveApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Update target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deployed. For
	// CreateOrUpdate behavior, set allow_missing to true.
	UpdateApplicationStreamInput(ctx context.Context, in *UpdateApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Lists Instances in a given project and location.
	ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error)
	// Gets details of a single Instance.
	GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	CreateApplicationInstances(ctx context.Context, in *CreateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Remove target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deleted. If the stream
	// is not in the Application, the RPC will fail.
	DeleteApplicationInstances(ctx context.Context, in *DeleteApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	UpdateApplicationInstances(ctx context.Context, in *UpdateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Lists Drafts in a given project and location.
	ListDrafts(ctx context.Context, in *ListDraftsRequest, opts ...grpc.CallOption) (*ListDraftsResponse, error)
	// Gets details of a single Draft.
	GetDraft(ctx context.Context, in *GetDraftRequest, opts ...grpc.CallOption) (*Draft, error)
	// Creates a new Draft in a given project and location.
	CreateDraft(ctx context.Context, in *CreateDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates the parameters of a single Draft.
	UpdateDraft(ctx context.Context, in *UpdateDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a single Draft.
	DeleteDraft(ctx context.Context, in *DeleteDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Lists Processors in a given project and location.
	ListProcessors(ctx context.Context, in *ListProcessorsRequest, opts ...grpc.CallOption) (*ListProcessorsResponse, error)
	// ListPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt
	// Processors.
	ListPrebuiltProcessors(ctx context.Context, in *ListPrebuiltProcessorsRequest, opts ...grpc.CallOption) (*ListPrebuiltProcessorsResponse, error)
	// Gets details of a single Processor.
	GetProcessor(ctx context.Context, in *GetProcessorRequest, opts ...grpc.CallOption) (*Processor, error)
	// Creates a new Processor in a given project and location.
	CreateProcessor(ctx context.Context, in *CreateProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates the parameters of a single Processor.
	UpdateProcessor(ctx context.Context, in *UpdateProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a single Processor.
	DeleteProcessor(ctx context.Context, in *DeleteProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
}

type appPlatformClient struct {
	cc grpc.ClientConnInterface
}

func NewAppPlatformClient(cc grpc.ClientConnInterface) AppPlatformClient {
	return &appPlatformClient{cc}
}

func (c *appPlatformClient) ListApplications(ctx context.Context, in *ListApplicationsRequest, opts ...grpc.CallOption) (*ListApplicationsResponse, error) {
	out := new(ListApplicationsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListApplications", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) GetApplication(ctx context.Context, in *GetApplicationRequest, opts ...grpc.CallOption) (*Application, error) {
	out := new(Application)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) CreateApplication(ctx context.Context, in *CreateApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UpdateApplication(ctx context.Context, in *UpdateApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) DeleteApplication(ctx context.Context, in *DeleteApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) DeployApplication(ctx context.Context, in *DeployApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeployApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UndeployApplication(ctx context.Context, in *UndeployApplicationRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UndeployApplication", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) AddApplicationStreamInput(ctx context.Context, in *AddApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/AddApplicationStreamInput", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) RemoveApplicationStreamInput(ctx context.Context, in *RemoveApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/RemoveApplicationStreamInput", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UpdateApplicationStreamInput(ctx context.Context, in *UpdateApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationStreamInput", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error) {
	out := new(ListInstancesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListInstances", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error) {
	out := new(Instance)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) CreateApplicationInstances(ctx context.Context, in *CreateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateApplicationInstances", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) DeleteApplicationInstances(ctx context.Context, in *DeleteApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteApplicationInstances", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UpdateApplicationInstances(ctx context.Context, in *UpdateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationInstances", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) ListDrafts(ctx context.Context, in *ListDraftsRequest, opts ...grpc.CallOption) (*ListDraftsResponse, error) {
	out := new(ListDraftsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListDrafts", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) GetDraft(ctx context.Context, in *GetDraftRequest, opts ...grpc.CallOption) (*Draft, error) {
	out := new(Draft)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetDraft", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) CreateDraft(ctx context.Context, in *CreateDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateDraft", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UpdateDraft(ctx context.Context, in *UpdateDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateDraft", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) DeleteDraft(ctx context.Context, in *DeleteDraftRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteDraft", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) ListProcessors(ctx context.Context, in *ListProcessorsRequest, opts ...grpc.CallOption) (*ListProcessorsResponse, error) {
	out := new(ListProcessorsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListProcessors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) ListPrebuiltProcessors(ctx context.Context, in *ListPrebuiltProcessorsRequest, opts ...grpc.CallOption) (*ListPrebuiltProcessorsResponse, error) {
	out := new(ListPrebuiltProcessorsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListPrebuiltProcessors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) GetProcessor(ctx context.Context, in *GetProcessorRequest, opts ...grpc.CallOption) (*Processor, error) {
	out := new(Processor)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetProcessor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) CreateProcessor(ctx context.Context, in *CreateProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateProcessor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) UpdateProcessor(ctx context.Context, in *UpdateProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateProcessor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appPlatformClient) DeleteProcessor(ctx context.Context, in *DeleteProcessorRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteProcessor", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// AppPlatformServer is the server API for AppPlatform service.
type AppPlatformServer interface {
	// Lists Applications in a given project and location.
	ListApplications(context.Context, *ListApplicationsRequest) (*ListApplicationsResponse, error)
	// Gets details of a single Application.
	GetApplication(context.Context, *GetApplicationRequest) (*Application, error)
	// Creates a new Application in a given project and location.
	CreateApplication(context.Context, *CreateApplicationRequest) (*longrunning.Operation, error)
	// Updates the parameters of a single Application.
	UpdateApplication(context.Context, *UpdateApplicationRequest) (*longrunning.Operation, error)
	// Deletes a single Application.
	DeleteApplication(context.Context, *DeleteApplicationRequest) (*longrunning.Operation, error)
	// Deploys a single Application.
	DeployApplication(context.Context, *DeployApplicationRequest) (*longrunning.Operation, error)
	// Undeploys a single Application.
	UndeployApplication(context.Context, *UndeployApplicationRequest) (*longrunning.Operation, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	AddApplicationStreamInput(context.Context, *AddApplicationStreamInputRequest) (*longrunning.Operation, error)
	// Remove target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deleted. If the stream
	// is not in the Application, the RPC will fail.
	RemoveApplicationStreamInput(context.Context, *RemoveApplicationStreamInputRequest) (*longrunning.Operation, error)
	// Update target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deployed. For
	// CreateOrUpdate behavior, set allow_missing to true.
	UpdateApplicationStreamInput(context.Context, *UpdateApplicationStreamInputRequest) (*longrunning.Operation, error)
	// Lists Instances in a given project and location.
	ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error)
	// Gets details of a single Instance.
	GetInstance(context.Context, *GetInstanceRequest) (*Instance, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	CreateApplicationInstances(context.Context, *CreateApplicationInstancesRequest) (*longrunning.Operation, error)
	// Remove target stream input to the Application, if the Application is
	// deployed, the corresponding instance based will be deleted. If the stream
	// is not in the Application, the RPC will fail.
	DeleteApplicationInstances(context.Context, *DeleteApplicationInstancesRequest) (*longrunning.Operation, error)
	// Adds target stream input to the Application.
	// If the Application is deployed, the corresponding new Application instance
	// will be created. If the stream has already been in the Application, the RPC
	// will fail.
	UpdateApplicationInstances(context.Context, *UpdateApplicationInstancesRequest) (*longrunning.Operation, error)
	// Lists Drafts in a given project and location.
	ListDrafts(context.Context, *ListDraftsRequest) (*ListDraftsResponse, error)
	// Gets details of a single Draft.
	GetDraft(context.Context, *GetDraftRequest) (*Draft, error)
	// Creates a new Draft in a given project and location.
	CreateDraft(context.Context, *CreateDraftRequest) (*longrunning.Operation, error)
	// Updates the parameters of a single Draft.
	UpdateDraft(context.Context, *UpdateDraftRequest) (*longrunning.Operation, error)
	// Deletes a single Draft.
	DeleteDraft(context.Context, *DeleteDraftRequest) (*longrunning.Operation, error)
	// Lists Processors in a given project and location.
	ListProcessors(context.Context, *ListProcessorsRequest) (*ListProcessorsResponse, error)
	// ListPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt
	// Processors.
	ListPrebuiltProcessors(context.Context, *ListPrebuiltProcessorsRequest) (*ListPrebuiltProcessorsResponse, error)
	// Gets details of a single Processor.
	GetProcessor(context.Context, *GetProcessorRequest) (*Processor, error)
	// Creates a new Processor in a given project and location.
	CreateProcessor(context.Context, *CreateProcessorRequest) (*longrunning.Operation, error)
	// Updates the parameters of a single Processor.
	UpdateProcessor(context.Context, *UpdateProcessorRequest) (*longrunning.Operation, error)
	// Deletes a single Processor.
	DeleteProcessor(context.Context, *DeleteProcessorRequest) (*longrunning.Operation, error)
}

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

func (*UnimplementedAppPlatformServer) ListApplications(context.Context, *ListApplicationsRequest) (*ListApplicationsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListApplications not implemented")
}
func (*UnimplementedAppPlatformServer) GetApplication(context.Context, *GetApplicationRequest) (*Application, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetApplication not implemented")
}
func (*UnimplementedAppPlatformServer) CreateApplication(context.Context, *CreateApplicationRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateApplication not implemented")
}
func (*UnimplementedAppPlatformServer) UpdateApplication(context.Context, *UpdateApplicationRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateApplication not implemented")
}
func (*UnimplementedAppPlatformServer) DeleteApplication(context.Context, *DeleteApplicationRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteApplication not implemented")
}
func (*UnimplementedAppPlatformServer) DeployApplication(context.Context, *DeployApplicationRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeployApplication not implemented")
}
func (*UnimplementedAppPlatformServer) UndeployApplication(context.Context, *UndeployApplicationRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UndeployApplication not implemented")
}
func (*UnimplementedAppPlatformServer) AddApplicationStreamInput(context.Context, *AddApplicationStreamInputRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddApplicationStreamInput not implemented")
}
func (*UnimplementedAppPlatformServer) RemoveApplicationStreamInput(context.Context, *RemoveApplicationStreamInputRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveApplicationStreamInput not implemented")
}
func (*UnimplementedAppPlatformServer) UpdateApplicationStreamInput(context.Context, *UpdateApplicationStreamInputRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationStreamInput not implemented")
}
func (*UnimplementedAppPlatformServer) ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListInstances not implemented")
}
func (*UnimplementedAppPlatformServer) GetInstance(context.Context, *GetInstanceRequest) (*Instance, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetInstance not implemented")
}
func (*UnimplementedAppPlatformServer) CreateApplicationInstances(context.Context, *CreateApplicationInstancesRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateApplicationInstances not implemented")
}
func (*UnimplementedAppPlatformServer) DeleteApplicationInstances(context.Context, *DeleteApplicationInstancesRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteApplicationInstances not implemented")
}
func (*UnimplementedAppPlatformServer) UpdateApplicationInstances(context.Context, *UpdateApplicationInstancesRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationInstances not implemented")
}
func (*UnimplementedAppPlatformServer) ListDrafts(context.Context, *ListDraftsRequest) (*ListDraftsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListDrafts not implemented")
}
func (*UnimplementedAppPlatformServer) GetDraft(context.Context, *GetDraftRequest) (*Draft, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDraft not implemented")
}
func (*UnimplementedAppPlatformServer) CreateDraft(context.Context, *CreateDraftRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateDraft not implemented")
}
func (*UnimplementedAppPlatformServer) UpdateDraft(context.Context, *UpdateDraftRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateDraft not implemented")
}
func (*UnimplementedAppPlatformServer) DeleteDraft(context.Context, *DeleteDraftRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteDraft not implemented")
}
func (*UnimplementedAppPlatformServer) ListProcessors(context.Context, *ListProcessorsRequest) (*ListProcessorsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListProcessors not implemented")
}
func (*UnimplementedAppPlatformServer) ListPrebuiltProcessors(context.Context, *ListPrebuiltProcessorsRequest) (*ListPrebuiltProcessorsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListPrebuiltProcessors not implemented")
}
func (*UnimplementedAppPlatformServer) GetProcessor(context.Context, *GetProcessorRequest) (*Processor, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetProcessor not implemented")
}
func (*UnimplementedAppPlatformServer) CreateProcessor(context.Context, *CreateProcessorRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateProcessor not implemented")
}
func (*UnimplementedAppPlatformServer) UpdateProcessor(context.Context, *UpdateProcessorRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateProcessor not implemented")
}
func (*UnimplementedAppPlatformServer) DeleteProcessor(context.Context, *DeleteProcessorRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteProcessor not implemented")
}

func RegisterAppPlatformServer(s *grpc.Server, srv AppPlatformServer) {
	s.RegisterService(&_AppPlatform_serviceDesc, srv)
}

func _AppPlatform_ListApplications_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListApplicationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).ListApplications(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListApplications",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).ListApplications(ctx, req.(*ListApplicationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_GetApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).GetApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).GetApplication(ctx, req.(*GetApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_CreateApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).CreateApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).CreateApplication(ctx, req.(*CreateApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UpdateApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UpdateApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UpdateApplication(ctx, req.(*UpdateApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_DeleteApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).DeleteApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).DeleteApplication(ctx, req.(*DeleteApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_DeployApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeployApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).DeployApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeployApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).DeployApplication(ctx, req.(*DeployApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UndeployApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UndeployApplicationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UndeployApplication(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UndeployApplication",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UndeployApplication(ctx, req.(*UndeployApplicationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_AddApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddApplicationStreamInputRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).AddApplicationStreamInput(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/AddApplicationStreamInput",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).AddApplicationStreamInput(ctx, req.(*AddApplicationStreamInputRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_RemoveApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveApplicationStreamInputRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).RemoveApplicationStreamInput(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/RemoveApplicationStreamInput",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).RemoveApplicationStreamInput(ctx, req.(*RemoveApplicationStreamInputRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UpdateApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateApplicationStreamInputRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UpdateApplicationStreamInput(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationStreamInput",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UpdateApplicationStreamInput(ctx, req.(*UpdateApplicationStreamInputRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_ListInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInstancesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).ListInstances(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListInstances",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).ListInstances(ctx, req.(*ListInstancesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_GetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).GetInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).GetInstance(ctx, req.(*GetInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_CreateApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateApplicationInstancesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).CreateApplicationInstances(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateApplicationInstances",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).CreateApplicationInstances(ctx, req.(*CreateApplicationInstancesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_DeleteApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteApplicationInstancesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).DeleteApplicationInstances(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteApplicationInstances",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).DeleteApplicationInstances(ctx, req.(*DeleteApplicationInstancesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UpdateApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateApplicationInstancesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UpdateApplicationInstances(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationInstances",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UpdateApplicationInstances(ctx, req.(*UpdateApplicationInstancesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_ListDrafts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListDraftsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).ListDrafts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListDrafts",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).ListDrafts(ctx, req.(*ListDraftsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_GetDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDraftRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).GetDraft(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetDraft",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).GetDraft(ctx, req.(*GetDraftRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_CreateDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDraftRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).CreateDraft(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateDraft",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).CreateDraft(ctx, req.(*CreateDraftRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UpdateDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateDraftRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UpdateDraft(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateDraft",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UpdateDraft(ctx, req.(*UpdateDraftRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_DeleteDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDraftRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).DeleteDraft(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteDraft",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).DeleteDraft(ctx, req.(*DeleteDraftRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_ListProcessors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListProcessorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).ListProcessors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListProcessors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).ListProcessors(ctx, req.(*ListProcessorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_ListPrebuiltProcessors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListPrebuiltProcessorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).ListPrebuiltProcessors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListPrebuiltProcessors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).ListPrebuiltProcessors(ctx, req.(*ListPrebuiltProcessorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_GetProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetProcessorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).GetProcessor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetProcessor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).GetProcessor(ctx, req.(*GetProcessorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_CreateProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateProcessorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).CreateProcessor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateProcessor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).CreateProcessor(ctx, req.(*CreateProcessorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_UpdateProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateProcessorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).UpdateProcessor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateProcessor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).UpdateProcessor(ctx, req.(*UpdateProcessorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppPlatform_DeleteProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteProcessorRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppPlatformServer).DeleteProcessor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteProcessor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppPlatformServer).DeleteProcessor(ctx, req.(*DeleteProcessorRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _AppPlatform_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.visionai.v1.AppPlatform",
	HandlerType: (*AppPlatformServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListApplications",
			Handler:    _AppPlatform_ListApplications_Handler,
		},
		{
			MethodName: "GetApplication",
			Handler:    _AppPlatform_GetApplication_Handler,
		},
		{
			MethodName: "CreateApplication",
			Handler:    _AppPlatform_CreateApplication_Handler,
		},
		{
			MethodName: "UpdateApplication",
			Handler:    _AppPlatform_UpdateApplication_Handler,
		},
		{
			MethodName: "DeleteApplication",
			Handler:    _AppPlatform_DeleteApplication_Handler,
		},
		{
			MethodName: "DeployApplication",
			Handler:    _AppPlatform_DeployApplication_Handler,
		},
		{
			MethodName: "UndeployApplication",
			Handler:    _AppPlatform_UndeployApplication_Handler,
		},
		{
			MethodName: "AddApplicationStreamInput",
			Handler:    _AppPlatform_AddApplicationStreamInput_Handler,
		},
		{
			MethodName: "RemoveApplicationStreamInput",
			Handler:    _AppPlatform_RemoveApplicationStreamInput_Handler,
		},
		{
			MethodName: "UpdateApplicationStreamInput",
			Handler:    _AppPlatform_UpdateApplicationStreamInput_Handler,
		},
		{
			MethodName: "ListInstances",
			Handler:    _AppPlatform_ListInstances_Handler,
		},
		{
			MethodName: "GetInstance",
			Handler:    _AppPlatform_GetInstance_Handler,
		},
		{
			MethodName: "CreateApplicationInstances",
			Handler:    _AppPlatform_CreateApplicationInstances_Handler,
		},
		{
			MethodName: "DeleteApplicationInstances",
			Handler:    _AppPlatform_DeleteApplicationInstances_Handler,
		},
		{
			MethodName: "UpdateApplicationInstances",
			Handler:    _AppPlatform_UpdateApplicationInstances_Handler,
		},
		{
			MethodName: "ListDrafts",
			Handler:    _AppPlatform_ListDrafts_Handler,
		},
		{
			MethodName: "GetDraft",
			Handler:    _AppPlatform_GetDraft_Handler,
		},
		{
			MethodName: "CreateDraft",
			Handler:    _AppPlatform_CreateDraft_Handler,
		},
		{
			MethodName: "UpdateDraft",
			Handler:    _AppPlatform_UpdateDraft_Handler,
		},
		{
			MethodName: "DeleteDraft",
			Handler:    _AppPlatform_DeleteDraft_Handler,
		},
		{
			MethodName: "ListProcessors",
			Handler:    _AppPlatform_ListProcessors_Handler,
		},
		{
			MethodName: "ListPrebuiltProcessors",
			Handler:    _AppPlatform_ListPrebuiltProcessors_Handler,
		},
		{
			MethodName: "GetProcessor",
			Handler:    _AppPlatform_GetProcessor_Handler,
		},
		{
			MethodName: "CreateProcessor",
			Handler:    _AppPlatform_CreateProcessor_Handler,
		},
		{
			MethodName: "UpdateProcessor",
			Handler:    _AppPlatform_UpdateProcessor_Handler,
		},
		{
			MethodName: "DeleteProcessor",
			Handler:    _AppPlatform_DeleteProcessor_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/visionai/v1/platform.proto",
}
