pipelines/api/v2alpha1/go/pipelinespec/pipeline_spec.pb.go

6817 lines
291 KiB
Go

// 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"
_ "google.golang.org/protobuf/types/known/anypb"
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"`
}
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
}
// 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"`
}
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
}
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.
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][].
PipelineJobName string `protobuf:"bytes,4,opt,name=pipeline_job_name,json=pipelineJobName,proto3" json:"pipeline_job_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
}
func (x *PipelineTaskFinalStatus) GetPipelineJobUuid() int64 {
if x != nil {
return x.PipelineJobUuid
}
return 0
}
func (x *PipelineTaskFinalStatus) GetPipelineJobName() string {
if x != nil {
return x.PipelineJobName
}
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
// The runtime parameters of the PipelineJob. The parameters will be
// passed into [PipelineJob.pipeline_spec][] to replace the placeholders
// at runtime.
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"`
}
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}
}
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 ""
}
// 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[30]
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[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[33]
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[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[34]
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[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_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[36]
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[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[37]
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[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_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[38]
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[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_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[39]
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[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_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"`
}
func (x *ComponentInputsSpec_ArtifactSpec) Reset() {
*x = ComponentInputsSpec_ArtifactSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_pipeline_spec_proto_msgTypes[42]
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[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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
}
// 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"`
}
func (x *ComponentInputsSpec_ParameterSpec) Reset() {
*x = ComponentInputsSpec_ParameterSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_pipeline_spec_proto_msgTypes[43]
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[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_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
}
// 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"`
}
func (x *ComponentOutputsSpec_ArtifactSpec) Reset() {
*x = ComponentOutputsSpec_ArtifactSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_pipeline_spec_proto_msgTypes[46]
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[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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
}
// 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[47]
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[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_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[52]
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[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[53]
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[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_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[56]
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[56]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[57]
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[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_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[58]
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[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_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[59]
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[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 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[60]
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[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_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[65]
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[65]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[66]
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[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_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
}
// 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[67]
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[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 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[68]
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[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 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[69]
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[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 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[70]
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[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 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[71]
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[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 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[72]
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[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_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[73]
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[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_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[75]
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[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_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[76]
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[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_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[77]
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[77]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[78]
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[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_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[79]
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[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_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[82]
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[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_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[86]
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[86]
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[87]
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[87]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use 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[88]
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[88]
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, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 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, 0xe7, 0x04, 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, 0xee, 0x01, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x57, 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, 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, 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, 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,
0xc4, 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, 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, 0x9c, 0x05, 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, 0x55, 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, 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, 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,
0x86, 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, 0xb9, 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, 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, 0x89, 0x07, 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, 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, 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, 0xb1, 0x01, 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, 0x2a, 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, 0x52,
0x0f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x55, 0x75, 0x69, 0x64,
0x12, 0x2a, 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, 0x52, 0x0f, 0x70, 0x69, 0x70,
0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 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, 97)
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
(*PipelineSpec_RuntimeParameter)(nil), // 34: ml_pipelines.PipelineSpec.RuntimeParameter
nil, // 35: ml_pipelines.PipelineSpec.ComponentsEntry
nil, // 36: ml_pipelines.DagSpec.TasksEntry
(*DagOutputsSpec_ArtifactSelectorSpec)(nil), // 37: ml_pipelines.DagOutputsSpec.ArtifactSelectorSpec
(*DagOutputsSpec_DagOutputArtifactSpec)(nil), // 38: ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec
nil, // 39: ml_pipelines.DagOutputsSpec.ArtifactsEntry
(*DagOutputsSpec_ParameterSelectorSpec)(nil), // 40: ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
(*DagOutputsSpec_ParameterSelectorsSpec)(nil), // 41: ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec
(*DagOutputsSpec_MapParameterSelectorsSpec)(nil), // 42: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec
(*DagOutputsSpec_DagOutputParameterSpec)(nil), // 43: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec
nil, // 44: ml_pipelines.DagOutputsSpec.ParametersEntry
nil, // 45: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry
(*ComponentInputsSpec_ArtifactSpec)(nil), // 46: ml_pipelines.ComponentInputsSpec.ArtifactSpec
(*ComponentInputsSpec_ParameterSpec)(nil), // 47: ml_pipelines.ComponentInputsSpec.ParameterSpec
nil, // 48: ml_pipelines.ComponentInputsSpec.ArtifactsEntry
nil, // 49: ml_pipelines.ComponentInputsSpec.ParametersEntry
(*ComponentOutputsSpec_ArtifactSpec)(nil), // 50: ml_pipelines.ComponentOutputsSpec.ArtifactSpec
(*ComponentOutputsSpec_ParameterSpec)(nil), // 51: ml_pipelines.ComponentOutputsSpec.ParameterSpec
nil, // 52: ml_pipelines.ComponentOutputsSpec.ArtifactsEntry
nil, // 53: ml_pipelines.ComponentOutputsSpec.ParametersEntry
nil, // 54: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry
nil, // 55: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry
(*TaskInputsSpec_InputArtifactSpec)(nil), // 56: ml_pipelines.TaskInputsSpec.InputArtifactSpec
(*TaskInputsSpec_InputParameterSpec)(nil), // 57: ml_pipelines.TaskInputsSpec.InputParameterSpec
nil, // 58: ml_pipelines.TaskInputsSpec.ParametersEntry
nil, // 59: ml_pipelines.TaskInputsSpec.ArtifactsEntry
(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifactSpec)(nil), // 60: ml_pipelines.TaskInputsSpec.InputArtifactSpec.TaskOutputArtifactSpec
(*TaskInputsSpec_InputParameterSpec_TaskOutputParameterSpec)(nil), // 61: ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskOutputParameterSpec
(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus)(nil), // 62: ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskFinalStatus
(*TaskOutputsSpec_OutputArtifactSpec)(nil), // 63: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec
(*TaskOutputsSpec_OutputParameterSpec)(nil), // 64: ml_pipelines.TaskOutputsSpec.OutputParameterSpec
nil, // 65: ml_pipelines.TaskOutputsSpec.ParametersEntry
nil, // 66: ml_pipelines.TaskOutputsSpec.ArtifactsEntry
nil, // 67: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry
nil, // 68: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry
(*PipelineTaskSpec_CachingOptions)(nil), // 69: ml_pipelines.PipelineTaskSpec.CachingOptions
(*PipelineTaskSpec_TriggerPolicy)(nil), // 70: ml_pipelines.PipelineTaskSpec.TriggerPolicy
(*ArtifactIteratorSpec_ItemsSpec)(nil), // 71: ml_pipelines.ArtifactIteratorSpec.ItemsSpec
(*ParameterIteratorSpec_ItemsSpec)(nil), // 72: ml_pipelines.ParameterIteratorSpec.ItemsSpec
(*PipelineDeploymentConfig_PipelineContainerSpec)(nil), // 73: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec
(*PipelineDeploymentConfig_ImporterSpec)(nil), // 74: ml_pipelines.PipelineDeploymentConfig.ImporterSpec
(*PipelineDeploymentConfig_ResolverSpec)(nil), // 75: ml_pipelines.PipelineDeploymentConfig.ResolverSpec
(*PipelineDeploymentConfig_AIPlatformCustomJobSpec)(nil), // 76: ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec
(*PipelineDeploymentConfig_ExecutorSpec)(nil), // 77: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec
nil, // 78: ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry
(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle)(nil), // 79: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle
(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec)(nil), // 80: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec
(*PipelineDeploymentConfig_PipelineContainerSpec_EnvVar)(nil), // 81: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.EnvVar
(*PipelineDeploymentConfig_PipelineContainerSpec_Lifecycle_Exec)(nil), // 82: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.Exec
(*PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec_AcceleratorConfig)(nil), // 83: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.AcceleratorConfig
nil, // 84: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry
nil, // 85: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry
(*PipelineDeploymentConfig_ResolverSpec_ArtifactQuerySpec)(nil), // 86: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.ArtifactQuerySpec
nil, // 87: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry
nil, // 88: ml_pipelines.RuntimeArtifact.PropertiesEntry
nil, // 89: ml_pipelines.RuntimeArtifact.CustomPropertiesEntry
(*ExecutorInput_Inputs)(nil), // 90: ml_pipelines.ExecutorInput.Inputs
(*ExecutorInput_OutputParameter)(nil), // 91: ml_pipelines.ExecutorInput.OutputParameter
(*ExecutorInput_Outputs)(nil), // 92: ml_pipelines.ExecutorInput.Outputs
nil, // 93: ml_pipelines.ExecutorInput.Inputs.ParametersEntry
nil, // 94: ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry
nil, // 95: ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry
nil, // 96: ml_pipelines.ExecutorInput.Outputs.ParametersEntry
nil, // 97: ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry
nil, // 98: ml_pipelines.ExecutorOutput.ParametersEntry
nil, // 99: ml_pipelines.ExecutorOutput.ArtifactsEntry
nil, // 100: ml_pipelines.ExecutorOutput.ParameterValuesEntry
(*structpb.Struct)(nil), // 101: google.protobuf.Struct
(*structpb.Value)(nil), // 102: google.protobuf.Value
(*status.Status)(nil), // 103: google.rpc.Status
}
var file_pipeline_spec_proto_depIdxs = []int32{
101, // 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
101, // 4: ml_pipelines.PipelineSpec.deployment_spec:type_name -> google.protobuf.Struct
35, // 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
36, // 10: ml_pipelines.DagSpec.tasks:type_name -> ml_pipelines.DagSpec.TasksEntry
8, // 11: ml_pipelines.DagSpec.outputs:type_name -> ml_pipelines.DagOutputsSpec
39, // 12: ml_pipelines.DagOutputsSpec.artifacts:type_name -> ml_pipelines.DagOutputsSpec.ArtifactsEntry
44, // 13: ml_pipelines.DagOutputsSpec.parameters:type_name -> ml_pipelines.DagOutputsSpec.ParametersEntry
48, // 14: ml_pipelines.ComponentInputsSpec.artifacts:type_name -> ml_pipelines.ComponentInputsSpec.ArtifactsEntry
49, // 15: ml_pipelines.ComponentInputsSpec.parameters:type_name -> ml_pipelines.ComponentInputsSpec.ParametersEntry
52, // 16: ml_pipelines.ComponentOutputsSpec.artifacts:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactsEntry
53, // 17: ml_pipelines.ComponentOutputsSpec.parameters:type_name -> ml_pipelines.ComponentOutputsSpec.ParametersEntry
58, // 18: ml_pipelines.TaskInputsSpec.parameters:type_name -> ml_pipelines.TaskInputsSpec.ParametersEntry
59, // 19: ml_pipelines.TaskInputsSpec.artifacts:type_name -> ml_pipelines.TaskInputsSpec.ArtifactsEntry
65, // 20: ml_pipelines.TaskOutputsSpec.parameters:type_name -> ml_pipelines.TaskOutputsSpec.ParametersEntry
66, // 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
69, // 24: ml_pipelines.PipelineTaskSpec.caching_options:type_name -> ml_pipelines.PipelineTaskSpec.CachingOptions
18, // 25: ml_pipelines.PipelineTaskSpec.component_ref:type_name -> ml_pipelines.ComponentRef
70, // 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
71, // 29: ml_pipelines.ArtifactIteratorSpec.items:type_name -> ml_pipelines.ArtifactIteratorSpec.ItemsSpec
72, // 30: ml_pipelines.ParameterIteratorSpec.items:type_name -> ml_pipelines.ParameterIteratorSpec.ItemsSpec
24, // 31: ml_pipelines.ValueOrRuntimeParameter.constant_value:type_name -> ml_pipelines.Value
102, // 32: ml_pipelines.ValueOrRuntimeParameter.constant:type_name -> google.protobuf.Value
78, // 33: ml_pipelines.PipelineDeploymentConfig.executors:type_name -> ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry
20, // 34: ml_pipelines.RuntimeArtifact.type:type_name -> ml_pipelines.ArtifactTypeSchema
88, // 35: ml_pipelines.RuntimeArtifact.properties:type_name -> ml_pipelines.RuntimeArtifact.PropertiesEntry
89, // 36: ml_pipelines.RuntimeArtifact.custom_properties:type_name -> ml_pipelines.RuntimeArtifact.CustomPropertiesEntry
101, // 37: ml_pipelines.RuntimeArtifact.metadata:type_name -> google.protobuf.Struct
25, // 38: ml_pipelines.ArtifactList.artifacts:type_name -> ml_pipelines.RuntimeArtifact
90, // 39: ml_pipelines.ExecutorInput.inputs:type_name -> ml_pipelines.ExecutorInput.Inputs
92, // 40: ml_pipelines.ExecutorInput.outputs:type_name -> ml_pipelines.ExecutorInput.Outputs
98, // 41: ml_pipelines.ExecutorOutput.parameters:type_name -> ml_pipelines.ExecutorOutput.ParametersEntry
99, // 42: ml_pipelines.ExecutorOutput.artifacts:type_name -> ml_pipelines.ExecutorOutput.ArtifactsEntry
100, // 43: ml_pipelines.ExecutorOutput.parameter_values:type_name -> ml_pipelines.ExecutorOutput.ParameterValuesEntry
103, // 44: ml_pipelines.PipelineTaskFinalStatus.error:type_name -> google.rpc.Status
33, // 45: ml_pipelines.PipelineJob.RuntimeConfig.parameters:type_name -> ml_pipelines.PipelineJob.RuntimeConfig.ParametersEntry
24, // 46: ml_pipelines.PipelineJob.RuntimeConfig.ParametersEntry.value:type_name -> ml_pipelines.Value
0, // 47: ml_pipelines.PipelineSpec.RuntimeParameter.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
24, // 48: ml_pipelines.PipelineSpec.RuntimeParameter.default_value:type_name -> ml_pipelines.Value
6, // 49: ml_pipelines.PipelineSpec.ComponentsEntry.value:type_name -> ml_pipelines.ComponentSpec
15, // 50: ml_pipelines.DagSpec.TasksEntry.value:type_name -> ml_pipelines.PipelineTaskSpec
37, // 51: ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec.artifact_selectors:type_name -> ml_pipelines.DagOutputsSpec.ArtifactSelectorSpec
38, // 52: ml_pipelines.DagOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.DagOutputsSpec.DagOutputArtifactSpec
40, // 53: ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec.parameter_selectors:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
45, // 54: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.mapped_parameters:type_name -> ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry
40, // 55: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec.value_from_parameter:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
41, // 56: ml_pipelines.DagOutputsSpec.DagOutputParameterSpec.value_from_oneof:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorsSpec
43, // 57: ml_pipelines.DagOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.DagOutputsSpec.DagOutputParameterSpec
40, // 58: ml_pipelines.DagOutputsSpec.MapParameterSelectorsSpec.MappedParametersEntry.value:type_name -> ml_pipelines.DagOutputsSpec.ParameterSelectorSpec
20, // 59: ml_pipelines.ComponentInputsSpec.ArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
0, // 60: ml_pipelines.ComponentInputsSpec.ParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
1, // 61: ml_pipelines.ComponentInputsSpec.ParameterSpec.parameter_type:type_name -> ml_pipelines.ParameterType.ParameterTypeEnum
46, // 62: ml_pipelines.ComponentInputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.ComponentInputsSpec.ArtifactSpec
47, // 63: ml_pipelines.ComponentInputsSpec.ParametersEntry.value:type_name -> ml_pipelines.ComponentInputsSpec.ParameterSpec
20, // 64: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
54, // 65: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.properties:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry
55, // 66: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.custom_properties:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry
101, // 67: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.metadata:type_name -> google.protobuf.Struct
0, // 68: ml_pipelines.ComponentOutputsSpec.ParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
1, // 69: ml_pipelines.ComponentOutputsSpec.ParameterSpec.parameter_type:type_name -> ml_pipelines.ParameterType.ParameterTypeEnum
50, // 70: ml_pipelines.ComponentOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.ComponentOutputsSpec.ArtifactSpec
51, // 71: ml_pipelines.ComponentOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.ComponentOutputsSpec.ParameterSpec
22, // 72: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
22, // 73: ml_pipelines.ComponentOutputsSpec.ArtifactSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
60, // 74: ml_pipelines.TaskInputsSpec.InputArtifactSpec.task_output_artifact:type_name -> ml_pipelines.TaskInputsSpec.InputArtifactSpec.TaskOutputArtifactSpec
61, // 75: ml_pipelines.TaskInputsSpec.InputParameterSpec.task_output_parameter:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskOutputParameterSpec
22, // 76: ml_pipelines.TaskInputsSpec.InputParameterSpec.runtime_value:type_name -> ml_pipelines.ValueOrRuntimeParameter
62, // 77: ml_pipelines.TaskInputsSpec.InputParameterSpec.task_final_status:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec.TaskFinalStatus
57, // 78: ml_pipelines.TaskInputsSpec.ParametersEntry.value:type_name -> ml_pipelines.TaskInputsSpec.InputParameterSpec
56, // 79: ml_pipelines.TaskInputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.TaskInputsSpec.InputArtifactSpec
20, // 80: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.artifact_type:type_name -> ml_pipelines.ArtifactTypeSchema
67, // 81: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.properties:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry
68, // 82: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.custom_properties:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry
0, // 83: ml_pipelines.TaskOutputsSpec.OutputParameterSpec.type:type_name -> ml_pipelines.PrimitiveType.PrimitiveTypeEnum
64, // 84: ml_pipelines.TaskOutputsSpec.ParametersEntry.value:type_name -> ml_pipelines.TaskOutputsSpec.OutputParameterSpec
63, // 85: ml_pipelines.TaskOutputsSpec.ArtifactsEntry.value:type_name -> ml_pipelines.TaskOutputsSpec.OutputArtifactSpec
22, // 86: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
22, // 87: ml_pipelines.TaskOutputsSpec.OutputArtifactSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
2, // 88: ml_pipelines.PipelineTaskSpec.TriggerPolicy.strategy:type_name -> ml_pipelines.PipelineTaskSpec.TriggerPolicy.TriggerStrategy
79, // 89: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.lifecycle:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle
80, // 90: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.resources:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec
81, // 91: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.env:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.EnvVar
22, // 92: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.artifact_uri:type_name -> ml_pipelines.ValueOrRuntimeParameter
20, // 93: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.type_schema:type_name -> ml_pipelines.ArtifactTypeSchema
84, // 94: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.properties:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry
85, // 95: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.custom_properties:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry
101, // 96: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.metadata:type_name -> google.protobuf.Struct
87, // 97: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.output_artifact_queries:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry
101, // 98: ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec.custom_job:type_name -> google.protobuf.Struct
73, // 99: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.container:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec
74, // 100: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.importer:type_name -> ml_pipelines.PipelineDeploymentConfig.ImporterSpec
75, // 101: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.resolver:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec
76, // 102: ml_pipelines.PipelineDeploymentConfig.ExecutorSpec.custom_job:type_name -> ml_pipelines.PipelineDeploymentConfig.AIPlatformCustomJobSpec
77, // 103: ml_pipelines.PipelineDeploymentConfig.ExecutorsEntry.value:type_name -> ml_pipelines.PipelineDeploymentConfig.ExecutorSpec
82, // 104: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.pre_cache_check:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.Lifecycle.Exec
83, // 105: ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.accelerator:type_name -> ml_pipelines.PipelineDeploymentConfig.PipelineContainerSpec.ResourceSpec.AcceleratorConfig
22, // 106: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.PropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
22, // 107: ml_pipelines.PipelineDeploymentConfig.ImporterSpec.CustomPropertiesEntry.value:type_name -> ml_pipelines.ValueOrRuntimeParameter
86, // 108: ml_pipelines.PipelineDeploymentConfig.ResolverSpec.OutputArtifactQueriesEntry.value:type_name -> ml_pipelines.PipelineDeploymentConfig.ResolverSpec.ArtifactQuerySpec
24, // 109: ml_pipelines.RuntimeArtifact.PropertiesEntry.value:type_name -> ml_pipelines.Value
24, // 110: ml_pipelines.RuntimeArtifact.CustomPropertiesEntry.value:type_name -> ml_pipelines.Value
93, // 111: ml_pipelines.ExecutorInput.Inputs.parameters:type_name -> ml_pipelines.ExecutorInput.Inputs.ParametersEntry
94, // 112: ml_pipelines.ExecutorInput.Inputs.artifacts:type_name -> ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry
95, // 113: ml_pipelines.ExecutorInput.Inputs.parameter_values:type_name -> ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry
96, // 114: ml_pipelines.ExecutorInput.Outputs.parameters:type_name -> ml_pipelines.ExecutorInput.Outputs.ParametersEntry
97, // 115: ml_pipelines.ExecutorInput.Outputs.artifacts:type_name -> ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry
24, // 116: ml_pipelines.ExecutorInput.Inputs.ParametersEntry.value:type_name -> ml_pipelines.Value
26, // 117: ml_pipelines.ExecutorInput.Inputs.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
102, // 118: ml_pipelines.ExecutorInput.Inputs.ParameterValuesEntry.value:type_name -> google.protobuf.Value
91, // 119: ml_pipelines.ExecutorInput.Outputs.ParametersEntry.value:type_name -> ml_pipelines.ExecutorInput.OutputParameter
26, // 120: ml_pipelines.ExecutorInput.Outputs.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
24, // 121: ml_pipelines.ExecutorOutput.ParametersEntry.value:type_name -> ml_pipelines.Value
26, // 122: ml_pipelines.ExecutorOutput.ArtifactsEntry.value:type_name -> ml_pipelines.ArtifactList
102, // 123: ml_pipelines.ExecutorOutput.ParameterValuesEntry.value:type_name -> google.protobuf.Value
124, // [124:124] is the sub-list for method output_type
124, // [124:124] is the sub-list for method input_type
124, // [124:124] is the sub-list for extension type_name
124, // [124:124] is the sub-list for extension extendee
0, // [0:124] 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[30].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[33].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[34].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[36].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[37].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[38].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[39].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[42].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[43].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[46].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[47].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[52].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[53].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[56].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[57].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[58].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[59].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[60].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[65].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[66].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[67].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[68].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[69].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[70].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[71].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[72].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[73].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[75].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[76].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[77].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[78].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[79].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[82].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[86].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[87].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[88].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[39].OneofWrappers = []interface{}{
(*DagOutputsSpec_DagOutputParameterSpec_ValueFromParameter)(nil),
(*DagOutputsSpec_DagOutputParameterSpec_ValueFromOneof)(nil),
}
file_pipeline_spec_proto_msgTypes[52].OneofWrappers = []interface{}{
(*TaskInputsSpec_InputArtifactSpec_TaskOutputArtifact)(nil),
(*TaskInputsSpec_InputArtifactSpec_ComponentInputArtifact)(nil),
}
file_pipeline_spec_proto_msgTypes[53].OneofWrappers = []interface{}{
(*TaskInputsSpec_InputParameterSpec_TaskOutputParameter)(nil),
(*TaskInputsSpec_InputParameterSpec_RuntimeValue)(nil),
(*TaskInputsSpec_InputParameterSpec_ComponentInputParameter)(nil),
(*TaskInputsSpec_InputParameterSpec_TaskFinalStatus_)(nil),
}
file_pipeline_spec_proto_msgTypes[68].OneofWrappers = []interface{}{
(*ParameterIteratorSpec_ItemsSpec_Raw)(nil),
(*ParameterIteratorSpec_ItemsSpec_InputParameter)(nil),
}
file_pipeline_spec_proto_msgTypes[73].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: 97,
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
}