// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.17.3
// source: pipeline_spec.proto

package pipelinespec

import (
	status "google.golang.org/genproto/googleapis/rpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	reflect "reflect"
	sync "sync"
)

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

// The primitive types.
// Deprecated. Use [ParameterType.ParameterTypeEnum][] instead.
//
// Deprecated: Do not use.
type PrimitiveType_PrimitiveTypeEnum int32

const (
	PrimitiveType_PRIMITIVE_TYPE_UNSPECIFIED PrimitiveType_PrimitiveTypeEnum = 0
	PrimitiveType_INT                        PrimitiveType_PrimitiveTypeEnum = 1
	PrimitiveType_DOUBLE                     PrimitiveType_PrimitiveTypeEnum = 2
	PrimitiveType_STRING                     PrimitiveType_PrimitiveTypeEnum = 3
)

// Enum value maps for PrimitiveType_PrimitiveTypeEnum.
var (
	PrimitiveType_PrimitiveTypeEnum_name = map[int32]string{
		0: "PRIMITIVE_TYPE_UNSPECIFIED",
		1: "INT",
		2: "DOUBLE",
		3: "STRING",
	}
	PrimitiveType_PrimitiveTypeEnum_value = map[string]int32{
		"PRIMITIVE_TYPE_UNSPECIFIED": 0,
		"INT":                        1,
		"DOUBLE":                     2,
		"STRING":                     3,
	}
)

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

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

func (PrimitiveType_PrimitiveTypeEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_pipeline_spec_proto_enumTypes[0].Descriptor()
}

func (PrimitiveType_PrimitiveTypeEnum) Type() protoreflect.EnumType {
	return &file_pipeline_spec_proto_enumTypes[0]
}

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

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

// The parameter types.
type ParameterType_ParameterTypeEnum int32

const (
	// Indicates that the parameter type was not specified.
	ParameterType_PARAMETER_TYPE_ENUM_UNSPECIFIED ParameterType_ParameterTypeEnum = 0
	// Indicates that a parameter is a number that is stored in a field of type
	// `double`.
	ParameterType_NUMBER_DOUBLE ParameterType_ParameterTypeEnum = 1
	// Indicates that a parameter is an integer stored in the `number_field`,
	// which is of type `double`. NUMBER_INTEGER values must be within the range
	// of JavaScript safe integers (-(2^53 - 1) to (2^53 - 1)). If you need to
	// support integers outside the range of JavaScript safe integers, use the
	// `STRING` parameter type to describe your parameter.
	ParameterType_NUMBER_INTEGER ParameterType_ParameterTypeEnum = 2
	// Indicates that a parameter is a string.
	ParameterType_STRING ParameterType_ParameterTypeEnum = 3
	// Indicates that a parameters is a boolean value.
	ParameterType_BOOLEAN ParameterType_ParameterTypeEnum = 4
	// Indicates that a parameter is a list of values. LIST parameters are
	// serialized to JSON when passed as an input or output of a pipeline step.
	ParameterType_LIST ParameterType_ParameterTypeEnum = 5
	// Indicates that a parameter is a struct value; structs represent a data
	// structure like a Python dictionary or a JSON object. STRUCT parameters
	// are serialized to JSON when passed as an input or output of a pipeline
	// step.
	ParameterType_STRUCT ParameterType_ParameterTypeEnum = 6
)

// Enum value maps for ParameterType_ParameterTypeEnum.
var (
	ParameterType_ParameterTypeEnum_name = map[int32]string{
		0: "PARAMETER_TYPE_ENUM_UNSPECIFIED",
		1: "NUMBER_DOUBLE",
		2: "NUMBER_INTEGER",
		3: "STRING",
		4: "BOOLEAN",
		5: "LIST",
		6: "STRUCT",
	}
	ParameterType_ParameterTypeEnum_value = map[string]int32{
		"PARAMETER_TYPE_ENUM_UNSPECIFIED": 0,
		"NUMBER_DOUBLE":                   1,
		"NUMBER_INTEGER":                  2,
		"STRING":                          3,
		"BOOLEAN":                         4,
		"LIST":                            5,
		"STRUCT":                          6,
	}
)

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

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

func (ParameterType_ParameterTypeEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_pipeline_spec_proto_enumTypes[1].Descriptor()
}

func (ParameterType_ParameterTypeEnum) Type() protoreflect.EnumType {
	return &file_pipeline_spec_proto_enumTypes[1]
}

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

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

// An enum defines the trigger strategy of when the task will be ready to be
// triggered.
// ALL_UPSTREAM_TASKS_SUCCEEDED - all upstream tasks in succeeded state.
// ALL_UPSTREAM_TASKS_COMPLETED - all upstream tasks in any final state.
// (Note that CANCELLED is also a final state but job will not trigger new
// tasks when job is in CANCELLING state, so that the task with the trigger
// policy at ALL_UPSTREAM_TASKS_COMPLETED will not start when job
// cancellation is in progress.)
type PipelineTaskSpec_TriggerPolicy_TriggerStrategy int32

const (
	// Unspecified.  Behave the same as ALL_UPSTREAM_TASKS_SUCCEEDED.
	PipelineTaskSpec_TriggerPolicy_TRIGGER_STRATEGY_UNSPECIFIED PipelineTaskSpec_TriggerPolicy_TriggerStrategy = 0
	// Specifies that all upstream tasks are in succeeded state.
	PipelineTaskSpec_TriggerPolicy_ALL_UPSTREAM_TASKS_SUCCEEDED PipelineTaskSpec_TriggerPolicy_TriggerStrategy = 1
	// Specifies that all upstream tasks are in any final state.
	PipelineTaskSpec_TriggerPolicy_ALL_UPSTREAM_TASKS_COMPLETED PipelineTaskSpec_TriggerPolicy_TriggerStrategy = 2
)

// Enum value maps for PipelineTaskSpec_TriggerPolicy_TriggerStrategy.
var (
	PipelineTaskSpec_TriggerPolicy_TriggerStrategy_name = map[int32]string{
		0: "TRIGGER_STRATEGY_UNSPECIFIED",
		1: "ALL_UPSTREAM_TASKS_SUCCEEDED",
		2: "ALL_UPSTREAM_TASKS_COMPLETED",
	}
	PipelineTaskSpec_TriggerPolicy_TriggerStrategy_value = map[string]int32{
		"TRIGGER_STRATEGY_UNSPECIFIED": 0,
		"ALL_UPSTREAM_TASKS_SUCCEEDED": 1,
		"ALL_UPSTREAM_TASKS_COMPLETED": 2,
	}
)

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

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

func (PipelineTaskSpec_TriggerPolicy_TriggerStrategy) Descriptor() protoreflect.EnumDescriptor {
	return file_pipeline_spec_proto_enumTypes[2].Descriptor()
}

func (PipelineTaskSpec_TriggerPolicy_TriggerStrategy) Type() protoreflect.EnumType {
	return &file_pipeline_spec_proto_enumTypes[2]
}

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

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

type PipelineStateEnum_PipelineTaskState int32

const (
	PipelineStateEnum_TASK_STATE_UNSPECIFIED PipelineStateEnum_PipelineTaskState = 0
	PipelineStateEnum_PENDING                PipelineStateEnum_PipelineTaskState = 1
	PipelineStateEnum_RUNNING_DRIVER         PipelineStateEnum_PipelineTaskState = 2
	PipelineStateEnum_DRIVER_SUCCEEDED       PipelineStateEnum_PipelineTaskState = 3
	PipelineStateEnum_RUNNING_EXECUTOR       PipelineStateEnum_PipelineTaskState = 4
	PipelineStateEnum_SUCCEEDED              PipelineStateEnum_PipelineTaskState = 5
	PipelineStateEnum_CANCEL_PENDING         PipelineStateEnum_PipelineTaskState = 6
	PipelineStateEnum_CANCELLING             PipelineStateEnum_PipelineTaskState = 7
	PipelineStateEnum_CANCELLED              PipelineStateEnum_PipelineTaskState = 8
	PipelineStateEnum_FAILED                 PipelineStateEnum_PipelineTaskState = 9
	// Indicates that the task is skipped to run due to a cache hit.
	PipelineStateEnum_SKIPPED PipelineStateEnum_PipelineTaskState = 10
	// Indicates that the task was just populated to the DB but not ready to
	// be scheduled.  Once job handler determined the task being ready to
	// be scheduled, the task state will change to PENDING.  The state
	// transition is depicted below:
	//  * QUEUED(not ready to run) --> PENDING(ready to run) --> RUNNING
	PipelineStateEnum_QUEUED PipelineStateEnum_PipelineTaskState = 11
	// Indicates that the task is not triggered based on the
	// [PipelineTaskSpec.TriggerPolicy.condition][] config.
	PipelineStateEnum_NOT_TRIGGERED PipelineStateEnum_PipelineTaskState = 12
	// Indicates that the tasks will no longer be schedulable.  Usually a task
	// was set to this state because its all upstream tasks are in final state
	// but the [PipelineTaskSpec.TriggerPolicy.strategy][] disallows the task to
	// be triggered.
	// The difference between `NOT_TRIGGERED` is that `UNSCHEDULABLE` must met
	// [PipelineTaskSpec.TriggerPolicy.strategy][], but must not met the
	// [PipelineTaskSpec.TriggerPolicy.condition][].
	PipelineStateEnum_UNSCHEDULABLE PipelineStateEnum_PipelineTaskState = 13
)

// Enum value maps for PipelineStateEnum_PipelineTaskState.
var (
	PipelineStateEnum_PipelineTaskState_name = map[int32]string{
		0:  "TASK_STATE_UNSPECIFIED",
		1:  "PENDING",
		2:  "RUNNING_DRIVER",
		3:  "DRIVER_SUCCEEDED",
		4:  "RUNNING_EXECUTOR",
		5:  "SUCCEEDED",
		6:  "CANCEL_PENDING",
		7:  "CANCELLING",
		8:  "CANCELLED",
		9:  "FAILED",
		10: "SKIPPED",
		11: "QUEUED",
		12: "NOT_TRIGGERED",
		13: "UNSCHEDULABLE",
	}
	PipelineStateEnum_PipelineTaskState_value = map[string]int32{
		"TASK_STATE_UNSPECIFIED": 0,
		"PENDING":                1,
		"RUNNING_DRIVER":         2,
		"DRIVER_SUCCEEDED":       3,
		"RUNNING_EXECUTOR":       4,
		"SUCCEEDED":              5,
		"CANCEL_PENDING":         6,
		"CANCELLING":             7,
		"CANCELLED":              8,
		"FAILED":                 9,
		"SKIPPED":                10,
		"QUEUED":                 11,
		"NOT_TRIGGERED":          12,
		"UNSCHEDULABLE":          13,
	}
)

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

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

func (PipelineStateEnum_PipelineTaskState) Descriptor() protoreflect.EnumDescriptor {
	return file_pipeline_spec_proto_enumTypes[3].Descriptor()
}

func (PipelineStateEnum_PipelineTaskState) Type() protoreflect.EnumType {
	return &file_pipeline_spec_proto_enumTypes[3]
}

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

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

// The spec of a pipeline job.
type PipelineJob struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Name of the job.
	// User friendly display name
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Definition of the pipeline that is being executed.
	PipelineSpec *structpb.Struct `protobuf:"bytes,7,opt,name=pipeline_spec,json=pipelineSpec,proto3" json:"pipeline_spec,omitempty"`
	// The labels with user-defined metadata to organize PipelineJob.
	Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Runtime config of the pipeline.
	RuntimeConfig *PipelineJob_RuntimeConfig `protobuf:"bytes,12,opt,name=runtime_config,json=runtimeConfig,proto3" json:"runtime_config,omitempty"`
}

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

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

func (*PipelineJob) ProtoMessage() {}

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

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

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

func (x *PipelineJob) GetPipelineSpec() *structpb.Struct {
	if x != nil {
		return x.PipelineSpec
	}
	return nil
}

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

func (x *PipelineJob) GetRuntimeConfig() *PipelineJob_RuntimeConfig {
	if x != nil {
		return x.RuntimeConfig
	}
	return nil
}

// The spec of a pipeline.
type PipelineSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The metadata of the pipeline.
	PipelineInfo *PipelineInfo `protobuf:"bytes,1,opt,name=pipeline_info,json=pipelineInfo,proto3" json:"pipeline_info,omitempty"`
	// The deployment config of the pipeline.
	// The deployment config can be extended to provide platform specific configs.
	DeploymentSpec *structpb.Struct `protobuf:"bytes,7,opt,name=deployment_spec,json=deploymentSpec,proto3" json:"deployment_spec,omitempty"`
	// The version of the sdk, which compiles the spec.
	SdkVersion string `protobuf:"bytes,4,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"`
	// The version of the schema.
	SchemaVersion string `protobuf:"bytes,5,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
	// The map of name to definition of all components used in this pipeline.
	Components map[string]*ComponentSpec `protobuf:"bytes,8,rep,name=components,proto3" json:"components,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The definition of the main pipeline.  Execution of the pipeline is
	// completed upon the completion of this component.
	Root *ComponentSpec `protobuf:"bytes,9,opt,name=root,proto3" json:"root,omitempty"`
	// Optional field. The default root output directory of the pipeline.
	DefaultPipelineRoot string `protobuf:"bytes,10,opt,name=default_pipeline_root,json=defaultPipelineRoot,proto3" json:"default_pipeline_root,omitempty"`
}

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

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

func (*PipelineSpec) ProtoMessage() {}

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

func (x *PipelineSpec) GetPipelineInfo() *PipelineInfo {
	if x != nil {
		return x.PipelineInfo
	}
	return nil
}

func (x *PipelineSpec) GetDeploymentSpec() *structpb.Struct {
	if x != nil {
		return x.DeploymentSpec
	}
	return nil
}

func (x *PipelineSpec) GetSdkVersion() string {
	if x != nil {
		return x.SdkVersion
	}
	return ""
}

func (x *PipelineSpec) GetSchemaVersion() string {
	if x != nil {
		return x.SchemaVersion
	}
	return ""
}

func (x *PipelineSpec) GetComponents() map[string]*ComponentSpec {
	if x != nil {
		return x.Components
	}
	return nil
}

func (x *PipelineSpec) GetRoot() *ComponentSpec {
	if x != nil {
		return x.Root
	}
	return nil
}

func (x *PipelineSpec) GetDefaultPipelineRoot() string {
	if x != nil {
		return x.DefaultPipelineRoot
	}
	return ""
}

// Definition of a component.
type ComponentSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Definition of the input parameters and artifacts of the component.
	InputDefinitions *ComponentInputsSpec `protobuf:"bytes,1,opt,name=input_definitions,json=inputDefinitions,proto3" json:"input_definitions,omitempty"`
	// Definition of the output parameters and artifacts of the component.
	OutputDefinitions *ComponentOutputsSpec `protobuf:"bytes,2,opt,name=output_definitions,json=outputDefinitions,proto3" json:"output_definitions,omitempty"`
	// Either a DAG or a single execution.
	//
	// Types that are assignable to Implementation:
	//	*ComponentSpec_Dag
	//	*ComponentSpec_ExecutorLabel
	Implementation isComponentSpec_Implementation `protobuf_oneof:"implementation"`
}

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

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

func (*ComponentSpec) ProtoMessage() {}

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

func (x *ComponentSpec) GetInputDefinitions() *ComponentInputsSpec {
	if x != nil {
		return x.InputDefinitions
	}
	return nil
}

func (x *ComponentSpec) GetOutputDefinitions() *ComponentOutputsSpec {
	if x != nil {
		return x.OutputDefinitions
	}
	return nil
}

func (m *ComponentSpec) GetImplementation() isComponentSpec_Implementation {
	if m != nil {
		return m.Implementation
	}
	return nil
}

func (x *ComponentSpec) GetDag() *DagSpec {
	if x, ok := x.GetImplementation().(*ComponentSpec_Dag); ok {
		return x.Dag
	}
	return nil
}

func (x *ComponentSpec) GetExecutorLabel() string {
	if x, ok := x.GetImplementation().(*ComponentSpec_ExecutorLabel); ok {
		return x.ExecutorLabel
	}
	return ""
}

type isComponentSpec_Implementation interface {
	isComponentSpec_Implementation()
}

type ComponentSpec_Dag struct {
	Dag *DagSpec `protobuf:"bytes,3,opt,name=dag,proto3,oneof"`
}

type ComponentSpec_ExecutorLabel struct {
	ExecutorLabel string `protobuf:"bytes,4,opt,name=executor_label,json=executorLabel,proto3,oneof"`
}

func (*ComponentSpec_Dag) isComponentSpec_Implementation() {}

func (*ComponentSpec_ExecutorLabel) isComponentSpec_Implementation() {}

// A DAG contains multiple tasks.
type DagSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The tasks inside the dag.
	Tasks map[string]*PipelineTaskSpec `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Defines how the outputs of the dag are linked to the sub tasks.
	Outputs *DagOutputsSpec `protobuf:"bytes,2,opt,name=outputs,proto3" json:"outputs,omitempty"`
}

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

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

func (*DagSpec) ProtoMessage() {}

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

func (x *DagSpec) GetTasks() map[string]*PipelineTaskSpec {
	if x != nil {
		return x.Tasks
	}
	return nil
}

func (x *DagSpec) GetOutputs() *DagOutputsSpec {
	if x != nil {
		return x.Outputs
	}
	return nil
}

// Definition of the output artifacts and parameters of the DAG component.
type DagOutputsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name to the output artifact channel of the DAG.
	Artifacts map[string]*DagOutputsSpec_DagOutputArtifactSpec `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The name to the output parameter.
	Parameters map[string]*DagOutputsSpec_DagOutputParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*DagOutputsSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec) GetArtifacts() map[string]*DagOutputsSpec_DagOutputArtifactSpec {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *DagOutputsSpec) GetParameters() map[string]*DagOutputsSpec_DagOutputParameterSpec {
	if x != nil {
		return x.Parameters
	}
	return nil
}

// Definition specification of the component input parameters and artifacts.
type ComponentInputsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name to artifact input.
	Artifacts map[string]*ComponentInputsSpec_ArtifactSpec `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Name to parameter input.
	Parameters map[string]*ComponentInputsSpec_ParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ComponentInputsSpec) ProtoMessage() {}

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

func (x *ComponentInputsSpec) GetArtifacts() map[string]*ComponentInputsSpec_ArtifactSpec {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *ComponentInputsSpec) GetParameters() map[string]*ComponentInputsSpec_ParameterSpec {
	if x != nil {
		return x.Parameters
	}
	return nil
}

// Definition specification of the component output parameters and artifacts.
type ComponentOutputsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name to artifact output.
	Artifacts map[string]*ComponentOutputsSpec_ArtifactSpec `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Name to parameter output.
	Parameters map[string]*ComponentOutputsSpec_ParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ComponentOutputsSpec) ProtoMessage() {}

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

func (x *ComponentOutputsSpec) GetArtifacts() map[string]*ComponentOutputsSpec_ArtifactSpec {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *ComponentOutputsSpec) GetParameters() map[string]*ComponentOutputsSpec_ParameterSpec {
	if x != nil {
		return x.Parameters
	}
	return nil
}

// The spec of task inputs.
type TaskInputsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A map of input parameters which are small values, stored by the system and
	// can be queriable.
	Parameters map[string]*TaskInputsSpec_InputParameterSpec `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// A map of input artifacts.
	Artifacts map[string]*TaskInputsSpec_InputArtifactSpec `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*TaskInputsSpec) ProtoMessage() {}

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

func (x *TaskInputsSpec) GetParameters() map[string]*TaskInputsSpec_InputParameterSpec {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *TaskInputsSpec) GetArtifacts() map[string]*TaskInputsSpec_InputArtifactSpec {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

// The spec of task outputs.
type TaskOutputsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A map of output parameters which are small values, stored by the system and
	// can be queriable. The output key is used
	// by [TaskInputsSpec.InputParameterSpec][] of the downstream task to specify
	// the data dependency. The same key will also be used by
	// [ExecutorInput.Inputs][] to reference the output parameter.
	Parameters map[string]*TaskOutputsSpec_OutputParameterSpec `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// A map of output artifacts. Keyed by output key. The output key is used
	// by [TaskInputsSpec.InputArtifactSpec][] of the downstream task to specify
	// the data dependency. The same key will also be used by
	// [ExecutorInput.Inputs][] to reference the output artifact.
	Artifacts map[string]*TaskOutputsSpec_OutputArtifactSpec `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*TaskOutputsSpec) ProtoMessage() {}

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

func (x *TaskOutputsSpec) GetParameters() map[string]*TaskOutputsSpec_OutputParameterSpec {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *TaskOutputsSpec) GetArtifacts() map[string]*TaskOutputsSpec_OutputArtifactSpec {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

// Represent primitive types. The wrapper is needed to give a namespace of
// enum value so we don't need add `PRIMITIVE_TYPE_` prefix of each enum value.
//
// Deprecated: Do not use.
type PrimitiveType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*PrimitiveType) ProtoMessage() {}

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

// Represent parameter types. The wrapper is needed to give a namespace of
// enum value so we don't need add `PARAMETER_TYPE_` prefix of each enum value.
type ParameterType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*ParameterType) ProtoMessage() {}

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

// The spec of a pipeline task.
type PipelineTaskSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Basic info of a pipeline task.
	TaskInfo *PipelineTaskInfo `protobuf:"bytes,1,opt,name=task_info,json=taskInfo,proto3" json:"task_info,omitempty"`
	// Specification for task inputs which contains parameters and artifacts.
	Inputs *TaskInputsSpec `protobuf:"bytes,2,opt,name=inputs,proto3" json:"inputs,omitempty"`
	// A list of names of upstream tasks that do not provide input
	// artifacts for this task, but nonetheless whose completion this task depends
	// on.
	DependentTasks []string                         `protobuf:"bytes,5,rep,name=dependent_tasks,json=dependentTasks,proto3" json:"dependent_tasks,omitempty"`
	CachingOptions *PipelineTaskSpec_CachingOptions `protobuf:"bytes,6,opt,name=caching_options,json=cachingOptions,proto3" json:"caching_options,omitempty"`
	// Reference to a component.  Use this field to define either a DAG or an
	// executor.
	ComponentRef *ComponentRef `protobuf:"bytes,7,opt,name=component_ref,json=componentRef,proto3" json:"component_ref,omitempty"`
	// Trigger policy of the task.
	TriggerPolicy *PipelineTaskSpec_TriggerPolicy `protobuf:"bytes,8,opt,name=trigger_policy,json=triggerPolicy,proto3" json:"trigger_policy,omitempty"`
	// Iterator supports fanning out the task into multiple sub-tasks based on the
	// values of input artifact or parameter. The current task will become the
	// parent of all the fan-out tasks. The output of the current task follows
	// the following conventions:
	// * Output artifacts with the same name of each iteration will be merged
	//   into one output artifact channel of the parent iterator task.
	// * Output parameters with the same name of each iteration will be merged
	//   into a string output parameter with the same name with content being a
	//   JSON array.
	//
	// For example, if an iterator starts two sub-tasks (t1 and t2) with the
	// following outputs.
	//
	// t1.outputs.parameters = { 'p': 'v1' }
	// t1.outputs.artifacts = { 'a': [a1] }
	// t2.outputs.parameters = { 'p': 'v2' }
	// t2.outputs.artifacts = { 'a': [a2] }
	// parent_task.outputs.parameters = { 'p': '["v1", "v2"]' }
	// parent_task.outputs.aritfacts = { 'a': [a1, a2] }
	//
	// Types that are assignable to Iterator:
	//	*PipelineTaskSpec_ArtifactIterator
	//	*PipelineTaskSpec_ParameterIterator
	Iterator isPipelineTaskSpec_Iterator `protobuf_oneof:"iterator"`
	// User-configured task-level retry.
	// Applicable only to component tasks.
	RetryPolicy *PipelineTaskSpec_RetryPolicy `protobuf:"bytes,11,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"`
	// Iterator related settings.
	IteratorPolicy *PipelineTaskSpec_IteratorPolicy `protobuf:"bytes,12,opt,name=iterator_policy,json=iteratorPolicy,proto3" json:"iterator_policy,omitempty"`
}

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

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

func (*PipelineTaskSpec) ProtoMessage() {}

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

func (x *PipelineTaskSpec) GetTaskInfo() *PipelineTaskInfo {
	if x != nil {
		return x.TaskInfo
	}
	return nil
}

func (x *PipelineTaskSpec) GetInputs() *TaskInputsSpec {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (x *PipelineTaskSpec) GetDependentTasks() []string {
	if x != nil {
		return x.DependentTasks
	}
	return nil
}

func (x *PipelineTaskSpec) GetCachingOptions() *PipelineTaskSpec_CachingOptions {
	if x != nil {
		return x.CachingOptions
	}
	return nil
}

func (x *PipelineTaskSpec) GetComponentRef() *ComponentRef {
	if x != nil {
		return x.ComponentRef
	}
	return nil
}

func (x *PipelineTaskSpec) GetTriggerPolicy() *PipelineTaskSpec_TriggerPolicy {
	if x != nil {
		return x.TriggerPolicy
	}
	return nil
}

func (m *PipelineTaskSpec) GetIterator() isPipelineTaskSpec_Iterator {
	if m != nil {
		return m.Iterator
	}
	return nil
}

func (x *PipelineTaskSpec) GetArtifactIterator() *ArtifactIteratorSpec {
	if x, ok := x.GetIterator().(*PipelineTaskSpec_ArtifactIterator); ok {
		return x.ArtifactIterator
	}
	return nil
}

func (x *PipelineTaskSpec) GetParameterIterator() *ParameterIteratorSpec {
	if x, ok := x.GetIterator().(*PipelineTaskSpec_ParameterIterator); ok {
		return x.ParameterIterator
	}
	return nil
}

func (x *PipelineTaskSpec) GetRetryPolicy() *PipelineTaskSpec_RetryPolicy {
	if x != nil {
		return x.RetryPolicy
	}
	return nil
}

func (x *PipelineTaskSpec) GetIteratorPolicy() *PipelineTaskSpec_IteratorPolicy {
	if x != nil {
		return x.IteratorPolicy
	}
	return nil
}

type isPipelineTaskSpec_Iterator interface {
	isPipelineTaskSpec_Iterator()
}

type PipelineTaskSpec_ArtifactIterator struct {
	// Iterator to iterate over an artifact input.
	ArtifactIterator *ArtifactIteratorSpec `protobuf:"bytes,9,opt,name=artifact_iterator,json=artifactIterator,proto3,oneof"`
}

type PipelineTaskSpec_ParameterIterator struct {
	// Iterator to iterate over a parameter input.
	ParameterIterator *ParameterIteratorSpec `protobuf:"bytes,10,opt,name=parameter_iterator,json=parameterIterator,proto3,oneof"`
}

func (*PipelineTaskSpec_ArtifactIterator) isPipelineTaskSpec_Iterator() {}

func (*PipelineTaskSpec_ParameterIterator) isPipelineTaskSpec_Iterator() {}

// The spec of an artifact iterator. It supports fan-out a workflow from a list
// of artifacts.
type ArtifactIteratorSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The items to iterate.
	Items *ArtifactIteratorSpec_ItemsSpec `protobuf:"bytes,1,opt,name=items,proto3" json:"items,omitempty"`
	// The name of the input artifact channel which has the artifact item from the
	// [items][] collection.
	ItemInput string `protobuf:"bytes,2,opt,name=item_input,json=itemInput,proto3" json:"item_input,omitempty"`
}

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

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

func (*ArtifactIteratorSpec) ProtoMessage() {}

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

func (x *ArtifactIteratorSpec) GetItems() *ArtifactIteratorSpec_ItemsSpec {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ArtifactIteratorSpec) GetItemInput() string {
	if x != nil {
		return x.ItemInput
	}
	return ""
}

// The spec of a parameter iterator. It supports fan-out a workflow from a
// string parameter which contains a JSON array.
type ParameterIteratorSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The items to iterate.
	Items *ParameterIteratorSpec_ItemsSpec `protobuf:"bytes,1,opt,name=items,proto3" json:"items,omitempty"`
	// The name of the input parameter which has the item value from the
	// [items][] collection.
	ItemInput string `protobuf:"bytes,2,opt,name=item_input,json=itemInput,proto3" json:"item_input,omitempty"`
}

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

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

func (*ParameterIteratorSpec) ProtoMessage() {}

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

func (x *ParameterIteratorSpec) GetItems() *ParameterIteratorSpec_ItemsSpec {
	if x != nil {
		return x.Items
	}
	return nil
}

func (x *ParameterIteratorSpec) GetItemInput() string {
	if x != nil {
		return x.ItemInput
	}
	return ""
}

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

	// The name of a component. Refer to the key of the
	// [PipelineSpec.components][] map.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*ComponentRef) ProtoMessage() {}

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

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

// Basic info of a pipeline.
type PipelineInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required field. The name of the pipeline.
	// The name will be used to create or find pipeline context in MLMD.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*PipelineInfo) ProtoMessage() {}

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

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

// The definition of a artifact type in MLMD.
type ArtifactTypeSchema struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Kind:
	//	*ArtifactTypeSchema_SchemaTitle
	//	*ArtifactTypeSchema_SchemaUri
	//	*ArtifactTypeSchema_InstanceSchema
	Kind isArtifactTypeSchema_Kind `protobuf_oneof:"kind"`
	// The schema version of the artifact. If the value is not set, it defaults
	// to the the latest version in the system.
	SchemaVersion string `protobuf:"bytes,4,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
}

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

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

func (*ArtifactTypeSchema) ProtoMessage() {}

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

func (m *ArtifactTypeSchema) GetKind() isArtifactTypeSchema_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (x *ArtifactTypeSchema) GetSchemaTitle() string {
	if x, ok := x.GetKind().(*ArtifactTypeSchema_SchemaTitle); ok {
		return x.SchemaTitle
	}
	return ""
}

// Deprecated: Do not use.
func (x *ArtifactTypeSchema) GetSchemaUri() string {
	if x, ok := x.GetKind().(*ArtifactTypeSchema_SchemaUri); ok {
		return x.SchemaUri
	}
	return ""
}

func (x *ArtifactTypeSchema) GetInstanceSchema() string {
	if x, ok := x.GetKind().(*ArtifactTypeSchema_InstanceSchema); ok {
		return x.InstanceSchema
	}
	return ""
}

func (x *ArtifactTypeSchema) GetSchemaVersion() string {
	if x != nil {
		return x.SchemaVersion
	}
	return ""
}

type isArtifactTypeSchema_Kind interface {
	isArtifactTypeSchema_Kind()
}

type ArtifactTypeSchema_SchemaTitle struct {
	// The name of the type. The format of the title must be:
	// `<namespace>.<title>`.
	// Examples:
	//  - `aiplatform.Model`
	//  - `acme.CustomModel`
	// When this field is set, the type must be pre-registered in the MLMD
	// store.
	SchemaTitle string `protobuf:"bytes,1,opt,name=schema_title,json=schemaTitle,proto3,oneof"`
}

type ArtifactTypeSchema_SchemaUri struct {
	// Points to a YAML file stored on Google Cloud Storage describing the
	// format.
	// Deprecated. Use [PipelineArtifactTypeSchema.schema_title][] or
	// [PipelineArtifactTypeSchema.instance_schema][] instead.
	//
	// Deprecated: Do not use.
	SchemaUri string `protobuf:"bytes,2,opt,name=schema_uri,json=schemaUri,proto3,oneof"`
}

type ArtifactTypeSchema_InstanceSchema struct {
	// Contains a raw YAML string, describing the format of
	// the properties of the type.
	InstanceSchema string `protobuf:"bytes,3,opt,name=instance_schema,json=instanceSchema,proto3,oneof"`
}

func (*ArtifactTypeSchema_SchemaTitle) isArtifactTypeSchema_Kind() {}

func (*ArtifactTypeSchema_SchemaUri) isArtifactTypeSchema_Kind() {}

func (*ArtifactTypeSchema_InstanceSchema) isArtifactTypeSchema_Kind() {}

// The basic info of a task.
type PipelineTaskInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*PipelineTaskInfo) ProtoMessage() {}

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

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

// Definition for a value or reference to a runtime parameter. A
// ValueOrRuntimeParameter instance can be either a field value that is
// determined during compilation time, or a runtime parameter which will be
// determined during runtime.
type ValueOrRuntimeParameter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*ValueOrRuntimeParameter_ConstantValue
	//	*ValueOrRuntimeParameter_RuntimeParameter
	//	*ValueOrRuntimeParameter_Constant
	Value isValueOrRuntimeParameter_Value `protobuf_oneof:"value"`
}

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

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

func (*ValueOrRuntimeParameter) ProtoMessage() {}

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

func (m *ValueOrRuntimeParameter) GetValue() isValueOrRuntimeParameter_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

// Deprecated: Do not use.
func (x *ValueOrRuntimeParameter) GetConstantValue() *Value {
	if x, ok := x.GetValue().(*ValueOrRuntimeParameter_ConstantValue); ok {
		return x.ConstantValue
	}
	return nil
}

func (x *ValueOrRuntimeParameter) GetRuntimeParameter() string {
	if x, ok := x.GetValue().(*ValueOrRuntimeParameter_RuntimeParameter); ok {
		return x.RuntimeParameter
	}
	return ""
}

func (x *ValueOrRuntimeParameter) GetConstant() *structpb.Value {
	if x, ok := x.GetValue().(*ValueOrRuntimeParameter_Constant); ok {
		return x.Constant
	}
	return nil
}

type isValueOrRuntimeParameter_Value interface {
	isValueOrRuntimeParameter_Value()
}

type ValueOrRuntimeParameter_ConstantValue struct {
	// Constant value which is determined in compile time.
	// Deprecated. Use [ValueOrRuntimeParameter.constant][] instead.
	//
	// Deprecated: Do not use.
	ConstantValue *Value `protobuf:"bytes,1,opt,name=constant_value,json=constantValue,proto3,oneof"`
}

type ValueOrRuntimeParameter_RuntimeParameter struct {
	// The runtime parameter refers to the parent component input parameter.
	RuntimeParameter string `protobuf:"bytes,2,opt,name=runtime_parameter,json=runtimeParameter,proto3,oneof"`
}

type ValueOrRuntimeParameter_Constant struct {
	// Constant value which is determined in compile time.
	Constant *structpb.Value `protobuf:"bytes,3,opt,name=constant,proto3,oneof"`
}

func (*ValueOrRuntimeParameter_ConstantValue) isValueOrRuntimeParameter_Value() {}

func (*ValueOrRuntimeParameter_RuntimeParameter) isValueOrRuntimeParameter_Value() {}

func (*ValueOrRuntimeParameter_Constant) isValueOrRuntimeParameter_Value() {}

// The definition of the deployment config of the pipeline. It contains the
// the platform specific executor configs for KFP OSS.
type PipelineDeploymentConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Map from executor label to executor spec.
	Executors map[string]*PipelineDeploymentConfig_ExecutorSpec `protobuf:"bytes,1,rep,name=executors,proto3" json:"executors,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*PipelineDeploymentConfig) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig) GetExecutors() map[string]*PipelineDeploymentConfig_ExecutorSpec {
	if x != nil {
		return x.Executors
	}
	return nil
}

// Value is the value of the field.
type Value struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*Value_IntValue
	//	*Value_DoubleValue
	//	*Value_StringValue
	Value isValue_Value `protobuf_oneof:"value"`
}

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

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

func (*Value) ProtoMessage() {}

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

func (m *Value) GetValue() isValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *Value) GetIntValue() int64 {
	if x, ok := x.GetValue().(*Value_IntValue); ok {
		return x.IntValue
	}
	return 0
}

func (x *Value) GetDoubleValue() float64 {
	if x, ok := x.GetValue().(*Value_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (x *Value) GetStringValue() string {
	if x, ok := x.GetValue().(*Value_StringValue); ok {
		return x.StringValue
	}
	return ""
}

type isValue_Value interface {
	isValue_Value()
}

type Value_IntValue struct {
	// An integer value
	IntValue int64 `protobuf:"varint,1,opt,name=int_value,json=intValue,proto3,oneof"`
}

type Value_DoubleValue struct {
	// A double value
	DoubleValue float64 `protobuf:"fixed64,2,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type Value_StringValue struct {
	// A string value
	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
}

func (*Value_IntValue) isValue_Value() {}

func (*Value_DoubleValue) isValue_Value() {}

func (*Value_StringValue) isValue_Value() {}

// The definition of a runtime artifact.
type RuntimeArtifact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of an artifact.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The type of the artifact.
	Type *ArtifactTypeSchema `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// The URI of the artifact.
	Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
	// The properties of the artifact.
	// Deprecated. Use [RuntimeArtifact.metadata][] instead.
	//
	// Deprecated: Do not use.
	Properties map[string]*Value `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The custom properties of the artifact.
	// Deprecated. Use [RuntimeArtifact.metadata][] instead.
	//
	// Deprecated: Do not use.
	CustomProperties map[string]*Value `protobuf:"bytes,5,rep,name=custom_properties,json=customProperties,proto3" json:"custom_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Properties of the Artifact.
	Metadata *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
}

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

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

func (*RuntimeArtifact) ProtoMessage() {}

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

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

func (x *RuntimeArtifact) GetType() *ArtifactTypeSchema {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *RuntimeArtifact) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

// Deprecated: Do not use.
func (x *RuntimeArtifact) GetProperties() map[string]*Value {
	if x != nil {
		return x.Properties
	}
	return nil
}

// Deprecated: Do not use.
func (x *RuntimeArtifact) GetCustomProperties() map[string]*Value {
	if x != nil {
		return x.CustomProperties
	}
	return nil
}

func (x *RuntimeArtifact) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// Message that represents a list of artifacts.
type ArtifactList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A list of artifacts.
	Artifacts []*RuntimeArtifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
}

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

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

func (*ArtifactList) ProtoMessage() {}

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

func (x *ArtifactList) GetArtifacts() []*RuntimeArtifact {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

// The input of an executor, which includes all the data that
// can be passed into the executor spec by a string based placeholder.
//
// The string based placeholder uses a JSON path to reference to the data
// in the [ExecutionInput]().
//
// `{{$}}`: prints the full [ExecutorInput]() as a JSON string.
// `{{$.inputs.artifacts['<name>'].uri}}`: prints the URI of an input
// artifact.
// `{{$.inputs.artifacts['<name>'].properties['<property name>']}}`: prints
// the
//   property of an input artifact.
// `{{$.inputs.parameters['<name>']}}`: prints the value of an input
// parameter.
// `{{$.outputs.artifacts['<name>'].uri}}: prints the URI of an output artifact.
// `{{$.outputs.artifacts['<name>'].properties['<property name>']}}`: prints the
//   property of an output artifact.
// `{{$.outputs.parameters['<name>'].output_file}}`: prints a file path which
// points to a file and container can write to it to return the value of the
// parameter..
// `{{$.outputs.output_file}}`: prints a file path of the output metadata file
// which is used to send output metadata from executor to orchestrator. The
// contract of the output metadata is [ExecutorOutput](). When both parameter
// output file and executor output metadata files are set by the container, the
// output metadata file will have higher precedence to set output parameters.
type ExecutorInput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The runtime input artifacts of the task invocation.
	Inputs *ExecutorInput_Inputs `protobuf:"bytes,1,opt,name=inputs,proto3" json:"inputs,omitempty"`
	// The runtime output artifacts of the task invocation.
	Outputs *ExecutorInput_Outputs `protobuf:"bytes,2,opt,name=outputs,proto3" json:"outputs,omitempty"`
}

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

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

func (*ExecutorInput) ProtoMessage() {}

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

func (x *ExecutorInput) GetInputs() *ExecutorInput_Inputs {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (x *ExecutorInput) GetOutputs() *ExecutorInput_Outputs {
	if x != nil {
		return x.Outputs
	}
	return nil
}

// The schema of the output metadata of an execution. It will be used to parse
// the output metadata file.
type ExecutorOutput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The values for output parameters.
	// Deprecated. Use [ExecutorOutput.parameter_values][] instead.
	//
	// Deprecated: Do not use.
	Parameters map[string]*Value `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The updated metadata for output artifact.
	Artifacts map[string]*ArtifactList `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The values for output parameters.
	ParameterValues map[string]*structpb.Value `protobuf:"bytes,3,rep,name=parameter_values,json=parameterValues,proto3" json:"parameter_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ExecutorOutput) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *ExecutorOutput) GetParameters() map[string]*Value {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *ExecutorOutput) GetArtifacts() map[string]*ArtifactList {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *ExecutorOutput) GetParameterValues() map[string]*structpb.Value {
	if x != nil {
		return x.ParameterValues
	}
	return nil
}

// The final status of a task. The structure will be passed to input parameter
// of kind `task_final_status`.
type PipelineTaskFinalStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The final state of the task.
	// The value is the string version of [PipelineStateEnum.PipelineTaskState][]
	State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	// The error of the task.
	Error *status.Status `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	// The pipeline job unique id.
	//
	// Deprecated: Do not use.
	PipelineJobUuid int64 `protobuf:"varint,3,opt,name=pipeline_job_uuid,json=pipelineJobUuid,proto3" json:"pipeline_job_uuid,omitempty"`
	// The pipeline job name from the [PipelineJob.name][].
	//
	// Deprecated: Do not use.
	PipelineJobName string `protobuf:"bytes,4,opt,name=pipeline_job_name,json=pipelineJobName,proto3" json:"pipeline_job_name,omitempty"`
	// The pipeline job resource name, in the format of
	// `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`.
	PipelineJobResourceName string `protobuf:"bytes,5,opt,name=pipeline_job_resource_name,json=pipelineJobResourceName,proto3" json:"pipeline_job_resource_name,omitempty"`
	// The pipeline task that produces this status.
	PipelineTaskName string `protobuf:"bytes,6,opt,name=pipeline_task_name,json=pipelineTaskName,proto3" json:"pipeline_task_name,omitempty"`
}

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

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

func (*PipelineTaskFinalStatus) ProtoMessage() {}

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

func (x *PipelineTaskFinalStatus) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *PipelineTaskFinalStatus) GetError() *status.Status {
	if x != nil {
		return x.Error
	}
	return nil
}

// Deprecated: Do not use.
func (x *PipelineTaskFinalStatus) GetPipelineJobUuid() int64 {
	if x != nil {
		return x.PipelineJobUuid
	}
	return 0
}

// Deprecated: Do not use.
func (x *PipelineTaskFinalStatus) GetPipelineJobName() string {
	if x != nil {
		return x.PipelineJobName
	}
	return ""
}

func (x *PipelineTaskFinalStatus) GetPipelineJobResourceName() string {
	if x != nil {
		return x.PipelineJobResourceName
	}
	return ""
}

func (x *PipelineTaskFinalStatus) GetPipelineTaskName() string {
	if x != nil {
		return x.PipelineTaskName
	}
	return ""
}

type PipelineStateEnum struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*PipelineStateEnum) ProtoMessage() {}

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

// The runtime config of a PipelineJob.
type PipelineJob_RuntimeConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Deprecated. Use [RuntimeConfig.parameter_values][] instead.
	//
	// Deprecated: Do not use.
	Parameters map[string]*Value `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// A path in a Cloud Storage bucket which will be treated as the root
	// output directory of the pipeline. It is used by the system to
	// generate the paths of output artifacts.
	// This is a GCP-specific optimization.
	GcsOutputDirectory string `protobuf:"bytes,2,opt,name=gcs_output_directory,json=gcsOutputDirectory,proto3" json:"gcs_output_directory,omitempty"`
	// The runtime parameters of the PipelineJob. The parameters will be
	// passed into [PipelineJob.pipeline_spec][] to replace the placeholders
	// at runtime.
	ParameterValues map[string]*structpb.Value `protobuf:"bytes,3,rep,name=parameter_values,json=parameterValues,proto3" json:"parameter_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*PipelineJob_RuntimeConfig) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *PipelineJob_RuntimeConfig) GetParameters() map[string]*Value {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *PipelineJob_RuntimeConfig) GetGcsOutputDirectory() string {
	if x != nil {
		return x.GcsOutputDirectory
	}
	return ""
}

func (x *PipelineJob_RuntimeConfig) GetParameterValues() map[string]*structpb.Value {
	if x != nil {
		return x.ParameterValues
	}
	return nil
}

// The definition of the runtime parameter.
type PipelineSpec_RuntimeParameter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required field. The type of the runtime parameter.
	Type PrimitiveType_PrimitiveTypeEnum `protobuf:"varint,1,opt,name=type,proto3,enum=ml_pipelines.PrimitiveType_PrimitiveTypeEnum" json:"type,omitempty"`
	// Optional field. Default value of the runtime parameter. If not set and
	// the runtime parameter value is not provided during runtime, an error will
	// be raised.
	DefaultValue *Value `protobuf:"bytes,2,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
}

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

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

func (*PipelineSpec_RuntimeParameter) ProtoMessage() {}

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

func (x *PipelineSpec_RuntimeParameter) GetType() PrimitiveType_PrimitiveTypeEnum {
	if x != nil {
		return x.Type
	}
	return PrimitiveType_PRIMITIVE_TYPE_UNSPECIFIED
}

func (x *PipelineSpec_RuntimeParameter) GetDefaultValue() *Value {
	if x != nil {
		return x.DefaultValue
	}
	return nil
}

// Selects a defined output artifact from a sub task of the DAG.
type DagOutputsSpec_ArtifactSelectorSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the sub task which produces the output that matches with
	// the `output_artifact_key`.
	ProducerSubtask string `protobuf:"bytes,1,opt,name=producer_subtask,json=producerSubtask,proto3" json:"producer_subtask,omitempty"`
	// The key of [ComponentOutputsSpec.artifacts][] map of the producer task.
	OutputArtifactKey string `protobuf:"bytes,2,opt,name=output_artifact_key,json=outputArtifactKey,proto3" json:"output_artifact_key,omitempty"`
}

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

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

func (*DagOutputsSpec_ArtifactSelectorSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec_ArtifactSelectorSpec) GetProducerSubtask() string {
	if x != nil {
		return x.ProducerSubtask
	}
	return ""
}

func (x *DagOutputsSpec_ArtifactSelectorSpec) GetOutputArtifactKey() string {
	if x != nil {
		return x.OutputArtifactKey
	}
	return ""
}

// Selects a list of output artifacts that will be aggregated to the single
// output artifact channel of the DAG.
type DagOutputsSpec_DagOutputArtifactSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The selected artifacts will be aggregated as output as a single
	// output channel of the DAG.
	ArtifactSelectors []*DagOutputsSpec_ArtifactSelectorSpec `protobuf:"bytes,1,rep,name=artifact_selectors,json=artifactSelectors,proto3" json:"artifact_selectors,omitempty"`
}

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

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

func (*DagOutputsSpec_DagOutputArtifactSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec_DagOutputArtifactSpec) GetArtifactSelectors() []*DagOutputsSpec_ArtifactSelectorSpec {
	if x != nil {
		return x.ArtifactSelectors
	}
	return nil
}

// Selects a defined output parameter from a sub task of the DAG.
type DagOutputsSpec_ParameterSelectorSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the sub task which produces the output that matches with
	// the `output_parameter_key`.
	ProducerSubtask string `protobuf:"bytes,1,opt,name=producer_subtask,json=producerSubtask,proto3" json:"producer_subtask,omitempty"`
	// The key of [ComponentOutputsSpec.parameters][] map of the producer task.
	OutputParameterKey string `protobuf:"bytes,2,opt,name=output_parameter_key,json=outputParameterKey,proto3" json:"output_parameter_key,omitempty"`
}

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

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

func (*DagOutputsSpec_ParameterSelectorSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec_ParameterSelectorSpec) GetProducerSubtask() string {
	if x != nil {
		return x.ProducerSubtask
	}
	return ""
}

func (x *DagOutputsSpec_ParameterSelectorSpec) GetOutputParameterKey() string {
	if x != nil {
		return x.OutputParameterKey
	}
	return ""
}

// Aggregate output parameters from sub tasks into a list object.
type DagOutputsSpec_ParameterSelectorsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ParameterSelectors []*DagOutputsSpec_ParameterSelectorSpec `protobuf:"bytes,1,rep,name=parameter_selectors,json=parameterSelectors,proto3" json:"parameter_selectors,omitempty"`
}

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

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

func (*DagOutputsSpec_ParameterSelectorsSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec_ParameterSelectorsSpec) GetParameterSelectors() []*DagOutputsSpec_ParameterSelectorSpec {
	if x != nil {
		return x.ParameterSelectors
	}
	return nil
}

// Aggregates output parameters from sub tasks into a map object.
type DagOutputsSpec_MapParameterSelectorsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MappedParameters map[string]*DagOutputsSpec_ParameterSelectorSpec `protobuf:"bytes,2,rep,name=mapped_parameters,json=mappedParameters,proto3" json:"mapped_parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*DagOutputsSpec_MapParameterSelectorsSpec) ProtoMessage() {}

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

func (x *DagOutputsSpec_MapParameterSelectorsSpec) GetMappedParameters() map[string]*DagOutputsSpec_ParameterSelectorSpec {
	if x != nil {
		return x.MappedParameters
	}
	return nil
}

// We support four ways to fan-in output parameters from sub tasks to the DAG
// parent task.
// 1. Directly expose a single output parameter from a sub task,
// 2. (Conditional flow) Expose a list of output from multiple tasks
// (some might be skipped) but allows only one of the output being generated.
// 3. Expose a list of outputs from multiple tasks (e.g. iterator flow).
// 4. Expose the aggregation of output parameters as a name-value map.
type DagOutputsSpec_DagOutputParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Kind:
	//	*DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter
	//	*DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof
	Kind isDagOutputsSpec_DagOutputParameterSpec_Kind `protobuf_oneof:"kind"`
}

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

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

func (*DagOutputsSpec_DagOutputParameterSpec) ProtoMessage() {}

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

func (m *DagOutputsSpec_DagOutputParameterSpec) GetKind() isDagOutputsSpec_DagOutputParameterSpec_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (x *DagOutputsSpec_DagOutputParameterSpec) GetValueFromParameter() *DagOutputsSpec_ParameterSelectorSpec {
	if x, ok := x.GetKind().(*DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter); ok {
		return x.ValueFromParameter
	}
	return nil
}

func (x *DagOutputsSpec_DagOutputParameterSpec) GetValueFromOneof() *DagOutputsSpec_ParameterSelectorsSpec {
	if x, ok := x.GetKind().(*DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof); ok {
		return x.ValueFromOneof
	}
	return nil
}

type isDagOutputsSpec_DagOutputParameterSpec_Kind interface {
	isDagOutputsSpec_DagOutputParameterSpec_Kind()
}

type DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter struct {
	// Returns the sub-task parameter as a DAG parameter.  The selected
	// parameter must have the same type as the DAG parameter type.
	ValueFromParameter *DagOutputsSpec_ParameterSelectorSpec `protobuf:"bytes,1,opt,name=value_from_parameter,json=valueFromParameter,proto3,oneof"`
}

type DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof struct {
	// Returns one of the sub-task parameters as a DAG parameter. If there are
	// multiple values are available to select, the DAG will fail. All the
	// selected parameters must have the same type as the DAG parameter type.
	ValueFromOneof *DagOutputsSpec_ParameterSelectorsSpec `protobuf:"bytes,2,opt,name=value_from_oneof,json=valueFromOneof,proto3,oneof"`
}

func (*DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter) isDagOutputsSpec_DagOutputParameterSpec_Kind() {
}

func (*DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof) isDagOutputsSpec_DagOutputParameterSpec_Kind() {
}

// Definition of an artifact input.
type ComponentInputsSpec_ArtifactSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ArtifactType *ArtifactTypeSchema `protobuf:"bytes,1,opt,name=artifact_type,json=artifactType,proto3" json:"artifact_type,omitempty"`
	// Indicates whether input is a single artifact or list of artifacts
	IsArtifactList bool `protobuf:"varint,2,opt,name=is_artifact_list,json=isArtifactList,proto3" json:"is_artifact_list,omitempty"`
	// Whether this input artifact is optional or not.
	// - If required, the artifact must be able to resolve to an artifact
	// at runtime.
	// - If it's optional, it can be missing from the
	// PipelineTaskInputsSpec.InputArtifactSpec (if it's instantiated into a
	// task), or can be missing from the runtimeArtifact (if it's the root
	// component).
	IsOptional bool `protobuf:"varint,3,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"`
}

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

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

func (*ComponentInputsSpec_ArtifactSpec) ProtoMessage() {}

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

func (x *ComponentInputsSpec_ArtifactSpec) GetArtifactType() *ArtifactTypeSchema {
	if x != nil {
		return x.ArtifactType
	}
	return nil
}

func (x *ComponentInputsSpec_ArtifactSpec) GetIsArtifactList() bool {
	if x != nil {
		return x.IsArtifactList
	}
	return false
}

func (x *ComponentInputsSpec_ArtifactSpec) GetIsOptional() bool {
	if x != nil {
		return x.IsOptional
	}
	return false
}

// Definition of a parameter input.
type ComponentInputsSpec_ParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Specifies an input parameter's type.
	// Deprecated. Use [ParameterSpec.parameter_type][] instead.
	//
	// Deprecated: Do not use.
	Type PrimitiveType_PrimitiveTypeEnum `protobuf:"varint,1,opt,name=type,proto3,enum=ml_pipelines.PrimitiveType_PrimitiveTypeEnum" json:"type,omitempty"`
	// Specifies an input parameter's type.
	ParameterType ParameterType_ParameterTypeEnum `protobuf:"varint,2,opt,name=parameter_type,json=parameterType,proto3,enum=ml_pipelines.ParameterType_ParameterTypeEnum" json:"parameter_type,omitempty"`
	// Optional field. Default value of the input parameter.
	DefaultValue *structpb.Value `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
	// Whether this input parameter is optional or not.
	// - If required, the parameter should either have a default value, or have
	// to be able to resolve to a concrete value at runtime.
	// - If it's optional, it can be missing from the
	// PipelineTaskInputsSpec.InputParameterSpec (if it's instantiated into a
	// task), or can be missing from the runtimeParameter (if it's the root
	// component). If the value is missing, the default_value will be used. Or
	// if default_value is not provided, the default value of the parameter's
	// type will be used.
	IsOptional bool `protobuf:"varint,4,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"`
}

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

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

func (*ComponentInputsSpec_ParameterSpec) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *ComponentInputsSpec_ParameterSpec) GetType() PrimitiveType_PrimitiveTypeEnum {
	if x != nil {
		return x.Type
	}
	return PrimitiveType_PRIMITIVE_TYPE_UNSPECIFIED
}

func (x *ComponentInputsSpec_ParameterSpec) GetParameterType() ParameterType_ParameterTypeEnum {
	if x != nil {
		return x.ParameterType
	}
	return ParameterType_PARAMETER_TYPE_ENUM_UNSPECIFIED
}

func (x *ComponentInputsSpec_ParameterSpec) GetDefaultValue() *structpb.Value {
	if x != nil {
		return x.DefaultValue
	}
	return nil
}

func (x *ComponentInputsSpec_ParameterSpec) GetIsOptional() bool {
	if x != nil {
		return x.IsOptional
	}
	return false
}

// Definition of an artifact output.
type ComponentOutputsSpec_ArtifactSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ArtifactType *ArtifactTypeSchema `protobuf:"bytes,1,opt,name=artifact_type,json=artifactType,proto3" json:"artifact_type,omitempty"`
	// Deprecated. Use [ArtifactSpec.metadata][] instead.
	//
	// Deprecated: Do not use.
	Properties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Deprecated. Use [ArtifactSpec.metadata][] instead.
	//
	// Deprecated: Do not use.
	CustomProperties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,3,rep,name=custom_properties,json=customProperties,proto3" json:"custom_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Properties of the Artifact.
	Metadata *structpb.Struct `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Indicates whether output is a single artifact or list of artifacts
	IsArtifactList bool `protobuf:"varint,5,opt,name=is_artifact_list,json=isArtifactList,proto3" json:"is_artifact_list,omitempty"`
}

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

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

func (*ComponentOutputsSpec_ArtifactSpec) ProtoMessage() {}

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

func (x *ComponentOutputsSpec_ArtifactSpec) GetArtifactType() *ArtifactTypeSchema {
	if x != nil {
		return x.ArtifactType
	}
	return nil
}

// Deprecated: Do not use.
func (x *ComponentOutputsSpec_ArtifactSpec) GetProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.Properties
	}
	return nil
}

// Deprecated: Do not use.
func (x *ComponentOutputsSpec_ArtifactSpec) GetCustomProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.CustomProperties
	}
	return nil
}

func (x *ComponentOutputsSpec_ArtifactSpec) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *ComponentOutputsSpec_ArtifactSpec) GetIsArtifactList() bool {
	if x != nil {
		return x.IsArtifactList
	}
	return false
}

// Definition of a parameter output.
type ComponentOutputsSpec_ParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Specifies an input parameter's type.
	// Deprecated. Use [ParameterSpec.parameter_type][] instead.
	//
	// Deprecated: Do not use.
	Type PrimitiveType_PrimitiveTypeEnum `protobuf:"varint,1,opt,name=type,proto3,enum=ml_pipelines.PrimitiveType_PrimitiveTypeEnum" json:"type,omitempty"`
	// Specifies an output parameter's type.
	ParameterType ParameterType_ParameterTypeEnum `protobuf:"varint,2,opt,name=parameter_type,json=parameterType,proto3,enum=ml_pipelines.ParameterType_ParameterTypeEnum" json:"parameter_type,omitempty"`
}

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

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

func (*ComponentOutputsSpec_ParameterSpec) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *ComponentOutputsSpec_ParameterSpec) GetType() PrimitiveType_PrimitiveTypeEnum {
	if x != nil {
		return x.Type
	}
	return PrimitiveType_PRIMITIVE_TYPE_UNSPECIFIED
}

func (x *ComponentOutputsSpec_ParameterSpec) GetParameterType() ParameterType_ParameterTypeEnum {
	if x != nil {
		return x.ParameterType
	}
	return ParameterType_PARAMETER_TYPE_ENUM_UNSPECIFIED
}

// The specification of a task input artifact.
type TaskInputsSpec_InputArtifactSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Kind:
	//	*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact
	//	*TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact
	Kind isTaskInputsSpec_InputArtifactSpec_Kind `protobuf_oneof:"kind"`
}

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

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

func (*TaskInputsSpec_InputArtifactSpec) ProtoMessage() {}

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

func (m *TaskInputsSpec_InputArtifactSpec) GetKind() isTaskInputsSpec_InputArtifactSpec_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (x *TaskInputsSpec_InputArtifactSpec) GetTaskOutputArtifact() *TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact); ok {
		return x.TaskOutputArtifact
	}
	return nil
}

func (x *TaskInputsSpec_InputArtifactSpec) GetComponentInputArtifact() string {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact); ok {
		return x.ComponentInputArtifact
	}
	return ""
}

type isTaskInputsSpec_InputArtifactSpec_Kind interface {
	isTaskInputsSpec_InputArtifactSpec_Kind()
}

type TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact struct {
	// Pass the input artifact from another task within the same parent
	// component.
	TaskOutputArtifact *TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec `protobuf:"bytes,3,opt,name=task_output_artifact,json=taskOutputArtifact,proto3,oneof"`
}

type TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact struct {
	// Pass the input artifact from parent component input artifact.
	ComponentInputArtifact string `protobuf:"bytes,4,opt,name=component_input_artifact,json=componentInputArtifact,proto3,oneof"`
}

func (*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact) isTaskInputsSpec_InputArtifactSpec_Kind() {
}

func (*TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact) isTaskInputsSpec_InputArtifactSpec_Kind() {
}

// Represents an input parameter. The value can be taken from an upstream
// task's output parameter (if specifying `producer_task` and
// `output_parameter_key`, or it can be a runtime value, which can either be
// determined at compile-time, or from a pipeline parameter.
type TaskInputsSpec_InputParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Kind:
	//	*TaskInputsSpec_InputParameterSpec_TaskOutputParameter
	//	*TaskInputsSpec_InputParameterSpec_RuntimeValue
	//	*TaskInputsSpec_InputParameterSpec_ComponentInputParameter
	//	*TaskInputsSpec_InputParameterSpec_TaskFinalStatus_
	Kind isTaskInputsSpec_InputParameterSpec_Kind `protobuf_oneof:"kind"`
	// Selector expression of Common Expression Language (CEL)
	// that applies to the parameter found from above kind.
	//
	// The expression is applied to the Value type
	// [Value][].  For example,
	// 'size(string_value)' will return the size of the Value.string_value.
	//
	// After applying the selection, the parameter will be returned as a
	// [Value][].  The type of the Value is either deferred from the input
	// definition in the corresponding
	// [ComponentSpec.input_definitions.parameters][], or if not found,
	// automatically deferred as either string value or double value.
	//
	// In addition to the builtin functions in CEL, The value.string_value can
	// be treated as a json string and parsed to the [google.protobuf.Value][]
	// proto message. Then, the CEL expression provided in this field will be
	// used to get the requested field. For examples,
	//  - if Value.string_value is a json array of "[1.1, 2.2, 3.3]",
	//  'parseJson(string_value)[i]' will pass the ith parameter from the list
	//  to the current task, or
	//  - if the Value.string_value is a json map of "{"a": 1.1, "b": 2.2,
	//  "c": 3.3}, 'parseJson(string_value)[key]' will pass the map value from
	//  the struct map to the current task.
	//
	// If unset, the value will be passed directly to the current task.
	ParameterExpressionSelector string `protobuf:"bytes,4,opt,name=parameter_expression_selector,json=parameterExpressionSelector,proto3" json:"parameter_expression_selector,omitempty"`
}

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

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

func (*TaskInputsSpec_InputParameterSpec) ProtoMessage() {}

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

func (m *TaskInputsSpec_InputParameterSpec) GetKind() isTaskInputsSpec_InputParameterSpec_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (x *TaskInputsSpec_InputParameterSpec) GetTaskOutputParameter() *TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputParameterSpec_TaskOutputParameter); ok {
		return x.TaskOutputParameter
	}
	return nil
}

func (x *TaskInputsSpec_InputParameterSpec) GetRuntimeValue() *ValueOrRuntimeParameter {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputParameterSpec_RuntimeValue); ok {
		return x.RuntimeValue
	}
	return nil
}

func (x *TaskInputsSpec_InputParameterSpec) GetComponentInputParameter() string {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputParameterSpec_ComponentInputParameter); ok {
		return x.ComponentInputParameter
	}
	return ""
}

func (x *TaskInputsSpec_InputParameterSpec) GetTaskFinalStatus() *TaskInputsSpec_InputParameterSpec_TaskFinalStatus {
	if x, ok := x.GetKind().(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus_); ok {
		return x.TaskFinalStatus
	}
	return nil
}

func (x *TaskInputsSpec_InputParameterSpec) GetParameterExpressionSelector() string {
	if x != nil {
		return x.ParameterExpressionSelector
	}
	return ""
}

type isTaskInputsSpec_InputParameterSpec_Kind interface {
	isTaskInputsSpec_InputParameterSpec_Kind()
}

type TaskInputsSpec_InputParameterSpec_TaskOutputParameter struct {
	// Output parameter from an upstream task.
	TaskOutputParameter *TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec `protobuf:"bytes,1,opt,name=task_output_parameter,json=taskOutputParameter,proto3,oneof"`
}

type TaskInputsSpec_InputParameterSpec_RuntimeValue struct {
	// A constant value or runtime parameter.
	RuntimeValue *ValueOrRuntimeParameter `protobuf:"bytes,2,opt,name=runtime_value,json=runtimeValue,proto3,oneof"`
}

type TaskInputsSpec_InputParameterSpec_ComponentInputParameter struct {
	// Pass the input parameter from parent component input parameter.
	ComponentInputParameter string `protobuf:"bytes,3,opt,name=component_input_parameter,json=componentInputParameter,proto3,oneof"`
}

type TaskInputsSpec_InputParameterSpec_TaskFinalStatus_ struct {
	// The final status of an uptream task.
	TaskFinalStatus *TaskInputsSpec_InputParameterSpec_TaskFinalStatus `protobuf:"bytes,5,opt,name=task_final_status,json=taskFinalStatus,proto3,oneof"`
}

func (*TaskInputsSpec_InputParameterSpec_TaskOutputParameter) isTaskInputsSpec_InputParameterSpec_Kind() {
}

func (*TaskInputsSpec_InputParameterSpec_RuntimeValue) isTaskInputsSpec_InputParameterSpec_Kind() {}

func (*TaskInputsSpec_InputParameterSpec_ComponentInputParameter) isTaskInputsSpec_InputParameterSpec_Kind() {
}

func (*TaskInputsSpec_InputParameterSpec_TaskFinalStatus_) isTaskInputsSpec_InputParameterSpec_Kind() {
}

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

	// The name of the upstream task which produces the output that matches
	// with the `output_artifact_key`.
	ProducerTask string `protobuf:"bytes,1,opt,name=producer_task,json=producerTask,proto3" json:"producer_task,omitempty"`
	// The key of [TaskOutputsSpec.artifacts][] map of the producer task.
	OutputArtifactKey string `protobuf:"bytes,2,opt,name=output_artifact_key,json=outputArtifactKey,proto3" json:"output_artifact_key,omitempty"`
}

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

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

func (*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec) ProtoMessage() {}

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

func (x *TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec) GetProducerTask() string {
	if x != nil {
		return x.ProducerTask
	}
	return ""
}

func (x *TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec) GetOutputArtifactKey() string {
	if x != nil {
		return x.OutputArtifactKey
	}
	return ""
}

// Represents an upstream task's output parameter.
type TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the upstream task which produces the output parameter that
	// matches with the `output_parameter_key`.
	ProducerTask string `protobuf:"bytes,1,opt,name=producer_task,json=producerTask,proto3" json:"producer_task,omitempty"`
	// The key of [TaskOutputsSpec.parameters][] map of the producer task.
	OutputParameterKey string `protobuf:"bytes,2,opt,name=output_parameter_key,json=outputParameterKey,proto3" json:"output_parameter_key,omitempty"`
}

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

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

func (*TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec) ProtoMessage() {}

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

func (x *TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec) GetProducerTask() string {
	if x != nil {
		return x.ProducerTask
	}
	return ""
}

func (x *TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec) GetOutputParameterKey() string {
	if x != nil {
		return x.OutputParameterKey
	}
	return ""
}

// Represents an upstream task's final status. The field can only be set if
// the schema version is `2.0.0`. The resolved input parameter will be a
// json payload in string type.
type TaskInputsSpec_InputParameterSpec_TaskFinalStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the upsteram task where the final status is coming from.
	ProducerTask string `protobuf:"bytes,1,opt,name=producer_task,json=producerTask,proto3" json:"producer_task,omitempty"`
}

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

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

func (*TaskInputsSpec_InputParameterSpec_TaskFinalStatus) ProtoMessage() {}

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

func (x *TaskInputsSpec_InputParameterSpec_TaskFinalStatus) GetProducerTask() string {
	if x != nil {
		return x.ProducerTask
	}
	return ""
}

// The specification of a task output artifact.
type TaskOutputsSpec_OutputArtifactSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The type of the artifact.
	ArtifactType *ArtifactTypeSchema `protobuf:"bytes,1,opt,name=artifact_type,json=artifactType,proto3" json:"artifact_type,omitempty"`
	// The properties of the artifact, which are determined either at
	// compile-time, or at pipeline submission time through runtime parameters
	Properties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The custom properties of the artifact, which are determined either at
	// compile-time, or at pipeline submission time through runtime parameters
	CustomProperties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,3,rep,name=custom_properties,json=customProperties,proto3" json:"custom_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*TaskOutputsSpec_OutputArtifactSpec) ProtoMessage() {}

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

func (x *TaskOutputsSpec_OutputArtifactSpec) GetArtifactType() *ArtifactTypeSchema {
	if x != nil {
		return x.ArtifactType
	}
	return nil
}

func (x *TaskOutputsSpec_OutputArtifactSpec) GetProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *TaskOutputsSpec_OutputArtifactSpec) GetCustomProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.CustomProperties
	}
	return nil
}

// Specification for output parameters produced by the task.
type TaskOutputsSpec_OutputParameterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required field. The type of the output parameter.
	Type PrimitiveType_PrimitiveTypeEnum `protobuf:"varint,1,opt,name=type,proto3,enum=ml_pipelines.PrimitiveType_PrimitiveTypeEnum" json:"type,omitempty"`
}

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

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

func (*TaskOutputsSpec_OutputParameterSpec) ProtoMessage() {}

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

func (x *TaskOutputsSpec_OutputParameterSpec) GetType() PrimitiveType_PrimitiveTypeEnum {
	if x != nil {
		return x.Type
	}
	return PrimitiveType_PRIMITIVE_TYPE_UNSPECIFIED
}

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

	// Whether or not to enable cache for this task. Defaults to false.
	EnableCache bool `protobuf:"varint,1,opt,name=enable_cache,json=enableCache,proto3" json:"enable_cache,omitempty"`
}

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

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

func (*PipelineTaskSpec_CachingOptions) ProtoMessage() {}

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

func (x *PipelineTaskSpec_CachingOptions) GetEnableCache() bool {
	if x != nil {
		return x.EnableCache
	}
	return false
}

// Trigger policy defines how the task gets triggered. If a task is not
// triggered, it will run into SKIPPED state.
type PipelineTaskSpec_TriggerPolicy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// An expression which will be evaluated into a boolean value. True to
	// trigger the task to run. The expression follows the language of
	// [CEL Spec][https://github.com/google/cel-spec]. It can access the data
	// from [ExecutorInput][] message of the task.
	// For example:
	// - `inputs.artifacts['model'][0].properties['accuracy']*100 > 90`
	// - `inputs.parameters['type'] == 'foo' && inputs.parameters['num'] == 1`
	Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
	// The trigger strategy of this task.  The `strategy` and `condition` are
	// in logic "AND", as a task will only be tested for the `condition` when
	// the `strategy` is meet.
	// Unset or set to default value of TRIGGER_STATEGY_UNDEFINED behaves the
	// same as ALL_UPSTREAM_TASKS_SUCCEEDED.
	Strategy PipelineTaskSpec_TriggerPolicy_TriggerStrategy `protobuf:"varint,2,opt,name=strategy,proto3,enum=ml_pipelines.PipelineTaskSpec_TriggerPolicy_TriggerStrategy" json:"strategy,omitempty"`
}

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

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

func (*PipelineTaskSpec_TriggerPolicy) ProtoMessage() {}

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

func (x *PipelineTaskSpec_TriggerPolicy) GetCondition() string {
	if x != nil {
		return x.Condition
	}
	return ""
}

func (x *PipelineTaskSpec_TriggerPolicy) GetStrategy() PipelineTaskSpec_TriggerPolicy_TriggerStrategy {
	if x != nil {
		return x.Strategy
	}
	return PipelineTaskSpec_TriggerPolicy_TRIGGER_STRATEGY_UNSPECIFIED
}

// User-configured task-level retry.
type PipelineTaskSpec_RetryPolicy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Number of retries before considering a task as failed. Set to 0 or
	// unspecified to disallow retry."
	MaxRetryCount int32 `protobuf:"varint,1,opt,name=max_retry_count,json=maxRetryCount,proto3" json:"max_retry_count,omitempty"`
	// The time interval between retries. Defaults to zero (an immediate retry).
	BackoffDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=backoff_duration,json=backoffDuration,proto3" json:"backoff_duration,omitempty"`
	// The exponential backoff factor applied to backoff_duration. If
	// unspecified, will default to 2.
	BackoffFactor float64 `protobuf:"fixed64,3,opt,name=backoff_factor,json=backoffFactor,proto3" json:"backoff_factor,omitempty"`
	// The maximum duration during which the task will be retried according to
	// the backoff strategy. Max allowed is 1 hour - higher value will be capped
	// to this limit. If unspecified, will set to 1 hour.
	BackoffMaxDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=backoff_max_duration,json=backoffMaxDuration,proto3" json:"backoff_max_duration,omitempty"`
}

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

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

func (*PipelineTaskSpec_RetryPolicy) ProtoMessage() {}

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

func (x *PipelineTaskSpec_RetryPolicy) GetMaxRetryCount() int32 {
	if x != nil {
		return x.MaxRetryCount
	}
	return 0
}

func (x *PipelineTaskSpec_RetryPolicy) GetBackoffDuration() *durationpb.Duration {
	if x != nil {
		return x.BackoffDuration
	}
	return nil
}

func (x *PipelineTaskSpec_RetryPolicy) GetBackoffFactor() float64 {
	if x != nil {
		return x.BackoffFactor
	}
	return 0
}

func (x *PipelineTaskSpec_RetryPolicy) GetBackoffMaxDuration() *durationpb.Duration {
	if x != nil {
		return x.BackoffMaxDuration
	}
	return nil
}

// Iterator related settings.
type PipelineTaskSpec_IteratorPolicy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The limit for the number of concurrent sub-tasks spawned by an iterator
	// task. The value should be a non-negative integer. A value of 0 represents
	// unconstrained parallelism.
	ParallelismLimit int32 `protobuf:"varint,1,opt,name=parallelism_limit,json=parallelismLimit,proto3" json:"parallelism_limit,omitempty"`
}

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

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

func (*PipelineTaskSpec_IteratorPolicy) ProtoMessage() {}

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

func (x *PipelineTaskSpec_IteratorPolicy) GetParallelismLimit() int32 {
	if x != nil {
		return x.ParallelismLimit
	}
	return 0
}

// Specifies the name of the artifact channel which contains the collection of
// items to iterate. The iterator will create a sub-task for each item of
// the collection and pass the item as a new input artifact channel as
// specified by [item_input][].
type ArtifactIteratorSpec_ItemsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the input artifact.
	InputArtifact string `protobuf:"bytes,1,opt,name=input_artifact,json=inputArtifact,proto3" json:"input_artifact,omitempty"`
}

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

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

func (*ArtifactIteratorSpec_ItemsSpec) ProtoMessage() {}

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

func (x *ArtifactIteratorSpec_ItemsSpec) GetInputArtifact() string {
	if x != nil {
		return x.InputArtifact
	}
	return ""
}

// Specifies the spec to decribe the parameter items to iterate.
type ParameterIteratorSpec_ItemsSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Specifies where to get the collection of items to iterate. The iterator
	// will create a sub-task for each item of the collection and pass the item
	// as a new input parameter as specified by [item_input][].
	//
	// Types that are assignable to Kind:
	//	*ParameterIteratorSpec_ItemsSpec_Raw
	//	*ParameterIteratorSpec_ItemsSpec_InputParameter
	Kind isParameterIteratorSpec_ItemsSpec_Kind `protobuf_oneof:"kind"`
}

func (x *ParameterIteratorSpec_ItemsSpec) Reset() {
	*x = ParameterIteratorSpec_ItemsSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ParameterIteratorSpec_ItemsSpec) ProtoMessage() {}

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

func (m *ParameterIteratorSpec_ItemsSpec) GetKind() isParameterIteratorSpec_ItemsSpec_Kind {
	if m != nil {
		return m.Kind
	}
	return nil
}

func (x *ParameterIteratorSpec_ItemsSpec) GetRaw() string {
	if x, ok := x.GetKind().(*ParameterIteratorSpec_ItemsSpec_Raw); ok {
		return x.Raw
	}
	return ""
}

func (x *ParameterIteratorSpec_ItemsSpec) GetInputParameter() string {
	if x, ok := x.GetKind().(*ParameterIteratorSpec_ItemsSpec_InputParameter); ok {
		return x.InputParameter
	}
	return ""
}

type isParameterIteratorSpec_ItemsSpec_Kind interface {
	isParameterIteratorSpec_ItemsSpec_Kind()
}

type ParameterIteratorSpec_ItemsSpec_Raw struct {
	// The raw JSON array.
	Raw string `protobuf:"bytes,1,opt,name=raw,proto3,oneof"`
}

type ParameterIteratorSpec_ItemsSpec_InputParameter struct {
	// The name of the input parameter whose value has the items collection.
	// The parameter must be in STRING type and its content can be parsed
	// as a JSON array.
	InputParameter string `protobuf:"bytes,2,opt,name=input_parameter,json=inputParameter,proto3,oneof"`
}

func (*ParameterIteratorSpec_ItemsSpec_Raw) isParameterIteratorSpec_ItemsSpec_Kind() {}

func (*ParameterIteratorSpec_ItemsSpec_InputParameter) isParameterIteratorSpec_ItemsSpec_Kind() {}

// The specification on a container invocation.
// The string fields of the message support string based placeholder contract
// defined in [ExecutorInput](). The output of the container follows the
// contract of [ExecutorOutput]().
type PipelineDeploymentConfig_PipelineContainerSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The image uri of the container.
	Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	// The main entrypoint commands of the container to run. If not provided,
	// fallback to use the entry point command defined in the container image.
	Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
	// The arguments to pass into the main entrypoint of the container.
	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
	// The lifecycle hooks of the container executor.
	Lifecycle *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle    `protobuf:"bytes,4,opt,name=lifecycle,proto3" json:"lifecycle,omitempty"`
	Resources *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec `protobuf:"bytes,5,opt,name=resources,proto3" json:"resources,omitempty"`
	// Environment variables to be passed to the container.
	Env []*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar `protobuf:"bytes,6,rep,name=env,proto3" json:"env,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_PipelineContainerSpec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetCommand() []string {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetLifecycle() *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle {
	if x != nil {
		return x.Lifecycle
	}
	return nil
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetResources() *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec) GetEnv() []*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar {
	if x != nil {
		return x.Env
	}
	return nil
}

// The specification to import or reimport a new artifact to the pipeline.
type PipelineDeploymentConfig_ImporterSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The URI of the artifact.
	ArtifactUri *ValueOrRuntimeParameter `protobuf:"bytes,1,opt,name=artifact_uri,json=artifactUri,proto3" json:"artifact_uri,omitempty"`
	// The type of the artifact.
	TypeSchema *ArtifactTypeSchema `protobuf:"bytes,2,opt,name=type_schema,json=typeSchema,proto3" json:"type_schema,omitempty"`
	// The properties of the artifact.
	// Deprecated. Use [ImporterSpec.metadata][] instead.
	//
	// Deprecated: Do not use.
	Properties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The custom properties of the artifact.
	// Deprecated. Use [ImporterSpec.metadata][] instead.
	//
	// Deprecated: Do not use.
	CustomProperties map[string]*ValueOrRuntimeParameter `protobuf:"bytes,4,rep,name=custom_properties,json=customProperties,proto3" json:"custom_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Properties of the Artifact.
	Metadata *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Whether or not import an artifact regardless it has been imported before.
	Reimport bool `protobuf:"varint,5,opt,name=reimport,proto3" json:"reimport,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_ImporterSpec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_ImporterSpec) GetArtifactUri() *ValueOrRuntimeParameter {
	if x != nil {
		return x.ArtifactUri
	}
	return nil
}

func (x *PipelineDeploymentConfig_ImporterSpec) GetTypeSchema() *ArtifactTypeSchema {
	if x != nil {
		return x.TypeSchema
	}
	return nil
}

// Deprecated: Do not use.
func (x *PipelineDeploymentConfig_ImporterSpec) GetProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.Properties
	}
	return nil
}

// Deprecated: Do not use.
func (x *PipelineDeploymentConfig_ImporterSpec) GetCustomProperties() map[string]*ValueOrRuntimeParameter {
	if x != nil {
		return x.CustomProperties
	}
	return nil
}

func (x *PipelineDeploymentConfig_ImporterSpec) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *PipelineDeploymentConfig_ImporterSpec) GetReimport() bool {
	if x != nil {
		return x.Reimport
	}
	return false
}

// ResolverSpec resolves artifacts from historical metadata and returns them
// to the pipeline as output artifacts of the resolver task. The downstream
// tasks can consume them as their input artifacts.
type PipelineDeploymentConfig_ResolverSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A list of resolver output definitions. The
	// key of the map must be exactly the same as
	// the keys in the [PipelineTaskOutputsSpec.artifacts][] map.
	// At least one output must be defined.
	OutputArtifactQueries map[string]*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec `protobuf:"bytes,1,rep,name=output_artifact_queries,json=outputArtifactQueries,proto3" json:"output_artifact_queries,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*PipelineDeploymentConfig_ResolverSpec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_ResolverSpec) GetOutputArtifactQueries() map[string]*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec {
	if x != nil {
		return x.OutputArtifactQueries
	}
	return nil
}

// Deprecated: Do not use.
type PipelineDeploymentConfig_AIPlatformCustomJobSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// API Specification for invoking a Google Cloud AI Platform CustomJob.
	// The fields must match the field names and structures of CustomJob
	// defined in
	// https://cloud.google.com/ai-platform-unified/docs/reference/rest/v1beta1/projects.locations.customJobs.
	// The field types must be either the same, or be a string containing the
	// string based placeholder contract defined in [ExecutorInput](). The
	// placeholders will be replaced with the actual value during the runtime
	// before the job is launched.
	CustomJob *structpb.Struct `protobuf:"bytes,1,opt,name=custom_job,json=customJob,proto3" json:"custom_job,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_AIPlatformCustomJobSpec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_AIPlatformCustomJobSpec) GetCustomJob() *structpb.Struct {
	if x != nil {
		return x.CustomJob
	}
	return nil
}

// The specification of the executor.
type PipelineDeploymentConfig_ExecutorSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Spec:
	//	*PipelineDeploymentConfig_ExecutorSpec_Container
	//	*PipelineDeploymentConfig_ExecutorSpec_Importer
	//	*PipelineDeploymentConfig_ExecutorSpec_Resolver
	//	*PipelineDeploymentConfig_ExecutorSpec_CustomJob
	Spec isPipelineDeploymentConfig_ExecutorSpec_Spec `protobuf_oneof:"spec"`
}

func (x *PipelineDeploymentConfig_ExecutorSpec) Reset() {
	*x = PipelineDeploymentConfig_ExecutorSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PipelineDeploymentConfig_ExecutorSpec) ProtoMessage() {}

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

func (m *PipelineDeploymentConfig_ExecutorSpec) GetSpec() isPipelineDeploymentConfig_ExecutorSpec_Spec {
	if m != nil {
		return m.Spec
	}
	return nil
}

func (x *PipelineDeploymentConfig_ExecutorSpec) GetContainer() *PipelineDeploymentConfig_PipelineContainerSpec {
	if x, ok := x.GetSpec().(*PipelineDeploymentConfig_ExecutorSpec_Container); ok {
		return x.Container
	}
	return nil
}

func (x *PipelineDeploymentConfig_ExecutorSpec) GetImporter() *PipelineDeploymentConfig_ImporterSpec {
	if x, ok := x.GetSpec().(*PipelineDeploymentConfig_ExecutorSpec_Importer); ok {
		return x.Importer
	}
	return nil
}

func (x *PipelineDeploymentConfig_ExecutorSpec) GetResolver() *PipelineDeploymentConfig_ResolverSpec {
	if x, ok := x.GetSpec().(*PipelineDeploymentConfig_ExecutorSpec_Resolver); ok {
		return x.Resolver
	}
	return nil
}

// Deprecated: Do not use.
func (x *PipelineDeploymentConfig_ExecutorSpec) GetCustomJob() *PipelineDeploymentConfig_AIPlatformCustomJobSpec {
	if x, ok := x.GetSpec().(*PipelineDeploymentConfig_ExecutorSpec_CustomJob); ok {
		return x.CustomJob
	}
	return nil
}

type isPipelineDeploymentConfig_ExecutorSpec_Spec interface {
	isPipelineDeploymentConfig_ExecutorSpec_Spec()
}

type PipelineDeploymentConfig_ExecutorSpec_Container struct {
	// Starts a container.
	Container *PipelineDeploymentConfig_PipelineContainerSpec `protobuf:"bytes,1,opt,name=container,proto3,oneof"`
}

type PipelineDeploymentConfig_ExecutorSpec_Importer struct {
	// Import an artifact.
	Importer *PipelineDeploymentConfig_ImporterSpec `protobuf:"bytes,2,opt,name=importer,proto3,oneof"`
}

type PipelineDeploymentConfig_ExecutorSpec_Resolver struct {
	// Resolves an existing artifact.
	Resolver *PipelineDeploymentConfig_ResolverSpec `protobuf:"bytes,3,opt,name=resolver,proto3,oneof"`
}

type PipelineDeploymentConfig_ExecutorSpec_CustomJob struct {
	// Starts a Google Cloud AI Platform CustomJob.
	//
	// Deprecated: Do not use.
	CustomJob *PipelineDeploymentConfig_AIPlatformCustomJobSpec `protobuf:"bytes,4,opt,name=custom_job,json=customJob,proto3,oneof"`
}

func (*PipelineDeploymentConfig_ExecutorSpec_Container) isPipelineDeploymentConfig_ExecutorSpec_Spec() {
}

func (*PipelineDeploymentConfig_ExecutorSpec_Importer) isPipelineDeploymentConfig_ExecutorSpec_Spec() {
}

func (*PipelineDeploymentConfig_ExecutorSpec_Resolver) isPipelineDeploymentConfig_ExecutorSpec_Spec() {
}

func (*PipelineDeploymentConfig_ExecutorSpec_CustomJob) isPipelineDeploymentConfig_ExecutorSpec_Spec() {
}

// The lifecycle hooks of the container.
// Each hook follows the same I/O contract as the main container entrypoint.
// See [ExecutorInput]() and [ExecutorOutput]() for details.
// (-- TODO(b/165323565): add more documentation on caching and lifecycle
// hooks. --)
type PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// This hook is invoked before caching check. It can change the properties
	// of the execution and output artifacts before they are used to compute
	// the cache key. The updated metadata will be passed into the main
	// container entrypoint.
	PreCacheCheck *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec `protobuf:"bytes,1,opt,name=pre_cache_check,json=preCacheCheck,proto3" json:"pre_cache_check,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle) GetPreCacheCheck() *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec {
	if x != nil {
		return x.PreCacheCheck
	}
	return nil
}

// The specification on the resource requirements of a container execution.
// This can include specification of vCPU, memory requirements, as well as
// accelerator types and counts.
type PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The limit of the number of vCPU cores. This container execution needs
	// at most cpu_limit vCPU to run.
	CpuLimit float64 `protobuf:"fixed64,1,opt,name=cpu_limit,json=cpuLimit,proto3" json:"cpu_limit,omitempty"`
	// The memory limit in GB. This container execution needs at most
	// memory_limit RAM to run.
	MemoryLimit float64                                                                        `protobuf:"fixed64,2,opt,name=memory_limit,json=memoryLimit,proto3" json:"memory_limit,omitempty"`
	Accelerator *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig `protobuf:"bytes,3,opt,name=accelerator,proto3" json:"accelerator,omitempty"`
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec) Reset() {
	*x = PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec) GetCpuLimit() float64 {
	if x != nil {
		return x.CpuLimit
	}
	return 0
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec) GetMemoryLimit() float64 {
	if x != nil {
		return x.MemoryLimit
	}
	return 0
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec) GetAccelerator() *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig {
	if x != nil {
		return x.Accelerator
	}
	return nil
}

// Environment variables to be passed to the container.
// Represents an environment variable present in a container.
type PipelineDeploymentConfig_PipelineContainerSpec_EnvVar struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the environment variable. Must be a valid C identifier. It can
	// be composed of characters such as uppercase, lowercase characters,
	// underscore, digits, but the leading character should be either a
	// letter or an underscore.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Variables that reference a $(VAR_NAME) are expanded using the previous
	// defined environment variables in the container and any environment
	// variables defined by the platform runtime that executes this pipeline.
	// If a variable cannot be resolved, the reference in the input string
	// will be unchanged. The $(VAR_NAME) syntax can be escaped with a double
	// $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
	// regardless of whether the variable exists or not.
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_EnvVar) Reset() {
	*x = PipelineDeploymentConfig_PipelineContainerSpec_EnvVar{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar) ProtoMessage() {}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_EnvVar) ProtoReflect() protoreflect.Message {
	mi := &file_pipeline_spec_proto_msgTypes[80]
	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 PipelineDeploymentConfig_PipelineContainerSpec_EnvVar.ProtoReflect.Descriptor instead.
func (*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar) Descriptor() ([]byte, []int) {
	return file_pipeline_spec_proto_rawDescGZIP(), []int{19, 0, 2}
}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec_EnvVar) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// The command and args to execute a program.
type PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The command of the exec program.
	Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
	// The args of the exec program.
	Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec) ProtoMessage() {}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec) GetCommand() []string {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

// The specification on the accelerators being attached to this container.
type PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The type of accelerators.
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// The number of accelerators.
	Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig) ProtoMessage() {
}

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

func (x *PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

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

// The query to fetch artifacts.
type PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The filter of the artifact query. The supported syntax are:
	// - `in_context("<context name>")`
	// - `artifact_type="<artifact type name>"`
	// - `uri="<uri>"`
	// - `state=<state>`
	// - `name="value"`
	// - `AND` to combine two conditions and returns when both are true.
	// If no `in_context` filter is set, the query will be scoped to the
	// the current pipeline context.
	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// The maximum number of the artifacts to be returned from the
	// query. If not defined, the default limit is `1`.
	Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
}

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

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

func (*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec) ProtoMessage() {}

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

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

func (x *PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

// The runtime inputs data of the execution.
type ExecutorInput_Inputs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input parameters of the execution.
	// Deprecated. Use [ExecutorInput.Inputs.parameter_values][] instead.
	//
	// Deprecated: Do not use.
	Parameters map[string]*Value `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Input artifacts of the execution.
	Artifacts map[string]*ArtifactList `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Input parameters of the execution.
	ParameterValues map[string]*structpb.Value `protobuf:"bytes,3,rep,name=parameter_values,json=parameterValues,proto3" json:"parameter_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ExecutorInput_Inputs) Reset() {
	*x = ExecutorInput_Inputs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ExecutorInput_Inputs) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *ExecutorInput_Inputs) GetParameters() map[string]*Value {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *ExecutorInput_Inputs) GetArtifacts() map[string]*ArtifactList {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *ExecutorInput_Inputs) GetParameterValues() map[string]*structpb.Value {
	if x != nil {
		return x.ParameterValues
	}
	return nil
}

// The runtime output parameter.
type ExecutorInput_OutputParameter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The file path which is used by the executor to pass the parameter value
	// to the system.
	OutputFile string `protobuf:"bytes,1,opt,name=output_file,json=outputFile,proto3" json:"output_file,omitempty"`
}

func (x *ExecutorInput_OutputParameter) Reset() {
	*x = ExecutorInput_OutputParameter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ExecutorInput_OutputParameter) ProtoMessage() {}

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

func (x *ExecutorInput_OutputParameter) GetOutputFile() string {
	if x != nil {
		return x.OutputFile
	}
	return ""
}

// The runtime outputs data of the execution.
type ExecutorInput_Outputs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The runtime output parameters.
	Parameters map[string]*ExecutorInput_OutputParameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The runtime output artifacts.
	Artifacts map[string]*ArtifactList `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The file path of the full output metadata JSON. The schema of the output
	// file is [ExecutorOutput][].
	//
	// When the full output metadata file is set by the container, the output
	// parameter files will be ignored.
	OutputFile string `protobuf:"bytes,3,opt,name=output_file,json=outputFile,proto3" json:"output_file,omitempty"`
}

func (x *ExecutorInput_Outputs) Reset() {
	*x = ExecutorInput_Outputs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pipeline_spec_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ExecutorInput_Outputs) ProtoMessage() {}

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

func (x *ExecutorInput_Outputs) GetParameters() map[string]*ExecutorInput_OutputParameter {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *ExecutorInput_Outputs) GetArtifacts() map[string]*ArtifactList {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *ExecutorInput_Outputs) GetOutputFile() string {
	if x != nil {
		return x.OutputFile
	}
	return ""
}

var File_pipeline_spec_proto protoreflect.FileDescriptor

var file_pipeline_spec_proto_rawDesc = []byte{
	0x0a, 0x13, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 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, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x06, 0x0a, 0x0b, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x3c, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70,
	0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63,
	0x74, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12,
	0x3d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4e,
	0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f,
	0x62, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
	0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 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, 0x1a, 0xb7, 0x03, 0x0a, 0x0d, 0x52, 0x75,
	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5b, 0x0a, 0x0a, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x37, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69,
	0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x67, 0x63, 0x73, 0x5f,
	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x67, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x67, 0x0a, 0x10, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x2e,
	0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
	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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a,
	0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10,
	0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0xf8, 0x04,
	0x0a, 0x0c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3f,
	0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x40, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70,
	0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63,
	0x74, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
	0x74, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x1a, 0x8f, 0x01, 0x0a, 0x10, 0x52,
	0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12,
	0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69,
	0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69,
	0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c,
	0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x5a, 0x0a, 0x0f,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 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, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44,
	0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a,
	0x03, 0x64, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x53, 0x70, 0x65,
	0x63, 0x48, 0x00, 0x52, 0x03, 0x64, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63,
	0x75, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x44, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12,
	0x36, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61,
	0x67, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x1a,
	0x58, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 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,
	0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf6, 0x0a, 0x0a, 0x0e, 0x44, 0x61,
	0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x49, 0x0a, 0x09,
	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44,
	0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6c,
	0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x71, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x29, 0x0a,
	0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65,
	0x72, 0x53, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74,
	0x69, 0x66, 0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x79, 0x0a, 0x15, 0x44, 0x61, 0x67, 0x4f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x60, 0x0a, 0x12, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x11, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x73, 0x1a, 0x70, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73,
	0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x74, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x29,
	0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x61,
	0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
	0x65, 0x72, 0x53, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x1a, 0x7d, 0x0a, 0x16, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
	0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63,
	0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
	0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x8f, 0x02, 0x0a, 0x19, 0x4d,
	0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x79, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x70,
	0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65,
	0x63, 0x2e, 0x4d, 0x61, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x61, 0x70, 0x70,
	0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x73, 0x1a, 0x77, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x50, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x48,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65,
	0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xef, 0x01, 0x0a,
	0x16, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x66, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x12, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12,
	0x5f, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6f, 0x6e,
	0x65, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6c, 0x5f, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
	0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00,
	0x52, 0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x6e, 0x65, 0x6f, 0x66,
	0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x1a, 0x72,
	0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x73, 0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63,
	0x2e, 0x44, 0x61, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0xc6, 0x06, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4e, 0x0a, 0x09, 0x61, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63,
	0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65,
	0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0xa0, 0x01,
	0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x45,
	0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0e, 0x69, 0x73, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
	0x1a, 0x8a, 0x02, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
	0x65, 0x63, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72,
	0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x42,
	0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d,
	0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x3b, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c,
	0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x69, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x1a, 0x6c, 0x0a,
	0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2e, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6e, 0x0a, 0x0f, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2f, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70,
	0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb0, 0x09, 0x0a, 0x14,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73,
	0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6c, 0x5f, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
	0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0xe3, 0x04, 0x0a, 0x0c, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x45, 0x0a, 0x0d, 0x61, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x63, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61,
	0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x45, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70,
	0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
	0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x63, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x33,
	0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61,
	0x63, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69,
	0x73, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x64, 0x0a,
	0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x1a, 0x6a, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
	0xac, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69,
	0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02,
	0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52,
	0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x6d,
	0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70,
	0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6f, 0x0a,
	0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
	0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd8,
	0x0a, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x4c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12,
	0x49, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63,
	0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0xc7, 0x02, 0x0a, 0x11, 0x49,
	0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63,
	0x12, 0x79, 0x0a, 0x14, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61,
	0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54,
	0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x63,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x16, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x1a, 0x6d, 0x0a, 0x16, 0x54, 0x61, 0x73, 0x6b, 0x4f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x74, 0x61,
	0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63,
	0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66,
	0x61, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x4a, 0x04,
	0x08, 0x05, 0x10, 0x06, 0x1a, 0x84, 0x05, 0x0a, 0x12, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7d, 0x0a, 0x15, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
	0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x75,
	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74,
	0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x63,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x11, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x66,
	0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
	0x65, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x1d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x70, 0x0a, 0x17, 0x54, 0x61, 0x73,
	0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
	0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72,
	0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f,
	0x64, 0x75, 0x63, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x1a, 0x36, 0x0a, 0x0f, 0x54,
	0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23,
	0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x54,
	0x61, 0x73, 0x6b, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x6e, 0x0a, 0x0f, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2f, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54,
	0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6c, 0x0a, 0x0e, 0x41,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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,
	0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61,
	0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xef, 0x07, 0x0a, 0x0f, 0x54, 0x61,
	0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4d, 0x0a,
	0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63,
	0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x09,
	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54,
	0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0x84, 0x04, 0x0a, 0x12, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12,
	0x45, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61,
	0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x60, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
	0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72,
	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70,
	0x65, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x64, 0x0a,
	0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x1a, 0x6a, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
	0x58, 0x0a, 0x13, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70,
	0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45,
	0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x70, 0x0a, 0x0f, 0x50, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x47,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x73,
	0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6e, 0x0a, 0x0e, 0x41,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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,
	0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54, 0x61,
	0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x0d, 0x50,
	0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x11,
	0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75,
	0x6d, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x49, 0x4d, 0x49, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54,
	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
	0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f,
	0x55, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47,
	0x10, 0x03, 0x1a, 0x02, 0x18, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x01, 0x0a,
	0x11, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e,
	0x75, 0x6d, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x55, 0x4d, 0x42, 0x45,
	0x52, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x55,
	0x4d, 0x42, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0a,
	0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f,
	0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, 0x54, 0x10,
	0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x06, 0x22, 0xe1, 0x0a,
	0x0a, 0x10, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x70,
	0x65, 0x63, 0x12, 0x3b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73,
	0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x34, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x54,
	0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x06, 0x69,
	0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65,
	0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e,
	0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x56,
	0x0a, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54,
	0x61, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d,
	0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x12, 0x53, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x2e,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x51, 0x0a, 0x11,
	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49,
	0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x61,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12,
	0x54, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x74, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x6c,
	0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63,
	0x48, 0x00, 0x52, 0x11, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x74, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4d, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6c,
	0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x52, 0x65, 0x74, 0x72,
	0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x12, 0x56, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x74,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x69, 0x74,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x33, 0x0a, 0x0e,
	0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21,
	0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x1a, 0x80, 0x02, 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x58, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
	0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x77, 0x0a, 0x0f, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x20,
	0x0a, 0x1c, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45,
	0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d,
	0x5f, 0x54, 0x41, 0x53, 0x4b, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44,
	0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x4c, 0x4c, 0x5f, 0x55, 0x50, 0x53, 0x54, 0x52, 0x45,
	0x41, 0x4d, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
	0x45, 0x44, 0x10, 0x02, 0x1a, 0xef, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72,
	0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d,
	0x61, 0x78, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x10,
	0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	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, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x66, 0x61,
	0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b,
	0x6f, 0x66, 0x66, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x14, 0x62, 0x61, 0x63,
	0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x04, 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, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x4d, 0x61, 0x78, 0x44, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0e, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x61,
	0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x69, 0x73, 0x6d,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x74,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74,
	0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x74,
	0x65, 0x6d, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d,
	0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x32, 0x0a,
	0x09, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x22, 0xcf, 0x01, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49,
	0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x43, 0x0a, 0x05, 0x69,
	0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e,
	0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
	0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a,
	0x52, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x03,
	0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77,
	0x12, 0x29, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b,
	0x69, 0x6e, 0x64, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x50, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x12,
	0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x74, 0x69, 0x74,
	0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48,
	0x00, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x12, 0x29, 0x0a, 0x0f,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06,
	0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x26, 0x0a, 0x10, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc9,
	0x01, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0e, 0x63, 0x6f,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x63,
	0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, 0x11,
	0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69,
	0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x63,
	0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x74, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd0, 0x14, 0x0a, 0x18, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75,
	0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0xfd, 0x06, 0x0a,
	0x15, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x64, 0x0a, 0x09, 0x6c, 0x69,
	0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4c, 0x69, 0x66, 0x65,
	0x63, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65,
	0x12, 0x67, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f,
	0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65,
	0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x03, 0x65, 0x6e, 0x76,
	0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65,
	0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
	0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76,
	0x1a, 0xb6, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x73,
	0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44,
	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
	0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
	0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2e,
	0x45, 0x78, 0x65, 0x63, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x68,
	0x65, 0x63, 0x6b, 0x1a, 0x34, 0x0a, 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x8c, 0x02, 0x0a, 0x0c, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70,
	0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63,
	0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
	0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7d, 0x0a, 0x0b, 0x61, 0x63,
	0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x5b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x6c,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x61, 0x63,
	0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x3d, 0x0a, 0x11, 0x41, 0x63, 0x63,
	0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x32, 0x0a, 0x06, 0x45, 0x6e, 0x76, 0x56,
	0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa3, 0x05, 0x0a,
	0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x48, 0x0a,
	0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x55, 0x72, 0x69, 0x12, 0x41, 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x5f,
	0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0a,
	0x74, 0x79, 0x70, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x67, 0x0a, 0x0a, 0x70, 0x72,
	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
	0x69, 0x65, 0x73, 0x12, 0x7a, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72,
	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x53,
	0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
	0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x63,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,
	0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x1a, 0x64, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69,
	0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6a, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x72, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0xec, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x53,
	0x70, 0x65, 0x63, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70,
	0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74,
	0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x11,
	0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65,
	0x63, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d,
	0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a,
	0x8f, 0x01, 0x0a, 0x1a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61,
	0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 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, 0x5b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x45, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72,
	0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x1a, 0x55, 0x0a, 0x17, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x36, 0x0a, 0x0a,
	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f,
	0x6d, 0x4a, 0x6f, 0x62, 0x3a, 0x02, 0x18, 0x01, 0x1a, 0xff, 0x02, 0x0a, 0x0c, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x09, 0x63, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72,
	0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6c, 0x5f, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00,
	0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x08, 0x72, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x53, 0x70, 0x65,
	0x63, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x63, 0x0a,
	0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x3e, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d,
	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65,
	0x63, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a,
	0x6f, 0x62, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x71, 0x0a, 0x0e, 0x45, 0x78,
	0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 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, 0x49,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x53, 0x70,
	0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x79, 0x0a,
	0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
	0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x04, 0x0a, 0x0f, 0x52, 0x75, 0x6e,
	0x74, 0x69, 0x6d, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x74,
	0x69, 0x6d, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x11, 0x63,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x72, 0x74,
	0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
	0x73, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x52, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
	0x74, 0x69, 0x65, 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, 0x29, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x15, 0x43, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	0x73, 0x22, 0xfa, 0x08, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12,
	0x3d, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x1a, 0x9f,
	0x04, 0x0a, 0x06, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x0a, 0x70, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
	0x73, 0x12, 0x4f, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x73, 0x12, 0x62, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63,
	0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73,
	0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 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, 0x29, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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, 0x30,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74,
	0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
	0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x2c,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x32, 0x0a, 0x0f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69,
	0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x46, 0x69, 0x6c, 0x65, 0x1a, 0x97, 0x03, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73,
	0x12, 0x53, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75,
	0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
	0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
	0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2e, 0x41, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72,
	0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x1a, 0x6a, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x41, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d,
	0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63,
	0x75, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
	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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95,
	0x04, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x12, 0x50, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
	0x65, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x4f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x5c,
	0x0a, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72,
	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x70, 0x61, 0x72,
	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x0f,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x58, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6c, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x14, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x02, 0x0a, 0x17, 0x50, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x11, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a,
	0x6f, 0x62, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18,
	0x01, 0x52, 0x0f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x55, 0x75,
	0x69, 0x64, 0x12, 0x2e, 0x0a, 0x11, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a,
	0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18,
	0x01, 0x52, 0x0f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a,
	0x6f, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x2c, 0x0a, 0x12, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x02,
	0x0a, 0x11, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45,
	0x6e, 0x75, 0x6d, 0x22, 0x89, 0x02, 0x0a, 0x11, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x53,
	0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47,
	0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52,
	0x49, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52,
	0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10,
	0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x4f, 0x52,
	0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10,
	0x05, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x4e, 0x44,
	0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c,
	0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c,
	0x45, 0x44, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x09,
	0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x0a, 0x0a,
	0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54,
	0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x11, 0x0a, 0x0d,
	0x55, 0x4e, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0d, 0x42,
	0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75,
	0x62, 0x65, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x6f,
	0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x70, 0x65, 0x63, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_pipeline_spec_proto_rawDescOnce sync.Once
	file_pipeline_spec_proto_rawDescData = file_pipeline_spec_proto_rawDesc
)

func file_pipeline_spec_proto_rawDescGZIP() []byte {
	file_pipeline_spec_proto_rawDescOnce.Do(func() {
		file_pipeline_spec_proto_rawDescData = protoimpl.X.CompressGZIP(file_pipeline_spec_proto_rawDescData)
	})
	return file_pipeline_spec_proto_rawDescData
}

var file_pipeline_spec_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_pipeline_spec_proto_msgTypes = make([]protoimpl.MessageInfo, 100)
var file_pipeline_spec_proto_goTypes = []interface{}{
	(PrimitiveType_PrimitiveTypeEnum)(0),                // 0: ml_pipelines.PrimitiveType.PrimitiveTypeEnum
	(ParameterType_ParameterTypeEnum)(0),                // 1: ml_pipelines.ParameterType.ParameterTypeEnum
	(PipelineTaskSpec_TriggerPolicy_TriggerStrategy)(0), // 2: ml_pipelines.PipelineTaskSpec.TriggerPolicy.TriggerStrategy
	(PipelineStateEnum_PipelineTaskState)(0),            // 3: ml_pipelines.PipelineStateEnum.PipelineTaskState
	(*PipelineJob)(nil),                                 // 4: ml_pipelines.PipelineJob
	(*PipelineSpec)(nil),                                // 5: ml_pipelines.PipelineSpec
	(*ComponentSpec)(nil),                               // 6: ml_pipelines.ComponentSpec
	(*DagSpec)(nil),                                     // 7: ml_pipelines.DagSpec
	(*DagOutputsSpec)(nil),                              // 8: ml_pipelines.DagOutputsSpec
	(*ComponentInputsSpec)(nil),                         // 9: ml_pipelines.ComponentInputsSpec
	(*ComponentOutputsSpec)(nil),                        // 10: ml_pipelines.ComponentOutputsSpec
	(*TaskInputsSpec)(nil),                              // 11: ml_pipelines.TaskInputsSpec
	(*TaskOutputsSpec)(nil),                             // 12: ml_pipelines.TaskOutputsSpec
	(*PrimitiveType)(nil),                               // 13: ml_pipelines.PrimitiveType
	(*ParameterType)(nil),                               // 14: ml_pipelines.ParameterType
	(*PipelineTaskSpec)(nil),                            // 15: ml_pipelines.PipelineTaskSpec
	(*ArtifactIteratorSpec)(nil),                        // 16: ml_pipelines.ArtifactIteratorSpec
	(*ParameterIteratorSpec)(nil),                       // 17: ml_pipelines.ParameterIteratorSpec
	(*ComponentRef)(nil),                                // 18: ml_pipelines.ComponentRef
	(*PipelineInfo)(nil),                                // 19: ml_pipelines.PipelineInfo
	(*ArtifactTypeSchema)(nil),                          // 20: ml_pipelines.ArtifactTypeSchema
	(*PipelineTaskInfo)(nil),                            // 21: ml_pipelines.PipelineTaskInfo
	(*ValueOrRuntimeParameter)(nil),                     // 22: ml_pipelines.ValueOrRuntimeParameter
	(*PipelineDeploymentConfig)(nil),                    // 23: ml_pipelines.PipelineDeploymentConfig
	(*Value)(nil),                                       // 24: ml_pipelines.Value
	(*RuntimeArtifact)(nil),                             // 25: ml_pipelines.RuntimeArtifact
	(*ArtifactList)(nil),                                // 26: ml_pipelines.ArtifactList
	(*ExecutorInput)(nil),                               // 27: ml_pipelines.ExecutorInput
	(*ExecutorOutput)(nil),                              // 28: ml_pipelines.ExecutorOutput
	(*PipelineTaskFinalStatus)(nil),                     // 29: ml_pipelines.PipelineTaskFinalStatus
	(*PipelineStateEnum)(nil),                           // 30: ml_pipelines.PipelineStateEnum
	nil,                                                 // 31: ml_pipelines.PipelineJob.LabelsEntry
	(*PipelineJob_RuntimeConfig)(nil),                   // 32: ml_pipelines.PipelineJob.RuntimeConfig
	nil,                                                 // 33: ml_pipelines.PipelineJob.RuntimeConfig.ParametersEntry
	nil,                                                 // 34: ml_pipelines.PipelineJob.RuntimeConfig.ParameterValuesEntry
	(*PipelineSpec_RuntimeParameter)(nil),               // 35: ml_pipelines.PipelineSpec.RuntimeParameter
	nil,                                                 // 36: ml_pipelines.PipelineSpec.ComponentsEntry
	nil,                                                 // 37: ml_pipelines.DagSpec.TasksEntry
	(*DagOutputsSpec_ArtifactSelectorSpec)(nil),         // 38: ml_pipelines.DagOutputsSpec.ArtifactSelectorSpec
	(*DagOutputsSpec_DagOutputArtifactSpec)(nil),        // 39: ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec
	nil, // 40: ml_pipelines.DagOutputsSpec.ArtifactsEntry
	(*DagOutputsSpec_ParameterSelectorSpec)(nil),     // 41: ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
	(*DagOutputsSpec_ParameterSelectorsSpec)(nil),    // 42: ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec
	(*DagOutputsSpec_MapParameterSelectorsSpec)(nil), // 43: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec
	(*DagOutputsSpec_DagOutputParameterSpec)(nil),    // 44: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec
	nil,                                      // 45: ml_pipelines.DagOutputsSpec.ParametersEntry
	nil,                                      // 46: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry
	(*ComponentInputsSpec_ArtifactSpec)(nil), // 47: ml_pipelines.ComponentInputsSpec.ArtifactSpec
	(*ComponentInputsSpec_ParameterSpec)(nil), // 48: ml_pipelines.ComponentInputsSpec.ParameterSpec
	nil, // 49: ml_pipelines.ComponentInputsSpec.ArtifactsEntry
	nil, // 50: ml_pipelines.ComponentInputsSpec.ParametersEntry
	(*ComponentOutputsSpec_ArtifactSpec)(nil),  // 51: ml_pipelines.ComponentOutputsSpec.ArtifactSpec
	(*ComponentOutputsSpec_ParameterSpec)(nil), // 52: ml_pipelines.ComponentOutputsSpec.ParameterSpec
	nil,                                      // 53: ml_pipelines.ComponentOutputsSpec.ArtifactsEntry
	nil,                                      // 54: ml_pipelines.ComponentOutputsSpec.ParametersEntry
	nil,                                      // 55: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry
	nil,                                      // 56: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry
	(*TaskInputsSpec_InputArtifactSpec)(nil), // 57: ml_pipelines.TaskInputsSpec.InputArtifactSpec
	(*TaskInputsSpec_InputParameterSpec)(nil), // 58: ml_pipelines.TaskInputsSpec.InputParameterSpec
	nil, // 59: ml_pipelines.TaskInputsSpec.ParametersEntry
	nil, // 60: ml_pipelines.TaskInputsSpec.ArtifactsEntry
	(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec)(nil),   // 61: ml_pipelines.TaskInputsSpec.InputArtifactSpec.TaskOutputArtifactSpec
	(*TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec)(nil), // 62: ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskOutputParameterSpec
	(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus)(nil),         // 63: ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskFinalStatus
	(*TaskOutputsSpec_OutputArtifactSpec)(nil),                        // 64: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec
	(*TaskOutputsSpec_OutputParameterSpec)(nil),                       // 65: ml_pipelines.TaskOutputsSpec.OutputParameterSpec
	nil,                                     // 66: ml_pipelines.TaskOutputsSpec.ParametersEntry
	nil,                                     // 67: ml_pipelines.TaskOutputsSpec.ArtifactsEntry
	nil,                                     // 68: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry
	nil,                                     // 69: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry
	(*PipelineTaskSpec_CachingOptions)(nil), // 70: ml_pipelines.PipelineTaskSpec.CachingOptions
	(*PipelineTaskSpec_TriggerPolicy)(nil),  // 71: ml_pipelines.PipelineTaskSpec.TriggerPolicy
	(*PipelineTaskSpec_RetryPolicy)(nil),    // 72: ml_pipelines.PipelineTaskSpec.RetryPolicy
	(*PipelineTaskSpec_IteratorPolicy)(nil), // 73: ml_pipelines.PipelineTaskSpec.IteratorPolicy
	(*ArtifactIteratorSpec_ItemsSpec)(nil),  // 74: ml_pipelines.ArtifactIteratorSpec.ItemsSpec
	(*ParameterIteratorSpec_ItemsSpec)(nil), // 75: ml_pipelines.ParameterIteratorSpec.ItemsSpec
	(*PipelineDeploymentConfig_PipelineContainerSpec)(nil),   // 76: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec
	(*PipelineDeploymentConfig_ImporterSpec)(nil),            // 77: ml_pipelines.PipelineDeploymentConfig.ImporterSpec
	(*PipelineDeploymentConfig_ResolverSpec)(nil),            // 78: ml_pipelines.PipelineDeploymentConfig.ResolverSpec
	(*PipelineDeploymentConfig_AIPlatformCustomJobSpec)(nil), // 79: ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec
	(*PipelineDeploymentConfig_ExecutorSpec)(nil),            // 80: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec
	nil, // 81: ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry
	(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle)(nil),                      // 82: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle
	(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec)(nil),                   // 83: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec
	(*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar)(nil),                         // 84: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.EnvVar
	(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec)(nil),                 // 85: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.Exec
	(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig)(nil), // 86: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.AcceleratorConfig
	nil, // 87: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry
	nil, // 88: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry
	(*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec)(nil), // 89: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.ArtifactQuerySpec
	nil,                                   // 90: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry
	nil,                                   // 91: ml_pipelines.RuntimeArtifact.PropertiesEntry
	nil,                                   // 92: ml_pipelines.RuntimeArtifact.CustomPropertiesEntry
	(*ExecutorInput_Inputs)(nil),          // 93: ml_pipelines.ExecutorInput.Inputs
	(*ExecutorInput_OutputParameter)(nil), // 94: ml_pipelines.ExecutorInput.OutputParameter
	(*ExecutorInput_Outputs)(nil),         // 95: ml_pipelines.ExecutorInput.Outputs
	nil,                                   // 96: ml_pipelines.ExecutorInput.Inputs.ParametersEntry
	nil,                                   // 97: ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry
	nil,                                   // 98: ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry
	nil,                                   // 99: ml_pipelines.ExecutorInput.Outputs.ParametersEntry
	nil,                                   // 100: ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry
	nil,                                   // 101: ml_pipelines.ExecutorOutput.ParametersEntry
	nil,                                   // 102: ml_pipelines.ExecutorOutput.ArtifactsEntry
	nil,                                   // 103: ml_pipelines.ExecutorOutput.ParameterValuesEntry
	(*structpb.Struct)(nil),               // 104: google.protobuf.Struct
	(*structpb.Value)(nil),                // 105: google.protobuf.Value
	(*status.Status)(nil),                 // 106: google.rpc.Status
	(*durationpb.Duration)(nil),           // 107: google.protobuf.Duration
}
var file_pipeline_spec_proto_depIdxs = []int32{
	104, // 0: ml_pipelines.PipelineJob.pipeline_spec:type_name -> google.protobuf.Struct
	31,  // 1: ml_pipelines.PipelineJob.labels:type_name -> ml_pipelines.PipelineJob.LabelsEntry
	32,  // 2: ml_pipelines.PipelineJob.runtime_config:type_name -> ml_pipelines.PipelineJob.RuntimeConfig
	19,  // 3: ml_pipelines.PipelineSpec.pipeline_info:type_name -> ml_pipelines.PipelineInfo
	104, // 4: ml_pipelines.PipelineSpec.deployment_spec:type_name -> google.protobuf.Struct
	36,  // 5: ml_pipelines.PipelineSpec.components:type_name -> ml_pipelines.PipelineSpec.ComponentsEntry
	6,   // 6: ml_pipelines.PipelineSpec.root:type_name -> ml_pipelines.ComponentSpec
	9,   // 7: ml_pipelines.ComponentSpec.input_definitions:type_name -> ml_pipelines.ComponentInputsSpec
	10,  // 8: ml_pipelines.ComponentSpec.output_definitions:type_name -> ml_pipelines.ComponentOutputsSpec
	7,   // 9: ml_pipelines.ComponentSpec.dag:type_name -> ml_pipelines.DagSpec
	37,  // 10: ml_pipelines.DagSpec.tasks:type_name -> ml_pipelines.DagSpec.TasksEntry
	8,   // 11: ml_pipelines.DagSpec.outputs:type_name -> ml_pipelines.DagOutputsSpec
	40,  // 12: ml_pipelines.DagOutputsSpec.artifacts:type_name -> ml_pipelines.DagOutputsSpec.ArtifactsEntry
	45,  // 13: ml_pipelines.DagOutputsSpec.parameters:type_name -> ml_pipelines.DagOutputsSpec.ParametersEntry
	49,  // 14: ml_pipelines.ComponentInputsSpec.artifacts:type_name -> ml_pipelines.ComponentInputsSpec.ArtifactsEntry
	50,  // 15: ml_pipelines.ComponentInputsSpec.parameters:type_name -> ml_pipelines.ComponentInputsSpec.ParametersEntry
	53,  // 16: ml_pipelines.ComponentOutputsSpec.artifacts:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactsEntry
	54,  // 17: ml_pipelines.ComponentOutputsSpec.parameters:type_name -> ml_pipelines.ComponentOutputsSpec.ParametersEntry
	59,  // 18: ml_pipelines.TaskInputsSpec.parameters:type_name -> ml_pipelines.TaskInputsSpec.ParametersEntry
	60,  // 19: ml_pipelines.TaskInputsSpec.artifacts:type_name -> ml_pipelines.TaskInputsSpec.ArtifactsEntry
	66,  // 20: ml_pipelines.TaskOutputsSpec.parameters:type_name -> ml_pipelines.TaskOutputsSpec.ParametersEntry
	67,  // 21: ml_pipelines.TaskOutputsSpec.artifacts:type_name -> ml_pipelines.TaskOutputsSpec.ArtifactsEntry
	21,  // 22: ml_pipelines.PipelineTaskSpec.task_info:type_name -> ml_pipelines.PipelineTaskInfo
	11,  // 23: ml_pipelines.PipelineTaskSpec.inputs:type_name -> ml_pipelines.TaskInputsSpec
	70,  // 24: ml_pipelines.PipelineTaskSpec.caching_options:type_name -> ml_pipelines.PipelineTaskSpec.CachingOptions
	18,  // 25: ml_pipelines.PipelineTaskSpec.component_ref:type_name -> ml_pipelines.ComponentRef
	71,  // 26: ml_pipelines.PipelineTaskSpec.trigger_policy:type_name -> ml_pipelines.PipelineTaskSpec.TriggerPolicy
	16,  // 27: ml_pipelines.PipelineTaskSpec.artifact_iterator:type_name -> ml_pipelines.ArtifactIteratorSpec
	17,  // 28: ml_pipelines.PipelineTaskSpec.parameter_iterator:type_name -> ml_pipelines.ParameterIteratorSpec
	72,  // 29: ml_pipelines.PipelineTaskSpec.retry_policy:type_name -> ml_pipelines.PipelineTaskSpec.RetryPolicy
	73,  // 30: ml_pipelines.PipelineTaskSpec.iterator_policy:type_name -> ml_pipelines.PipelineTaskSpec.IteratorPolicy
	74,  // 31: ml_pipelines.ArtifactIteratorSpec.items:type_name -> ml_pipelines.ArtifactIteratorSpec.ItemsSpec
	75,  // 32: ml_pipelines.ParameterIteratorSpec.items:type_name -> ml_pipelines.ParameterIteratorSpec.ItemsSpec
	24,  // 33: ml_pipelines.ValueOrRuntimeParameter.constant_value:type_name -> ml_pipelines.Value
	105, // 34: ml_pipelines.ValueOrRuntimeParameter.constant:type_name -> google.protobuf.Value
	81,  // 35: ml_pipelines.PipelineDeploymentConfig.executors:type_name -> ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry
	20,  // 36: ml_pipelines.RuntimeArtifact.type:type_name -> ml_pipelines.ArtifactTypeSchema
	91,  // 37: ml_pipelines.RuntimeArtifact.properties:type_name -> ml_pipelines.RuntimeArtifact.PropertiesEntry
	92,  // 38: ml_pipelines.RuntimeArtifact.custom_properties:type_name -> ml_pipelines.RuntimeArtifact.CustomPropertiesEntry
	104, // 39: ml_pipelines.RuntimeArtifact.metadata:type_name -> google.protobuf.Struct
	25,  // 40: ml_pipelines.ArtifactList.artifacts:type_name -> ml_pipelines.RuntimeArtifact
	93,  // 41: ml_pipelines.ExecutorInput.inputs:type_name -> ml_pipelines.ExecutorInput.Inputs
	95,  // 42: ml_pipelines.ExecutorInput.outputs:type_name -> ml_pipelines.ExecutorInput.Outputs
	101, // 43: ml_pipelines.ExecutorOutput.parameters:type_name -> ml_pipelines.ExecutorOutput.ParametersEntry
	102, // 44: ml_pipelines.ExecutorOutput.artifacts:type_name -> ml_pipelines.ExecutorOutput.ArtifactsEntry
	103, // 45: ml_pipelines.ExecutorOutput.parameter_values:type_name -> ml_pipelines.ExecutorOutput.ParameterValuesEntry
	106, // 46: ml_pipelines.PipelineTaskFinalStatus.error:type_name -> google.rpc.Status
	33,  // 47: ml_pipelines.PipelineJob.RuntimeConfig.parameters:type_name -> ml_pipelines.PipelineJob.RuntimeConfig.ParametersEntry
	34,  // 48: ml_pipelines.PipelineJob.RuntimeConfig.parameter_values:type_name -> ml_pipelines.PipelineJob.RuntimeConfig.ParameterValuesEntry
	24,  // 49: ml_pipelines.PipelineJob.RuntimeConfig.ParametersEntry.value:type_name -> ml_pipelines.Value
	105, // 50: ml_pipelines.PipelineJob.RuntimeConfig.ParameterValuesEntry.value:type_name -> google.protobuf.Value
	0,   // 51: ml_pipelines.PipelineSpec.RuntimeParameter.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
	24,  // 52: ml_pipelines.PipelineSpec.RuntimeParameter.default_value:type_name -> ml_pipelines.Value
	6,   // 53: ml_pipelines.PipelineSpec.ComponentsEntry.value:type_name -> ml_pipelines.ComponentSpec
	15,  // 54: ml_pipelines.DagSpec.TasksEntry.value:type_name -> ml_pipelines.PipelineTaskSpec
	38,  // 55: ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec.artifact_selectors:type_name -> ml_pipelines.DagOutputsSpec.ArtifactSelectorSpec
	39,  // 56: ml_pipelines.DagOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec
	41,  // 57: ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec.parameter_selectors:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
	46,  // 58: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.mapped_parameters:type_name -> ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry
	41,  // 59: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec.value_from_parameter:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
	42,  // 60: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec.value_from_oneof:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec
	44,  // 61: ml_pipelines.DagOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.DagOutputsSpec.DagOutputParameterSpec
	41,  // 62: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry.value:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
	20,  // 63: ml_pipelines.ComponentInputsSpec.ArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
	0,   // 64: ml_pipelines.ComponentInputsSpec.ParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
	1,   // 65: ml_pipelines.ComponentInputsSpec.ParameterSpec.parameter_type:type_name -> ml_pipelines.ParameterType.ParameterTypeEnum
	105, // 66: ml_pipelines.ComponentInputsSpec.ParameterSpec.default_value:type_name -> google.protobuf.Value
	47,  // 67: ml_pipelines.ComponentInputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.ComponentInputsSpec.ArtifactSpec
	48,  // 68: ml_pipelines.ComponentInputsSpec.ParametersEntry.value:type_name -> ml_pipelines.ComponentInputsSpec.ParameterSpec
	20,  // 69: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
	55,  // 70: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.properties:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry
	56,  // 71: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.custom_properties:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry
	104, // 72: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.metadata:type_name -> google.protobuf.Struct
	0,   // 73: ml_pipelines.ComponentOutputsSpec.ParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
	1,   // 74: ml_pipelines.ComponentOutputsSpec.ParameterSpec.parameter_type:type_name -> ml_pipelines.ParameterType.ParameterTypeEnum
	51,  // 75: ml_pipelines.ComponentOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec
	52,  // 76: ml_pipelines.ComponentOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.ComponentOutputsSpec.ParameterSpec
	22,  // 77: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	22,  // 78: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	61,  // 79: ml_pipelines.TaskInputsSpec.InputArtifactSpec.task_output_artifact:type_name -> ml_pipelines.TaskInputsSpec.InputArtifactSpec.TaskOutputArtifactSpec
	62,  // 80: ml_pipelines.TaskInputsSpec.InputParameterSpec.task_output_parameter:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskOutputParameterSpec
	22,  // 81: ml_pipelines.TaskInputsSpec.InputParameterSpec.runtime_value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	63,  // 82: ml_pipelines.TaskInputsSpec.InputParameterSpec.task_final_status:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskFinalStatus
	58,  // 83: ml_pipelines.TaskInputsSpec.ParametersEntry.value:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec
	57,  // 84: ml_pipelines.TaskInputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.TaskInputsSpec.InputArtifactSpec
	20,  // 85: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
	68,  // 86: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.properties:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry
	69,  // 87: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.custom_properties:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry
	0,   // 88: ml_pipelines.TaskOutputsSpec.OutputParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
	65,  // 89: ml_pipelines.TaskOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.TaskOutputsSpec.OutputParameterSpec
	64,  // 90: ml_pipelines.TaskOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec
	22,  // 91: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	22,  // 92: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	2,   // 93: ml_pipelines.PipelineTaskSpec.TriggerPolicy.strategy:type_name -> ml_pipelines.PipelineTaskSpec.TriggerPolicy.TriggerStrategy
	107, // 94: ml_pipelines.PipelineTaskSpec.RetryPolicy.backoff_duration:type_name -> google.protobuf.Duration
	107, // 95: ml_pipelines.PipelineTaskSpec.RetryPolicy.backoff_max_duration:type_name -> google.protobuf.Duration
	82,  // 96: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.lifecycle:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle
	83,  // 97: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.resources:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec
	84,  // 98: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.env:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.EnvVar
	22,  // 99: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.artifact_uri:type_name -> ml_pipelines.ValueOrRuntimeParameter
	20,  // 100: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.type_schema:type_name -> ml_pipelines.ArtifactTypeSchema
	87,  // 101: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.properties:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry
	88,  // 102: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.custom_properties:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry
	104, // 103: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.metadata:type_name -> google.protobuf.Struct
	90,  // 104: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.output_artifact_queries:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry
	104, // 105: ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec.custom_job:type_name -> google.protobuf.Struct
	76,  // 106: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.container:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec
	77,  // 107: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.importer:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec
	78,  // 108: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.resolver:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec
	79,  // 109: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.custom_job:type_name -> ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec
	80,  // 110: ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry.value:type_name -> ml_pipelines.PipelineDeploymentConfig.ExecutorSpec
	85,  // 111: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.pre_cache_check:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.Exec
	86,  // 112: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.accelerator:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.AcceleratorConfig
	22,  // 113: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	22,  // 114: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
	89,  // 115: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry.value:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec.ArtifactQuerySpec
	24,  // 116: ml_pipelines.RuntimeArtifact.PropertiesEntry.value:type_name -> ml_pipelines.Value
	24,  // 117: ml_pipelines.RuntimeArtifact.CustomPropertiesEntry.value:type_name -> ml_pipelines.Value
	96,  // 118: ml_pipelines.ExecutorInput.Inputs.parameters:type_name -> ml_pipelines.ExecutorInput.Inputs.ParametersEntry
	97,  // 119: ml_pipelines.ExecutorInput.Inputs.artifacts:type_name -> ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry
	98,  // 120: ml_pipelines.ExecutorInput.Inputs.parameter_values:type_name -> ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry
	99,  // 121: ml_pipelines.ExecutorInput.Outputs.parameters:type_name -> ml_pipelines.ExecutorInput.Outputs.ParametersEntry
	100, // 122: ml_pipelines.ExecutorInput.Outputs.artifacts:type_name -> ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry
	24,  // 123: ml_pipelines.ExecutorInput.Inputs.ParametersEntry.value:type_name -> ml_pipelines.Value
	26,  // 124: ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
	105, // 125: ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry.value:type_name -> google.protobuf.Value
	94,  // 126: ml_pipelines.ExecutorInput.Outputs.ParametersEntry.value:type_name -> ml_pipelines.ExecutorInput.OutputParameter
	26,  // 127: ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
	24,  // 128: ml_pipelines.ExecutorOutput.ParametersEntry.value:type_name -> ml_pipelines.Value
	26,  // 129: ml_pipelines.ExecutorOutput.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
	105, // 130: ml_pipelines.ExecutorOutput.ParameterValuesEntry.value:type_name -> google.protobuf.Value
	131, // [131:131] is the sub-list for method output_type
	131, // [131:131] is the sub-list for method input_type
	131, // [131:131] is the sub-list for extension type_name
	131, // [131:131] is the sub-list for extension extendee
	0,   // [0:131] is the sub-list for field type_name
}

func init() { file_pipeline_spec_proto_init() }
func file_pipeline_spec_proto_init() {
	if File_pipeline_spec_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pipeline_spec_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineJob); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentInputsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentOutputsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskOutputsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrimitiveType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParameterType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArtifactIteratorSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParameterIteratorSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentRef); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArtifactTypeSchema); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValueOrRuntimeParameter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Value); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RuntimeArtifact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArtifactList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecutorInput); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecutorOutput); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskFinalStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineStateEnum); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineJob_RuntimeConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineSpec_RuntimeParameter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_ArtifactSelectorSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_DagOutputArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_ParameterSelectorSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_ParameterSelectorsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_MapParameterSelectorsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DagOutputsSpec_DagOutputParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentInputsSpec_ArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentInputsSpec_ParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentOutputsSpec_ArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentOutputsSpec_ParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec_InputArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec_InputParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskOutputsSpec_OutputArtifactSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskOutputsSpec_OutputParameterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskSpec_CachingOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskSpec_TriggerPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskSpec_RetryPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineTaskSpec_IteratorPolicy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArtifactIteratorSpec_ItemsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParameterIteratorSpec_ItemsSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_ImporterSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_ResolverSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_AIPlatformCustomJobSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_ExecutorSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecutorInput_Inputs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecutorInput_OutputParameter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pipeline_spec_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecutorInput_Outputs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pipeline_spec_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*ComponentSpec_Dag)(nil),
		(*ComponentSpec_ExecutorLabel)(nil),
	}
	file_pipeline_spec_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*PipelineTaskSpec_ArtifactIterator)(nil),
		(*PipelineTaskSpec_ParameterIterator)(nil),
	}
	file_pipeline_spec_proto_msgTypes[16].OneofWrappers = []interface{}{
		(*ArtifactTypeSchema_SchemaTitle)(nil),
		(*ArtifactTypeSchema_SchemaUri)(nil),
		(*ArtifactTypeSchema_InstanceSchema)(nil),
	}
	file_pipeline_spec_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*ValueOrRuntimeParameter_ConstantValue)(nil),
		(*ValueOrRuntimeParameter_RuntimeParameter)(nil),
		(*ValueOrRuntimeParameter_Constant)(nil),
	}
	file_pipeline_spec_proto_msgTypes[20].OneofWrappers = []interface{}{
		(*Value_IntValue)(nil),
		(*Value_DoubleValue)(nil),
		(*Value_StringValue)(nil),
	}
	file_pipeline_spec_proto_msgTypes[40].OneofWrappers = []interface{}{
		(*DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter)(nil),
		(*DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof)(nil),
	}
	file_pipeline_spec_proto_msgTypes[53].OneofWrappers = []interface{}{
		(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact)(nil),
		(*TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact)(nil),
	}
	file_pipeline_spec_proto_msgTypes[54].OneofWrappers = []interface{}{
		(*TaskInputsSpec_InputParameterSpec_TaskOutputParameter)(nil),
		(*TaskInputsSpec_InputParameterSpec_RuntimeValue)(nil),
		(*TaskInputsSpec_InputParameterSpec_ComponentInputParameter)(nil),
		(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus_)(nil),
	}
	file_pipeline_spec_proto_msgTypes[71].OneofWrappers = []interface{}{
		(*ParameterIteratorSpec_ItemsSpec_Raw)(nil),
		(*ParameterIteratorSpec_ItemsSpec_InputParameter)(nil),
	}
	file_pipeline_spec_proto_msgTypes[76].OneofWrappers = []interface{}{
		(*PipelineDeploymentConfig_ExecutorSpec_Container)(nil),
		(*PipelineDeploymentConfig_ExecutorSpec_Importer)(nil),
		(*PipelineDeploymentConfig_ExecutorSpec_Resolver)(nil),
		(*PipelineDeploymentConfig_ExecutorSpec_CustomJob)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pipeline_spec_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   100,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pipeline_spec_proto_goTypes,
		DependencyIndexes: file_pipeline_spec_proto_depIdxs,
		EnumInfos:         file_pipeline_spec_proto_enumTypes,
		MessageInfos:      file_pipeline_spec_proto_msgTypes,
	}.Build()
	File_pipeline_spec_proto = out.File
	file_pipeline_spec_proto_rawDesc = nil
	file_pipeline_spec_proto_goTypes = nil
	file_pipeline_spec_proto_depIdxs = nil
}
